1월 17일 (금)
오늘 배운 것
깊은 복사 / 얕은 복사 차이점 알기
프로세스와 스레드 공부.
미션의 입력창부터 만들고 싶어서 readline과 정규식표현 샛길로 빠져서 공부... -> 정규식 성공해서 기분 좋았다
피곤하다. 운동하고, 저녁먹고 집가서 푹 쉬고. 주말에 프로세스 공부와 코드 다시 짜보는거로 해야지
성장하는 법: Comfort Zone을 벗어나기. 근육운동의 무게를 약간씩 증가시키는 것처럼.
점진적 과부하
문제가 어려우면 내 수준으로 낮추고, 너무 쉬우면 Comfort Zone에서 머물지 말기.
git을 잘해야 하는 이유
100점 만점 중 90점쯤 되는 어려운 툴
그럼에도 불구하고 git을 못하면 파일을 관리하는데 애로사항이 생김
git은 원리를 모르면 사용 자체가 힘들다
좋은 코딩을 하려면 많이 공부하고 많이 구현해야 한다.
다른 사람의 소스코드, 오픈소스의 소스코드를 많이 읽어보기
둘 사이에 밸런스를 잘 조절해야 한다.
도구는 여러가지를 쓰는게 좋다.
커밋할 때는 꼭 자세히 커밋 메세지를 작성하기. 내 머리속을 정리하면서
의심하기
문제가 제대로 된 것인가?
자연스러운가?
효율적인가?
해설
commit : 팀원 누군가의 로컬 컴퓨터의 세이브 포인트.
checkout : 로컬 저장소에 있는 파일들에 대한 커밋들을 꺼내서, 내 작업 디렉토리에 반영시키는 것.
항상 커밋은 메세지만 적어준다. 내용은 스테이지에 있는 내용 전체로 고정된다.
add로 스테이지에 뭘 올릴지 정해주는 것
일반 유저에게는 '내 작업 폴더'가 '최종 저장소'다. git에게는 그렇지 않다. git에게는 '내 작업 폴더'는 아무것도 아니고, '커밋'이 실제 최종 저장소다.
init : 로컬 저장소를 만든다.
커밋할 사항이 없다 -> 작업 폴더 / 스테이지 / 커밋 이 모두 같은 상황이다.
스테이지에 있는 내용을 커밋해도, 스테이지는 비워지지 않는다.
git에선 내용이 완벽하게 같은 파일은 하나만 허용한다.
HEAD -> master branch -> commit 순서로 가르키는 게 정상적이다.
git은 변경사항이 아니라 항상 전체를 저장한다. 이에는 분명히 저장공간에 손해가 있다. 하지만 일일히 변경사항을 체크할 필요가 없기 때문에 체크아웃할 때 속도가 훨씬 빠르다.
git은 원래부터 local 저장소와 remote 저장소의 차이가 전혀 없다. url만 다를 뿐
설계에서 고려해야 할 것들
클래스들의 관계: 클래스 다이어그램
실제 동작 시나리오: 시퀀스 다이어그램
Last updated