What I Learned
호눅스의 수업
Git
Git이란 분산 버전 관리 시스템이다. Linus Torvalds가 리눅스 버전관리를 위해 만들었고 협업과 버전관리를 위해 쓰이고있다.
깃에서는 커밋이 제일 중요한데 여기서 커밋은 내 작업 디렉토리의 스냅샷이다. 게임으로 치면 체크포인트와 같은 역할을 하며 따라서 언제든 커밋을 한 시점으로 되돌아갈 수 있다. 커밋은 변경사항을 저장하는 것이 아니라 매번 파일 전체를 저장한다.
개념
- 작업 디렉토리(= 워킹트리): 작업하는 공간
- 스테이지(인덱스): 커밋을 준비하는 공간, 작업 내용을 스테이징하는 곳(add)
- BLOB: 실제 git파일을 binary large object 파일로 저장(모르겠다åå;)
- 로컬저장소: .git 디렉토리, 커밋의 집합, 스냅샷이 모여있는 곳.
- 원격저장소: 로컬저장소를 서버에 복사한 것
- 브랜치: 커밋의 참조(커밋에 이름 붙인 것), 작업의 흐름을 제어하기 위해 사용
- 태그: 커밋의 또 다른 참조, 이름과 주석을 붙일 수 있다.
브랜치는 기능 기준으로 만들 것.
Issue
- 미션1에 나와있는대로 테스트케이스를 만들었지만 assertj가 임포트되지 않아 애를 먹었다. 구글링을 해보니 뭔 디펜던시를 어떻게 하라는데 무슨 소린지 몰라 그룹원에게 도움을 청했고 제인이 링크를 보내줘서 해결할 수 있었다. 프로젝트를 만들 때 gradle이나 maven을 설정해야하는 것 같았다. 스프링을 써본 적이 없어 이런 부분이 생소했다. 처음엔 build.gradle 파일을 임의로 만들어서 쓰면 되는 줄 알았고 몇번이고 프로젝트를 새로 만들고서야 제대로 생성할 수 있었다. build.gradle 파일의 dependencies 을 제인이 보내준 링크를 참고해 고치고 나서 assertj가 무사히 임포트되는 걸 확인했다.
- 1의 문제를 해결하고 테스트를 돌리니 junit.jupiter.api does not exist 오류 메세지가 떴다. 구글링을 해보니 인텔리제이의 설정이 잘못되어 있었다는 걸 알았다. gradle의 설정에 build and run using과 run tests using 옵션을 모두 IntelliJ IDEA로 바꿔주니 해결되었다.