주노 님의 블로그

20240716 본캠프 2일차 TIL 본문

TIL

20240716 본캠프 2일차 TIL

juno0432 2024. 7. 16. 21:07

본캠프 2일차 내용 간단요약

  • 09:00 ~ 09:10 : 아침회의
  • 09:10 ~ 12:00 : 프로젝트
    웹 개발
  • 12:00 ~ 13:00 : 점심시간
  • 13:00 ~ 13:20 : 오후회의
  • 13:20 ~ 14:00 : git, github 복습 및 공부
  • 14:00 ~ 14:30 : TIL작성법
  • 14:30 ~ 18:00 : 웹 개발 복습 및 공부
  • 18:00 ~ 19:00 : 저녁시간
  • 19:00 ~ 21:00 : git, github 복습

프로젝트 - 웹개발

더보기

div가 중간 정렬이 되지않아서 상당히 답답했음 ㅇㅇ

항상 justify-content : center로 하는데 안먹음 ㅠㅠ

 

display : block

margin : 0 auto;로 설정하기..

 


TIL특강

더보기

면접관이 그사람 포트폴리오를 볼때 진짜 그 사람이 이 코드를 구현했는지 알 수 없다

=> 기술 블로그를 작성하는게 좋다!

 

TIL로 작성하면 좋은 주제

  1. 강의 내용 정리하기 ( 초반 )
    오늘 배운것 > 개념정리 > 사용법
  2. 개발 단계 정리
  3. 하루 회고
    오늘 있었던 일 > 느낀점 > 개선방안
  4. 문제 해결 과정 (권장)
    발생한 문제(에러 및 버그)가 무엇인지 작성한다.
    문제가 발생했던 코드를 작성한다.
    문제점을 분석하고 가설을 세운다.
    문제의 원인이 무엇이고 어떻게 해결했는지 작성한다.
    문제 해결 과정 중 느낀점 개선 방안이 있으면 작성한다.\

특히 프로젝트 회고 같은내용을 면접관이 중점적으로 본다.

본인의 경험 또는 생각을 적는다.

 

TIL은 하루를 마무리 하기전보다, 막히는 부분일때나, 배운 내용이 있을때 적는게 좋다.

 

주말이나 짬날시간에 TIL내용을 따로 옮겨서 만들어야겠음


GIT, GITHUB 복습 및 공부

더보기
  • cli vs 소스트리
    프로젝트 상태를 살펴볼 때는 소스트리
    명령을 사용할때는 cli

  • git의 관리에서 특정 폴더나 파일을 배제해야할때
    .gitignore 파일 생성
    gitignore 파일에 숨길 폴더명 및 파일을 기록
    /aaa.html  최상위 폴더의 aaa.html파일
    *.html 모든 html파일
    aaa aaa란 파일 또는 폴더
    aaa/ aaa란 폴더의 내용들
    aaa/ *.c aaa폴더 안의 c파일들

  • 프로젝트의 변경사항을 git에 담기
    git add 파일이름
    git commit -m " "
    git commit -ad " " >> add와 commit 동시에 하기
  • vim 명령어
    i : 입력
    esc : 입력 수정 등 끝내기
    q : 종료
    q! : 강제종료
    wq : 저장후 종료

  • 이전 커밋으로 돌아가기
    reset : 원하는 시점으로 돌아간 뒤 이후 히스토리를 지운다
    git reset --hard 해시값
    id는 git log에서 나온다 다 보이지 않으면 j로 확장

    revert : 원하는 시점으로 돌아가기 위한 과정을 반대로 수행한다, 히스토리는 남는다.
    추가를 했다면 지우고, 지웠다면 다시 추가를하고..
    git revert 해시값

