본문 바로가기
내일배움캠프/회고록

8월 1일 목요일

by jhdevtrace 2024. 8. 1.

결론

팀 프로젝트 시작

.gitignore 설정은 꼭 하자(.idea가 문제를 많이 일으켰다.)

스프링 스터디 2일차

오늘 겪은 문제

역할 분담부터 너무 어렵다

깃허브 문제로 엄청나게 시간을 썼다. .gitignore 이거 안 해서 큰일이 났었다.

본문

깃허브 .gitignore 를 설정하지 않고 시작해서 발생한 에러

팀 프로젝트를 하게 됐는데, 역할 분담을 어렵지만 일단은 했다. 사실 프로젝트 처음에 보고 나서는 쉬울 것 같다고 생각했는데, 이게 생각보다 많이 힘들었다. 과제의 난이도 자체가 어려운 것이 아니라, 내가 맡은 부분이기는 한데, 우리 팀원들이 사용할 수 있게 만들면서, 팀원들이 어떻게 만들지도 생각해봐야 하고 이런 저런 생각들이 정리되지 않으면서 여러 생각이 많아져서 뭔가 못하게 됐다. 그래서 오늘 내 맘대로 뭔가 어떻게 할 수 있는게 딱히 크지도 않았던 것 같고, 확실히 우리 팀에 도움이 될 수 있는 깃허브 에러를 직면해서, 이거를 해결했다. 우선 결론적으로 .gitignore 를 제대로 설정하지 않았다. 그래서 애초에 올라가면 안되는 ‘폴더’들이 올라가서 엄청나게 힘들었다. 아무튼 에러를 처음 직면한 당시, .gitignore를 설정하지 않아서 이런 일이 생겼다는 것은 바로 알았지만, gitignore를 수정해도, 내가 빼고 싶은 폴더나 파일을 깃이 계속 추적하고 있었다. 어리석게도 그냥 깃이그노어에 적용하면 바로 되는 줄 알고 계속 커밋을 했는데, .idea 안에 workspace 라는 파일이 계속 문제를 일으켰다. 이 녀석이 고얀 놈인게, 아예 메인 메서드 실행을 못하게 에러가 떠버린다. 그리고 코드를 작성하든 수정하든 무슨 일을 하면 항상 변화가 생겨서, 깃 커밋을 할 때마다 이 workspace 파일이 변하고, 변하다보면 어떤 상황에서 에러를 일으키게 된다. 왜 어디서 어떻게 문제를 일으키는지 알아보기 보단, 어떻게 해야 이게 발생하지 않는지에 초점을 두고 해결을 하려고 했다. 이런 저런 시도와 검색 끝에, 깃허브에 이미 올라간 파일을 없애야 하고, 깃이 읽지 못하게 캐시를 지워야 하는 것이었다.

git rm -r --cached .idea 이 코드를 사용해서 .idea 폴더 캐시를 삭제하고, 깃허브에 있는 .idea 파일도 지우면서 해결되게 되었다. 깃이그노어를 꼭 잘 설정하자.

팀 프로젝트

 

 

 

 

 

Student class 변수명 [고유번호(studentId), 이름(studentName), 과목목록(subjectList)]

Score class 변수명 [과목 고유 번호(subjectId), 수강생 고유 번호(studentId), 회차(round), 점수(score), 등급 (A, B, C, D, E, F, N) (grade)]

Subject class 변수명 [고유 번호(subjectId), 과목명(subjectName), 과목타입(subjectType)]

 

나는 데이터 부분을 일단은 맡게 됐다. 그래서 아래의 파일 구조로 내 담당 기능을 관리했다.

 

 

 

 

데이터 기능 영역에서는 클래스에서 객체로 각 클래스에 필요한 데이터들을 저장하고 다른 기능들에서 활용될 수 있게 만들었다. 근데 이게 처음에 생각했던 것보다 뭔가 많이 어려웠다. 혼자 프로젝트를 할 때는, 자연스럽게 기능을 만들면서 데이터를 어떻게 관리할지 떠올랐는데, 이번에는 일단 데이터 먼저 만드는데 다른 분들이 쓰게 해야하고 근데 아직 기능이 자세하게 나온 것은 아니어서 뭔가 어떻게 정확히 만들어서 주는게 좋을지 감이 잘 안 잡혔다. 아마 내가 이번 과제에 대한 이해도가 아직 부족해서 그런 것 같다. 내일은 과제에 대해 좀 더 이해해보고, 내가 더 만들 기능이나 다른 추가 기능을 구현할 것이 있는지 생각할 것 같다.

 

 

 

알고리즘

두 개 뽑아서 더하기

오늘은 알고리즘은 너무 쉬워서 빨리 풀고, 아침에 너무 피곤해서 조금 쉬었다..큭큭

import java.util.HashSet;
import java.util.Set;
import java.util.Arrays;
class Solution {
    public int[] solution(int[] numbers) {
        Set<Integer> set = new HashSet<>();

        int result;

        for(int i=0; i<numbers.length;i++){
            for(int j=0;j<numbers.length;j++){
                if(i==j){
                    break;
                }
                result=0;
                result=numbers[i]+numbers[j];
                set.add(result);
            }
        }

         // set을 int 배열로 변환
        int[] answer = new int[set.size()];
        int index = 0;
        for (Integer num : set) {
            answer[index++] = num;
        }

        // 오름차순 정렬
        Arrays.sort(answer);

        return answer;

    }
}

자바 스프링 스터디 2일차

오늘 내용은 정적 페이지, API, MVC와 템플릿 엔진에 대한 강의를 들었다.

이런 저런 개념들을 가볍게 알려주셨지만, 아무튼 이번 강의에서 중요한건 요즘은 API 방식에 JSON 형태로 구현한다는 것이 핵심이다. 오늘은 조금 가벼운 내용이었다.

 

 

 

 

 

티스토리는 쓰면 쓸 수록 불편한 점이 많이 보이는 것 같다. 노션에 익숙해서 그런지, 노션이 편하고 노션이랑 자꾸 비교하게 된다.

'내일배움캠프 > 회고록' 카테고리의 다른 글

8월 5일 월요일  (0) 2024.08.05
8월 2일 금요일  (0) 2024.08.05
7월 31일 수요일  (0) 2024.08.01
7월 30일 화요일  (0) 2024.07.30
7월 17일 수요일  (2) 2024.07.18