코드스테이츠

12/28 정리 CLI, Git 다루기

강물둘기 2022. 12. 28. 15:40

1. CLI 다루기

⓵ 여러 명령어 : pwd, mkdir, ls, cd, touch, cat, rm, mv, cp

   각각의 명령어는 그냥 쓸 수도 있고, 옵션을 붙여서 쓸 수도 있다. 옵션은 각각의 명령어마다 다르기 때문에 필요할 때 찾아서 쓸것.

⓶ 절대 경로 상대 경로

  절대 경로는 루트 폴더(/)를 기준으로, 상대 경로는 현재 위치를 기준으로 어디에 위치해 있는지를 나타낸다.

현재위치 /User/username/helloWorld/hello

상위 폴더인 helloWorld로 가고싶으면

절대경로
cd /User/username/helloworld

상대경로
cd ../

⓷ 관리자 권한과 sudo

  기본적으로 우리는 관리자 권한이 아닌 사용자 권한을 가지고있고, 그렇기 때문에 파일 설치, 삭제 등에 제한이 생긴다. sudo 키워드를 이용하면 관리자권한으로 명령을 실행시킬 수 있다.

mkdir justMkdir
sudo mkdir sudoMkdir
password:

⓸ 텍스트 에디터 nano

 

2. 패키지와 패키지 매니저

 패키지는 일반적으로 많이 사용하는 기법이나 특수 목적을 위해 미리 프로그램을 작성해서 사용자가 프로그램을 작성하지 않고 바로 사용하도록 만든 파일의 묶음이다. 패키지 안에는 프로그램 파일, 설치 파일, 설치 설명서, 정보 등이 들어있는데, 패키지를 사용하기위해 필요한 선행 파일이 존재하는 경우도 있다.

 패키지 매니저란 패키지를 쉽고 간편하게 다룰 수 있도록 도와주는 도구를 의미한다. 사용자가 패키지를 설치하겠다는 명령을 보내면 패키지 매니저가 흩어져있는 각각의 파일을 찾아서 설치해준다. 패키지 매니저는 마치 쇼핑몰과 같은 역할을 한다.

대표적인 패키지매니저 Homebrew

Homebrew를 설치하고 wget과 neofetch 파일을 설치해봤다.

 

3. Node.js

Node.js는 웹브라우저와 같이 javascript 런타임 환경이다. Node.js가 개발되면서 웹 브라우저가 아닌 곳에서도 JavaScript를 실행될 수 있게 되어 JavaScript를 통해 웹 페이지를 구성하는 것을 넘어 서버를 구축하는 등 활용폭이 크게 확장되었다.

⓵ nvm을 통한 버전관리

 nvm을 통해서 Node.js의 최신버전 설치/관리 뿐만아니라 이전 버전으로 손쉽게 옮겨 다닐수 있어서 코드의 Node.js 버전에 따른 호환성을 쉽게 확인할 수 있다.

⓶ npm과 package.json

 macOS 환경의 패키지 매니저로 homebrew가 있으면 Node.js 환경의 패키지 매니저로 npm이 있다.

package.json에는 이 프로그램을 실행시키기 위해 필요한 모듈들이 무엇인지, 실행 방법, 테스트 방법 등이 들어있다. 일종의 제품 카탈로그 같은 역할을 한다. 또한 프로젝트 코드를 전달할 때 포함하고 있는 모듈을 넘겨주는 것이 아니라, package.json에 적어놓고 사용자가 직접 다운받도록 할 수 있다.

 

4. 모듈 사용해보기

 range라는 모듈을 설치하고, 실제로 코드를 작성해 보았다. 간단하게 한줄만 써도 함수가 동작하니 코드짜기 편했다. 굳이 한 코드에 모든 기능을 넣을 필요 없이 모듈을 사용해서 코드를 짜면 가독성 좋고 편하게 할 수 있을 것 같다.

// 짝수 생성기, 코드 한줄이면 해결!
function getListMultiplesOfTwo(upTo){ 
	return range.range(2, upTo + 1, 2);
}

 

5. Git

 Git은 버전 관리 시스템이다. 코드를 수정하다가 잘못 작성했는데 어디까지 잘못됬는지 확인을 못할 때, 수정 이전 버전으로 간단하게 돌아갈 수 있다. 버전 업그레이드를 할 때 어떤기능이 바뀌었는지 기록을 해 놓을 수도 있다. 또한, 협업을 할 때 git 원격 저장소(ex. github)를 사용하면 다른 장소에서도 협업자가 작성한 코드를 받아서 사용할 수 있고, 백업도 가능하다.

 Git Repository는 Git으로 관리되는 폴더를 의미한다. Local repository는 실제 내 컴퓨터에서 작업하는 공간을 의미하고, 내 코드를 공유하고 싶으면 Remote repository에 업로드 하면 된다.