[패스트캠퍼스 FE MGS 3기] - 2일차

	
	

오늘 배운 내용


Git 마스터를 향하여...

  • shell 이란?
    • CLI
    • Vim
  • kernel 이란?
  • CLI로 git 사용해보기
    • git 꿀팁들

기타

  • 기억에 남는 말들..




Git 마스터를 향하여..


어제에 이어서 Git에 대해 공부하는 시간을 가졌다.
최우영 강사님과 함께 했는데, 굉장히 실무적으로 잘 알려주셨다. (탕비실로 따라와)
오늘 배운것은, CLI(git bash)를 활용해서 git을 다루는 방법이였다.
그래서 오늘 다루게 될 내용은, 주로 CLI의 사용법이 될 것 같다!






shell이란?

일단 CLI 사용법에 앞서 CLIGUI를 포함하고 있는 넓은 개념인,
shell에 대하여 설명하는게 우선순위 인 것 같다.
shell이란 다음과 같다.

운영 체제의 커널과 사용자를 이어주는 소프트웨어
CLIGUI로 나뉜다.

CLI(command line interface)
마우스 없이 키보드만으로 모든 명령어를 전달하는 방식의 인터페이스

GUI(graphic user interface)
사용자가 그래픽을 통해 컴퓨터와 정보를 교환하는 환경


kernel이란?

하드웨어와 응용 프로그램을 연결해주는, 운영체제의 핵심 소프트웨어








그렇다면 이제 gitCLI로 사용하는 방법에 대해 설명할 차롄데,
한가지 의문점이 들 수 있다.

"아니 요즘 github desktop 같은 GUI 도구를 사용하면
클릭 한번에 commit도 되고 push도 되는데...
굳이 번거롭게 CLI로 써야 하나...?"

라는 의문점에 대해서 강사님은 이렇게 답변해주셨다!





구구절절 맞는 말인 것 같다.
나도 github desktop 을 맨 처음부터 이용했었는데,
순간 순간 위기가 찾아왔었다.

명령어에 대한 명확한 이해도도 없이
git add . 이나 git commit -m 'message' 등의 명령어들을
그저 반복해서 작성하고 있을 뿐이였는데,
(이 두가지는 끝에 다시 언급하겠지만, 개발자로서 지양해야 한다고 말하셨다.)

에러가 나도 명확한 오류를 찾는데 많은 시간이 소요되었고,
심지어는 rm -rf 를 잘못 입력해서 모든 npm 파일 들이 날아가버린적도 있었다... 😢

때문에 이번 강의를 들으면서, 전에는 무지성으로 그저 입력하던 코드들이
"아 이게 이런 의미였구나~" 하면서 깨달은 것들이 많아서 굉장히 유익했다.









CLI로 git 사용해보기

CLI 명령어 모음

  • ls :
    현재 폴더에 있는 파일의 목록을 모두 보여줌
    • ls -a : 숨김 파일까지 조회
    • ls -l : 상세 정보를 조회 (flag 추가)
    • ls -al : 숨김 파일까지 상세 정보를 조회
  • cd :
    지금 루트의 최상단 디렉토리로 이동
    • cd ‘폴더 이름’ : 해당 폴더로 이동
    • cd .. : 폴더 위로 이동
  • mv (move) :
    주로 파일을 이동할때 씀
    • mv ‘파일’ ‘이동경로’ : 파일을 이동경로로 옮김
      ex) mv ../server.js ./ : 상위 폴더에 있는 파일을 현재 폴더로 옮김
    • mv ‘파일1’ ‘파일2’ : 파일 1을 파일 2로 이름 변경
  • rm (remove)
    하드디스크에 접근할 수 있는 방법 자체를 지움
    • 폴더는 remove 불가능 (안에 있는 파일들의 경로가 없어져서)
    • rm -rf : 폴더 삭제 가능 (경로 상의 모든 파일을 지움)
      • rm -rf / : 절대 금지 !
  • cp ‘파일’ ‘경로’ (copy) : 파일의 사본을 경로에 만듬
  • 파일이름.* : 와일드 카드 (특정 이름을 가진 모든 확장자의 파일을 이동시킴)
    ex) mv ../ server.* ./ (server라는 이름을 가진 모든 확장자의 파일을 이동시킴)
    • mkdir ‘폴더 이름’ : 폴더 만들기
  • echo ‘메시지’ : 메시지를 그대로 출력
  • touch ‘파일 이름’ : 파일 생성
  • delete : 특정 주소값의 파일 자체를 없앰
  • sudo : 관리자 권한이 필요한 일 앞에 사용 (super user)
  • vim ‘파일이름’ : 해당 파일을 vim이라는 프로그램(에디터)으로 열어라
  • cat ‘파일이름’ :
  • pwd : (print working directory) 현재 디렉토리 보여줌
  • clear : shell 안의 내용들 전체 삭제

