GUI는 아이콘이나 폴더 같이 그래픽으로 나타낸 것.
prompt : 키보드 입력을 확인&편집할 수 있는 한 줄의 공간.
CLI 명령어
pwd 현재 위치 확인
cp 폴더나 파일 복사
rm 폴더나 파일 삭제
mv 폴더나 파일의 이름 변경, 폴더나 파일의 위치 옮기기
ls 특정 폴더에 포함된 파일이나 하위 폴더 리스트 출력 (옵션: -a, -l)
mkdir 새로운 폴더 생성
touch 파일 생성
cat 파일 내용 터미널에서 출력
nano CLI 환경에서 사용되는 에디터 중 사용하기 쉬운 에디터 (vim, emacs 등도 있으나 어렵다)
사용자 계정과 관리자 계정이 나뉘어져 있는 이유는 보안을 위해서. (악성코드, 해킹)
절대경로 : 기준점으로부터 절대적 위치. 여기서 기준점을 루트 폴더라고 함.
(루트 폴더로부터 사용자 폴더까지 경로 축약한 형태를 '~'로 나타냄
'cd ~' 명령어로 루트 폴더로 이동 가능)
상대경로 : 특정 폴더 또는 파일 위치를 현재 위치 기준점으로 나타냄.
(현재 위치한 폴더는 '.'으로 표현. 상위 폴더는 '..'으로 표현)
패키지는 여러 파일이 담긴 하나의 상자로 패키지 내에는 프로그램 파일, 프로그램 설치 파일, 프로그램 설치 설명서, 프로그램에 대한 정보 담은 파일 등이 있음.
패키지 매니저는 패키지 설치, 변경, 삭제 등을 편리하게 해주는 도구. 패키지 매니저는 모든 패키지 저장소 위치를 알고 있기 때문에 독립적으로 프로그램들의 저장 위치를 알아내서 설치하지 않아도 됨. 프로그램 업데이트, 제거 등에도 사용 가능.
package.json : 어떤 프로그램 실행하기 위해 필요한 모듈들, 프로그램 실행법, 테스트 법 등 명시.
=> package.json 통해서 프로젝트 전달할 때 모듈까지 전부 전달 안 해도 받는 사람이 알아서 필요한 모듈 설치 가능.
=> devDependencies(프로젝트 개발 환경에 필요한 모듈 목록), script(CLI에서 사용 가능한 명령 기술), dependencies(직접 실행에 필요한 모듈 목록) 등이 있음.
node_modules : 실제로 이 프로그램 실행시키기 위한 모듈들이 설치되어 있는 곳.
local repository : 내 컴퓨터의 저장소, 내 개인용 저장소.
remote repository : 원격 온라인 서버상 저장소, 여러 사람들과 공유 가능.
fork : 다른 원격 저장소에서 내 원격 저장소로 프로젝트 가져옴.
clone : 내 원격 저장소에 있는 코드 내 컴퓨터로 가져옴.
push : 작업 완료하고 변경된 내용 commit 통해 저장한 후, 원격 저장소로 업로드.
(로컬 저장소 => 원격 저장소)
pull : 원격 저장소에서 변경 사항 있을 때 로컬 저장소로 가져옴.
CLI에서 파일을 삭제하면 휴지통으로 가지 않고, 즉시 삭제 된다!
npm은 사용 전 npm init 해야 하는데, npm 패키지를 초기화 해주는 명령어라고 함. 새로운 프로젝트나 패키지 만들 때 사용.
const range 와 const { range }의 차이점은 전자는 변수고 후자가 객체라는 점인데, 객체 안에는 함수도 넣어줄 수 있다. (require으로 모듈을 불러올 때) 함수를 바로 꺼내오고 싶을 때 'const { range } = require('range') 이렇게 쓸 수 있다. (뒤쪽 require에 들어간 range는 모듈임.)