유지된것을 볼 수 있음

 

  • branch
    프로젝트를 하나 이상의 모습으로 관리해야 할때
    여러 작업들이 독립되어 진행될 때 (팀프로젝트 등)

    git branch 이름
    branch를 추가한다

    git branch
    branch list를 확인한다

    git switch 이름
    해당 이름의 branch로 이동한다

    git switch -c 이름
    해당 이름의 branch를 생성한 후, 이동한다.

    git branch -m 바꿀이름 새로운이름
    branch의 이름을 변경한다
    이렇게 branch는 가지가 나뉘게 된다
  • merge
    여러개의 branch를 병합한다, 각각의 branch의 변화들이 합쳐진다.
    a브랜치를 main으로 이동할때
    1. main브랜치로 이동한다
    2. git merge a를 입력
    이렇게 병합이 되고 새 커밋이 추가된것을 볼 수 있다.

  • rebase
    branch의 커밋들을 대상branch로 옮긴다
    branch의 커밋을 대상 branch를 하나하나 옮기는 느낌이다.
    a브랜치를 main으로 이동할때
    1. a브랜치로 이동한다
    2. git rebase main 으로 병합한다.
    main은 뒤쳐져있다 최신 커밋의 상황이 main에 반영이 되지않은것
    최신 브랜치와 merge를 하면 해결된다

  • merge와 rebase의 차이?
    merge는 두 브랜치의 히스토리를 볼 수 있다
    히스토리가 복잡해 질 수 있다
    협업 중인 팀원과 히스토리를 공유할때 사용하기 좋음

    rebase는 브랜치가 일렬로 나열되므로 로그가 깔끔해진다
    커밋의 해시를 변경하기떄문에 충돌이 발생할 수 있다 
    개인 작업시나, 원격 브랜치에 푸시하기전에 로컬에서 사용하기 좋다.

  • 충돌 해결하기
    a브랜치의 내용과 b브랜치의 동일한 파일의 동일한 위치의 내용을 바꾼다


    충돌되는 내용을 보여주며, 수정할내용을 선택할 수 있게 표시된다.

  • 깃허브 사용하기
    git remote add origin (원격 저장소 주소) 
    로컬의 git 저장소에 원격 저장소 연결 추가

    git branch -M main
    기본 브랜치명을 main으로 설정

    git push -u origin main
    로컬 저장소의 커밋 내역들을 원격으로 업로드 

  • github의 내용 복사하기
    git clone (원격 저장소 주소)
  • 로컬에서 깃허브로 추가하기
    git push
    만약 깃허브에 먼저 적용된 새 버전이 있다면
    pull을 먼저 작성후, push가능

  • 깃허브에서 로컬로 불러오기
    git pull

  • push 할것이 있을때 pull하는 방법
    git pull --no-rebase (merge방식) or git pull
    분기된 후 merge된것을 볼 수 있다.

    git pull --rebase (rebase방식)
    pull할때의 rebase는 괜찮다

  • 강제 push하는 법

  • 로컬에서 만든 브랜치를 원격으로 업로드하기 
    원격 branch 확인
    git branch -a
    git push를 하면 에러가 난다.
    에러메세지를 그대로 복사해서 붙여넣기하면 정상적으로 확인 할 수 있다.

  • 원격에서 만든 브랜치를 로컬에서 받아보기
    원격의 내용을 받아온다(병합은 하지않음)
    git fetch

    git switch -t origin/from-remote
    원격 브랜치를 로컬에 생성한 후 전환한다.

    git push origin --delete from-remote
    원격 브랜치를 삭제한다

  • git의 세가지 공간
    Working Directory : 
    untracked : add된적이 없는 파일 또는 ignore된 파일
    tracked : add된 적 있고 변경내역이 있는 파일

    Staging Area : git add를 통해 커밋을 위한 준비단계

    Repository : 커밋된 상태

  • 파일의 삭제와 이동
    git rm : 파일을 삭제한다
    삭제 및 스테이징영역으로 이동
    직접 삭제할경우 add를 통해 스테이징영역으로 이동해야함.

    git mv : 파일의 이름을 변경한다
    변경후, 스테이징 영역으로 이동한다.
    직접 변경할경우
    기존 파일이 삭제되었다고 뜨며, 새로운 파일(변경된 이름)이 등록되었다고 표시된다.
    git add . 명령어를 사용하여 스테이징영역으로 옮겼을때, 
    renamed 되었다고 뜨게된다.

    이 이유는 git은 working directory 영역에 대한 변경사항을 확인 할 수 없어 삭제와 생성작업으로 인식하지만 스테이징 영역에서 git은 파일의 해시값을 조사하기때문에 변동사항이 없으면 renamed라는것을 인식할수 있다.
    git은 이름 변경 작업을 하나의 이동으로 간주하기때문.

    그럼 이름을 변경한 후, 내용도 수정한다면?
    git은 새로운 데이터가 들어왔다는것으로 간주한다.

    챗지피티의 답변
    그럼 단순 띄어쓰기만 추가할 경우 어떻게 될까?
    git은 renamed로 인식하게 된다.

  • 특정한 내용만 원격 저장소에 올리고 싶은경우
    git restore --staged (파일명)
    을 사용한다.

  • reset의 세가지 옵션
    reset --soft : repository > staging area로 이동
    reset --mixed , reset : repository > working directory로 이동
    reset --hard : 수정사항 완전히 삭제

  • head
    현재 속한 브랜치의 가장 최신 커밋이다.

  • checkout
    병합을 하지않고, 파일의 상태만 이전 시점으로 되돌리는 방법
    git checkout^ : 한단계 되돌리기
    git checkout~5 : 다섯단계 되돌리기
    git checkout- : 한단계 복구하기
    main이 아닌 0022316으로 되어있는것을 알 수 있다.
    git이 이 부분으로 가상의 브랜치를 만들어 위치하고 있는것이라고 생각하면 된다.

  • HEAD를 사용하여 reset하기
    git reset --hard HEAD^ : 최신 커밋에서 한단계 전으로 돌아간다.
  • fetch
    원격 저장소의 최신 커밋을 로컬로 가져오기만함
    원격의 데이터를 변경한 후 fetch를 하면, 로컬보다 앞서있는것을 알 수 있다

  • fetch를 하되, 원격저장소의 변경내역을 보고 싶을때
    git checkout origin/main
    switch가 아닌 checkout으로 branch를 이동한다.

  • 해당 명령어의 사용법을 알고싶을때
    git (명령어) -h : cli환경에서 출력해준다
    git (명령어) --help : 웹 사이트를 출력해준다.

  • 커밋할때의 권장사항
    한 단위의 작업을 하나의 버전에 내용파악이 가능한 메세지와 함께 커밋을 해야한다.

  • 커밋 컨벤션
    각팀의 커밋 메세지 작성관례 (팀별 자체 정의 가능)
    feat 새로운 기능 추가
    fix 버그 수정
    docs 문서 수정
    style 공백, 세미콜론 등 스타일 수정
    refactor 코드 리팩토링
    perf 성능 개선
    test 테스트 추가
    chore 빌드 과정 또는 보조 기능(문서 생성기능 등) 수정

    feat: 압축파일 미리보기 기능 추가
    >> 새로운 기능 추가 : 추가한 내용

    사용자의 편의를 위해 압축을 풀기 전에
    다음과 같이 압축파일 미리보기를 할 수 있도록 함
     - 마우스 오른쪽 클릭
     - 윈도우 탐색기 또는 맥 파인더의 미리보기 창
    >> 상세 내용

    Closes #125 >> 125번의 이슈를 해결했음.

    위 컨벤션이 아니더라도 아래처럼 이모지를 이용한 방법도 있음.
    https://gitmoji.dev/
 

gitmoji

:truck: Move or rename resources (e.g.: files, paths, routes).

gitmoji.dev

 

 

'TIL' 카테고리의 다른 글

20240718 본캠프 4일차 TIL  (0) 2024.07.18
20240717 본캠프 3일차 TIL  (0) 2024.07.17
20240715 본캠프 1일차 TIL  (0) 2024.07.15
20240712 사전캠프 10일차 TIL  (0) 2024.07.12
20240711 사전캠프 9일차 TIL  (0) 2024.07.11