vim (=vi)

vim 에디터

  • insert 모드 : i
    • 나갈땐 esc
  • command mode : :
    • 저장하기 :w
    • 나가기 :q
    • 저장 하고 나가기 :wq
    • 저장 안하고 나가기 :q!





Git 꿀팁들

아무래도 처음부터 다 세세하게 설명하는건 비효율적이기에,
중요하다고 생각되는 내용들 위주로 정리해보았다.

  1. 저장소 상태를 해제 하려면, git 폴더를 삭제하면 됨
  2. git remote 다른 별명 추가 (협업 시 중요)
    • git remote add '다른 별명'
  3. git commit 시에 창이 뜸 (vim 으로 열면 자동으로 오픈)
    맨 위에 노란색이 commit 제목
    아래에 두번 엔터 치고 내용 (반드시 두번 쳐야 제목, 내용 구분됨)
    만약에 vi 에서 저장 안하고 나가면 commit 안됨!
  4. 작업 단위를 잘 나눠줘야 한다. (설령 두줄을 작성했더라도)
    • add를 하나씩 따로 따로 하면 된다.
  5. git status 습관 들이기!
  6. git commit 할때 ‘-m’ (m플래그) 안하는게 좋음!
    • 쓰다가 윗줄 수정 불가능!
    • 덮어쓰기가 가능하기 때문에 위험
  7. 취소 하기 : 컨트롤 + C
  8. git status파일 단위로 추적되기 때문에, 디렉토리 만으로는 없는 것으로 취급 됨.

Git conventional commits

보다 명확하게 작업단위를 구분할 수 있도록 도와주는 규칙들 이라고 보면 되겠다.

  • 예시:

    이때 fixrefactoring의 차이점은,
    fix안되던 것을 고침.
    refactoring되던 것을 개선함.
    (동작은 잘되나 효율성이 떨어지는 것의 효율성을 올림.)

기타


기억에 남는 말들....
강사님이 유머러스 하셔서 재밌게 들었다 ㅎㅎ

코딩 할 때 제일 중요한 것 : 항상 흥미를 가지고 탐구하는 자세

공부방법
1. 공식 문서 잘 읽기
2. 남의 코드 많이 보기 (best properties 를 찾음)

  • backend 언어 추천 : node js, mongo db 무조건 이 두가지라고 하셨다.
  • 개발할때 영어를 꼭 배워라.
    번역이 반복되면서 본래의 뜻이 뭉개지는 경우가 생김 (ex. 일본어 -> 영어 -> 한국어)
  • 개발할 때 랜덤으로 찾아오는 fever time을 잘 활용 하자
  • git 학습 참고 사이트
    https://ulgoon.github.io/2019/09/first-to-git/
  • 항상 외워서 하지 말고 코드를 보면서 그때 그때 대응해라
    • 사실 컴퓨터는 모든걸 알고 있음...
  • 개발자는 정글러 처럼 일해야 한다....
    • 최적의 동선을 선택 해서 최고의 효율을 내야 함.
  • TIL 잘하는 github 추천
  • soylent 파우더? 선식?
  • ctr + shift + r : 이렇게 새로고침 해야함 (cache clear)
  • SEO 필수 : troubleshooting 글이 조회수가 잘 나옴

좋은 웹페이지 즐겨찾기