[부스트캠프 웹·모바일 8기] 챌린지 1일차 학습 정리

허지예·2023년 7월 10일
post-thumbnail

함수 분리하기

어떤 기준으로 함수를 분리해야 할까?

나는 프로그래밍을 할 때 다음 순서대로 한다.

  1. 문제를 추상적으로 분석하여, 큼직한 기능 별로 함수를 정의한다.
  2. 큼직한 기능 별로 나눈 함수를 구현한다.
  3. 구현한 함수에서 더 작은 단위로 로직을 나누어 함수를 분리한다.
    • 복잡한 부분을 함수로 분리해 추상적으로 기능을 호출한다.
    • 반복되는 부분을 함수로 분리해 추후 수정할 때 일괄적으로 수정할 수 있게끔 한다.
    • +) 상황에 따라서 다른 일을 할 경우, 공통된 일들은 최대한 모아서 같이 한다. -> 가끔 이 과정에서 if문이 사라져버리기도 한다.

-> 이 부분은 주말에 도서관에서 좋은 코드, 나쁜 코드를 빌리고 함수형 프로그래밍에 대해 한번 알아봐서 따로 정리해보아야 겠다.


git

의미있는 커밋 로그 작성하기

작년에 우아한 테크코스 프리코스를 하면서 정리했던 걸 다시 되새겨봤다.

feat : 새로운 기능에 대한 커밋
fix : 버그 수정에 대한 커밋
build : 빌드 관련 파일 수정에 대한 커밋
chore : 그 외 자잘한 수정에 대한 커밋
ci : CI관련 설정 수정에 대한 커밋
docs : 문서 수정에 대한 커밋
style : 코드 스타일 혹은 포맷 등에 관한 커밋
refactor : 코드 리팩토링에 대한 커밋
test : 테스트 코드 수정에 대한 커밋

[참고] Commit Message Conventions

git의 내부 동작

이미지 출처) [Git] 내부 동작 원리에 대한 이해

용어 정리

  • 로컬(Local) = Working Directory = Working Copy
    • 실제 위치: 프로젝트 폴더
    • 현재 프로젝트 폴더에 있는 파일들을 의미한다.
  • 인덱스(Index) = Staging Area = Cache
    • 실제 위치: .git/index
    • 개념적으로는 커밋이 이뤄질 준비가 된 파일의 내용들이 위치하는 영역을 의미함.
    • git add 명령어를 수행하면 변동 사항을 이 인덱스 영역에 반영시킬 수 있음.
    • .git/index 파일에는 커밋이 이뤄질 준비가 된 파일들의 파일 명과 내용을 담고 있는 Blob 파일의 주소가 기록됨.
  • 저장소(Repository)
    • 실제 위치: .git/objects/ 아래
    • 깃이 버전 관리를 하기 위해 필요한 데이터들을 저장하는 곳이다.
    • 여러 버전들에 해당하는 파일들의 내용이 Blob 파일로서 이곳에 저장되어 있음.
    • 이 곳에 저장된 파일들을 특별히 오브젝트 파일이라고 부름.
      (Blob 파일도 오브젝트 파일의 한 종류)
  • 오브젝트 파일
    • Blob 파일
      • 버전 관리하는 파일들 각각의 내용은 깃의 저장소에서 Blob 파일의 형태로 저장됨.
      • 파일의 내용에 SHA1이라는 해싱 기법을 적용하여 Blob 파일의 이름을 얻어내서 내용이 같은 파일들은 하나의 Blob 파일로서 저장됨.
    • Commit 파일
      • 하나의 버전을 생성한다는 것은 하나의 commit 파일을 만드는 것.
      • commit 파일은 하나의 tree 파일을 가리키고, 이 가리키고 있는 tree 파일의 주소와 직전 버전에 해당하는 commit 파일의 주소가 기록됨.
    • Tree 파일
      • 커밋 시점의 파일들 각각에 대해 그 파일 명과 해당 파일의 내용을 담고 있는 Blob 파일의 주소가 기록됨.
        • 인덱스 파일(.git/index)과 성격이 유사함.

git 명령어의 작동 원리

  • git add <파일명>
    • 인덱스의 내용과 비교했을 때 로컬에서 변동된 사항을 인덱스에 반영시키는 명령어
    • 새로 생성된 파일, 수정/삭제된 기존 파일이 add 명령의 대상이 됨.
  • git commit -m <메세지>
    • 인덱스의 내용을 바탕으로 새로운 버전(commit 파일)을 생성하는 명령어
    • 특정 시점의 프로젝트를 하나의 버전으로서 저장해준다는 의미

visual studio code

vscode vs 터미널

공통점

  • 둘 다 파일을 생성하고, 파일 내용을 편집할 수 있다.
  • git 등의 다양한 확장 프로그램을 연동해서 사용 가능하다.

차이점

  • vscode는 IDE로 내부 인터페이스를 통해 코드 편집과 확장 기능을 이용할 수 있다.
    (버튼 클릭으로 git commit이 가능하다)
  • 터미널은 명령줄 인터페이스로 명령어 입력을 통해 모든 기능을 사용한다.

+) vscode 내부에서도 ctrl+` 단축키로 터미널을 사용할 수 있다.
(나는 git이나 npm의 기능을 사용할 때 거의 터미널을 이용한다.)

  • ※ vscode 내부 터미널에서는 어쩔 때는 권한 관련 오류가 뜰 때가 있다. 그럴때는 터미널 창을 따로 띄워서 진행한다.
    -> 그런 경우 방지법
profile
대학생에서 취준생으로 진화했다가 지금은 풀스택 개발자로 2차 진화함

0개의 댓글