200804 TIL (Command Line Interface, Git + Review)

Rameau·2020년 8월 4일
0

코드스테이츠 pre

목록 보기
4/6

사실 31일(금)부터 이어진 알고리즘 문제를 아직도 다 풀지 못하여 혼이 나갈 것 같지만 오늘 아주 흥미로운 것들을 배웠기에 정리해보기로 한다. 터미널과 git을 드디어 이용할 수 있게 되어서 괜히 신났다. 아직 익숙하지 않지만 코스 진행하는 동안 계속해서 쓸 것 같으니 꼭 숙지하고 있어야겠다.

Today I Learned

1. Command Line Interface

터미널에서 CLI를 사용하는 것과 GUI로 작동하는 것은 본질적으로 다르지 않지만, CLI는 빠르고, 강력하고, 효율성이 높기에 개발자라면 반드시 익숙해져야 하는 주요 스킬이다.

명령어 :
ls : 현재 디렉토리 및 파일 확인
cd : 디렉토리로 이동
mkdir : 디렉토리 생성
rm : 삭제(정말 삭제할 것인지 확인 X. 휴지통에도 들어가지 않는다)
pwd: 현재 디렉토리 확인
touch : 파일 생성
cat : 텍스트 형태의 파일 확인
mv : 현재 디렉토리 및 파일 옮기기
cp : 복사

  • 띄어쓰기는 \ (ex. cd My\ Documents)
  • [Tab]키를 누르면 자동완성
  • sudo : 관리자만 읽을 수 있는 파일 읽기

2. Git

Git(버전 관리 시스템)은 기본적으로 폴더를 변경하는 걸 파악하는 기능을 하며, 변경사항을 추적한다고 생각하면 된다.

  • commit : 작업 공간의 어떤 시점의 스냅샷
  • Staging area : git add를 통해 commit을 하기 전에 거치는 가상의 공간
  • Local repository : 내 컴퓨터에 저장되어 있는 개인 저장소
  • Remote repository : 여러 사람이 공유하는 원격 저장소
  • fork : 동일한 프로젝트에 대하여 나의 저장소에 복사본을 만드는 것
    clone : 특정 repository를 말 그대로 로컬에 clone(복사)하는 것
    push : 원격 저장소에 내 로컬 저장소를 올리는 것
    pull : 원격 저장소로부터 필요한 파일을 다운받고 병합하는 것
    fetch : 원격 저장소로부터 필요한 파일을 다운(병합은 따로 과정을 거쳐야 함)
  • branch : 작업을 진행하는 가지
  • pull은 내부적으로는 fetch + merge(branch 병합)
    +Workflow

3. Review

일주일간 javascript를 공부하며 반드시 대답할 수 있어야 하는 질문들 중 추가로 조금 더 학습이 필요한 부분을 정리했다.

  • array.slice 개념
  • mutable / immutable
  • spread syntax
  • function scope
  • Closure
  • for, while을 각각 써야 하는 경우의 차이

Note

  • 사실 위에 써놓은 것 말고도 제대로 내 언어로 설명할 수 있는 개념이 아직 많지 않다. 특히 여러 개념을 함께 응용할 수 있어야 하는 알고리즘 문제를 풀면서 부족함을 많이 느꼈다. 이해했다고 생각했지만 사실 이해하지 못한 개념이 많으니 벌어지는 문제라고 생각한다. 바로 문제를 풀 수는 없어도 이 문제에 어떤 개념들이 필요하고, 그 개념의 메소드는 이렇다고 이야기할 수는 있어야겠다.
    내일까지 지금까지 해결하지 못했던 알고리즘 문제들을 풀어보고, 가능하면 오늘 푼 javascript koans 중 advanced에 손을 대 볼 예정이다.
profile
개발하고 싶다!

0개의 댓글