[TIL : 5] CLI, 패키지, Node.js, Git

jabae·2021년 10월 11일
0

TIL

목록 보기
5/44

👩‍💻 Achievement Goals : CLI

  • 리눅스 터미널을 실행할 수 있다.

    yes

  • CLI를 이용한 작업과 GUI를 이용한 작업이 동일함을 이해할 수 있다.

    CLI : Command Line Interface
    GUI : Graphic User Interface
    CLI 환경에서 파일을 지워도 GUI환경에서도 지워진다! (휴지통에서는 볼 수 없다🙁)

  • GUI의 변경사항을 CLI로 확인할 수 있다.
  • CLI의 변경사항을 GUI로 확인할 수 있다.

    CLI를 이용한 작업과 GUI를 이용한 작업이 동일하기 때문이다.

  • 리눅스 터미널에서 기본적인 명령어를 사용할 수 있다.

    pwd: 현재 위치를 확인하는 명령어
    mkdir: 새로운 폴더를 생성하는 명령어
    ls: 폴더나 파일의 목록을 출력하는 명령어
    open (macOS): 현재 폴더를 파일 탐색기로 여는 명령어
    cd: 폴더에 진입하는 명령어
    touch: 새로운 파일을 생성하는 명령어
    cat: 파일의 내용을 터미널에 출력하는 명령어
    rm: 폴더나 파일을 삭제하는 명령어
    mv: 폴더나 파일의 위치를 이동하거나, 이름을 변경하는 명령어
    cp: 폴더나 파일을 복사하는 명령어
    sudo: 관리자 권한을 이해할 수 있다. (super user do)

  • 명령어를 사용할 때, 등장하는 키워드에 대해 이해할 수 있다.

    /: 루트 디렉토리 ("highest" directory, cd ..해도 더 올라갈 디렉토리가 없다!)
    ~: 홈 디렉토리 (사용자의 모든 정보가 담긴 최상단 폴더, cd ../cd .. 하면 루트 디렉토리로 간다.)

  • 절대 경로와 상대 경로의 차이를 이해할 수 있다.
  • 절대 경로의 시작이 루트 디렉토리(/)인 것을 이해할 수 있다.
  • 상대 경로의 시작이 현재 디렉토리(.)인 것을 이해할 수 있다.
    • 절대 경로: 폴더의 깊이가 깊어지면 나깟다 들어갔다 복잡해지기 때문에 절대경로를 많이 사용하게 된다!
    • 상대 경로: 폴더의 개수가 많지 않고 깊이가 깊지 않을 때 많이 사용한다.(약간 GUI 같다...)

👩‍💻 Achievement Goals : 패키지와 패키지 매니저

  • 패키지와 패키지 매니저 필요성을 이해할 수 있다.
    • 패키지 : 프로그램 압축 파일 같은 것.(프로그램 파일, 설치 파일, 설치 설명서, 정보 등을 담은 파일)
    • 패키지 매니저 : 우리가 다운로드한 패키지들의 수정, 삭제, 업데이트 등을 관리해주는 프로그램이다. (패키지가 많아지면 하나하나 업데이트하기 어려우니까 사용된다.)
  • 각 운영체제에 맞는 패키지 매니저를 사용할 수 있다.
  • MacOS 운영체제에서 터미널을 통해 Homebrew 패키지 매니저를 설치하고 패키지를 관리하는 명령어를 사용할 수 있다.

    brew update: 패키지의 업데이트 여부 확인
    brew outdated: 업데이트 필요한 파일 조회
    brew upgrade: 프로그램 업그레이드
    brew info: 프로그램의 정보 확인
    brew install: 프로그램 설치
    brew list: 설치된 프로그램 목록 보기
    brew uninstall: 프로그램 삭제

👩‍💻 Achievement Goals: Nodejs

  • nvm, Nodejs, npm을 설치하고, 버전을 확인할 수 있다.
    • nvm : 노드 버전 매니저(종종 이전 버전을 사용하기 위해서 사용됨)
    • npm : node package manager로, node.js에서 사용되는 모듈들을 패키지로 만들어 관리해준다.
    • node.js : 옛날에는 웹사이트에서만 기능할 수 있었는데, 노드가 생겨나면서 다른 환경에서도 작성이 가능하면서 확장성이 좋아졌다!
    • dependencies : devDependencies와는 다르게, 이 프로그램이 돌아가기 위해 반드시 필요한 모듈들을 담고 있다.
    • devDependencies : 이 프로젝트를 개발하기 위한 환경에서 필요한 모듈이 무엇인지 적혀있다. (프로그램 실행과는 관계가 없이 개발자들을 위한, 개발을 위해서만 필요한!)
    • scripts : CLI에서 사용 가능한 명령어가 적혀있다.("start": "node index.js" npm start를 입력하면 실행된다. (약간 alias같은 느낌이다))
  • 명령어 node를 이용해 JavaScript 파일을 실행할 수 있다.

    node 파일이름.js 파일이 실행된다!

