1. CLI(Command Line Interface)
- GUI(Graphical User Interface)를 사용해왔던 것을, CLI를 통해 수행해보자
- 기본 Linux 명령어
- 명령줄 대기모드 프롬프트(prompt)
- mkdir : 새폴더 (Make Directory)
- pwd : 현재 위치 (Print Working Directory)
- ls : 폴더나 파일의 목록 출력 (List)
- -l : 폴더나 파일의 포맷 표현, d는 폴더, -는 파일
- -a : all (숨어있는 파일, 폴더를 포함)
- nautilus : 현재 폴더를 파일 탐색기로 열기
- cd : 폴더 진입 (Change Directory)
- touch : 새로운 파일 생성
- cat : 파일 내용 출력 (concatenate), 파일의 모든 내용을 출력한다, 즉 너무 큰 파일을 출력하는 것은 비효율적
- rm : 폴더나 파일 삭제 (Remove) 휴지통을 거치지 않고 삭제
- -r recursive , 폴더를 지울 때 사용
- -f force , 질문을 받지않고 삭제
- mv : 폴더나 파일의 위치를 이동하거나, 이름을 변경 (Move)
mv [옮길 폴더나 파일이름][옮겨질 폴더]
mv [이름 바꿀 폴더나 파일 이름][바꿀 이름]
- cp : 폴더나 파일 복사 (Copy)
cp [복사할 파일][복사본 파일 이름]
- sudo : 관리자 권한
- / : 루트 디렉토리
- ~ : 홈 디렉토리
- \ : 공백이나 특수문자 앞에 사용
- . 현재 디렉토리, .. 현재의 상위 디렉토리
- whoami : 현재 사용자 확인
- ~/ 는 루트폴더(~)로 부터 사용자 폴더까지의 경로를 축약한 형태
- 절대경로와 상대경로
- 절대 경로의 시작은 루트 디렉토리 /
- 상대 경로의 시작은 현재 디렉토리 .
- 텍스트 에디터 nano 사용
- vim(vi), emacs 등 여러 에디터가 있으나 진입장벽이 높다.
- nano hello.js >> nano에서 실행
2. 패키지와 패키지 매니저
- 패키지 파일의 기본적인 구성
- 프로그램 파일
- 프로그램 설치 파일
- 프로그램 설치 설명서
- 프로그램에 대한 정보를 담은 파일
- 우분투(ubuntu)의 패키지 매니저로는 apt가 기본적으로 내장되어있다.
- apt update 최신 정보 갱신, 설치된 프로그램이 새로운 버전으로 변경되지 않음 (sudo)
- apt list --upgradable 업그레이드 가능한 패키지 목록 출력
- apt upgrade 전체 패키지 업그레이드 (sudo)
- apt --only-upgrade install 패키지이름 특정 패키지 업그레이드 (sudo)
- apt install 패키지이름 패키지 설치 (sudo)
- apt list --installed 설치된 패키지 리스트
- apt search 검색어 패키지 검색
- apt show 패키지이름 패키지 정보 확인
- apt remove 패키지이름 패키지 삭제 (sudo)
3. Node.js
- 크롬, 사파리 같은 웹 브라우저가 바로 JavaScript 런타임
- 런타임이란 프로그래밍 언어가 구동되는 환경
- 어떤 프로그램이 동작할 때, 프로그램이 동작되는 곳 >> 런타임
- node.js 런타임의 등장으로, JavaScript 코드를 브라우저와 node.js환경 모두에서 실행시킬 수 있게됨
- nvm : Node Version Manager, node.js의 버전을 관리하고 설치할 수 있는 프로그램
- 잘하는 사람들이 만들어놓은 검증된 코드(모듈)을 가져다 사용해라! 바퀴를 재발명하지 않아도 된다!
- node.js에서는 npm 모듈이라는 이름으로 부르며, 이에 대한 정보를 담아둔 곳이 package.json이다
- npm은 Node Package Manager로 필요한 모듈을 다운로드 할 수 있다
- package.json에는 이 프로그램을 실행시키기 위해 필요한 모듈들이 무엇인지, 실행시키는 방법, 프로그램을 테스트하는 방법 등이 명시되어 있다
- 이 프로그램을 실행시키기 위해 필요한 실제 모듈은 node_modules에 저장되고, package.json에는 어떤 모듈인지만 적혀 있음
- devDependencies에는 프록젝트를 개발하는 환경에서 필요한 모듈이 적혀있음, 실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈을 명시
- npm install시 --save-dev 옵션과 함께 설치하면 devDependencies에 추가됨
- dependencies는 프로젝트가 실행되기 위해 반드시 필요한 모듈 (ex. underscore, React 등)
- npm install시 --save 옵션과 함께 설치하면 dependencies에 추가됨
- package.json은 다른 사람에게 이 프로젝트에 대해 설명하는 역할
- scripts 항목은 CLI에서 사용가능한 명령을 기술한다, 이를 npm scripts라고 부른다
- npm run 스크립트 이름으로 실행
4. Pair Programming / 짝수 생성기
- nvm, npm 등의 차이와 사용법을 실습
- range 모듈 사용
- 객체 구조분해 할당이 사용되었음, 더 알아보기