👩‍💻 Achievement Goals : Git

  • Git의 환경설정을 할 수 있다.
  • Github과 Git의 관계에 대해 이해할 수 있다.

    yes

  • 버전 관리 시스템의 필요성을 이해할 수 있다.

    ctr + z로 되돌리기는 번거롭고, 실수로 파일을 삭제할 경우?! 이전에 작성된 내용으로 돌아가기 어렵다. 그래서 버전 관리 시스템이 필요하다.

  • Repository에 대해 이해할 수 있다.

    파일들을 담은 저장소

  • Local Repository와 Remote Repository의 차이를 이해할 수 있다.
    • local repository: 내 컴퓨터 안에서 나만 볼 수 있는 저장소
    • remote repository: Github로 모두가 볼 수 있는 저장소
  • 상황에 따라 Github의 기능과 Git 명령어를 사용할 수 있다.

    Fork : fork를 통해 나의 원격 repository로 가져온다.
    clone : clone을 통해 원격 repository에서 local repository로 가져온다.
    status : 현재 상태를 알려준다.
    restore : 깃을 처음 받아온 상태로 되돌린다.
    add : repository에 올리기 위한 준비! add로 먼저 파일을 staged에 올린다.
    commit : 파일에 대한 메세지를 적어 local저장소에 올린다.(변경사항같은 내용을 짧게!)
    reset : add, commit 된 파일을 되돌린다.(git reset HEAD^)
    log : commit한 로그 기록들을 보여준다.
    pull : 협업하는 사람의 파일을 당겨오기도 하고(git pull 이름 main), 나의 변경사항을 프로젝트에 적용해달라고 요청한다(pull request).
    push : 원격 repository로 올린다!
    init : clone으로 프로젝트를 가져오지않고, 나만의 프로젝트를 만들었다면 init으로 git을 초기화해준다. 현재 파일을 git 관리하에 두기 위한 명령어이다.
    remote add : git remote add origin git주소 내 꺼랑 연결, git remote add 상대이름 git주소 다른 사람과 공유
    remote -v : remote add 상태를 확인할 수 있다.

  • Git의 세 가지 영역 및 상태를 이해할 수 있다. (Committed, modified, staged)

    unmodified files -> modified files -(add)-> staged -(commit)-> local repository -(push)-> remote repository

  • Remote Repository를 페어와 공유하며 협업을 할 수 있다.

    git remote add origin git주소 내 깃 주소 등록!
    git remote add 상대이름 git주소 페어 상대의 Remote Repository를 내 local repository에 등록
    git remote -v 확인
    git pull 상대이름 main 페어의 작업 가져와서 합치기
    git push origin main 내 local repository에 수정사항 반영하기

  • 충돌이 발생했을 경우 해결할 수 있다.

    자동적으로 merge가 되어서 아직까지 충돌이 나진 않았지만 차차 경험해 볼 것...!

  • Git Repository의 commit되지 않은 변경 사항을 취소할 수 있다.
    • reset HEAD <file>
    • checkout -- <file>

📚 그 외

  • 항상 git add git commit -m"~" git push정도만 써보아서 상대와 협업할 때 명령어는 조금 익숙하지가 않았다. 앞으로 지휴와 이것저것 해보면서 remote add 같은 명령어들을 쓰고 익숙해져봐야 겠다. (다 아는 줄 알았는데 아니었어~~~😫)
  • CLI는 vim을 나름 능숙하게 다뤄서 어렵지 않았지만, 와후 Nodejs는 nvm, npn을 분명다 설치했는데 중간에 날라가면서 이게 어디서부터 잘못된 건지... 정말 혼돈이었지만 휴파님이 도와주셨다. 휴 😮‍💨
  • Oh-My-Zsh를 설치했다. 색깔도 바꾸고 폰트도 바꿨다. 뭔가 정없던(?) iTerm에서 바뀌었다. 좀 더 색깔을 내 취향에 맞게 바꿔보아야겠다. 호호
  • 백신 2차를 맞고 2일이나 지났는데 몸이 아직도 멍청하다. 어서 돌아와! 돌아오라구!
profile
it's me!:)

0개의 댓글