Node.js 주특기 입문 주차
기본적인 javascript 학습과 함께 몇 번의 개인과제, 팀과제를 끝내고 난 후 오늘부터 주특기 입문 주차가 시작되었다.
이제 본격적으로 Node를 입문한다고 생각하니 기대 반 두려움 반이었다.
오늘은 Node의 기본기 위주로 공부를 했기 때문에 배웠던 부분에 대해서 적어볼까 한다.
Node.js의 특징
① 논 블로킹
: 기존의 블로킹은 프로그램 내부에서 함수를 호출하면 호출된 함수가 작업을 마칠때까지 대기하는 방식이었지만,
논 블로킹은 함수가 실행되는 중에도 다른 작업을 동시에 진행할 수 있는 장점이 있다.
DB에 있는 데이터를 Node.js로 가져온다고 했을 때 가지고 오는 것들을 무조건적으로 기다리는 것이 아니라 백그라운드에서 돌아가면서 오는 것들을 기다렸다가 나중에 실제 데이터가 도착했을 때 업데이트 하는 방식으로 쓸 수 있다.
⇒ 비동기 작업을 할 때 효율적으로 쓸 수 있는 특성
② 싱글 스레드
: 스레드를 하나 사용하는 것이며, 동시에 하나의 작업만을 처리할 수 있다.
여기서 스레드란 프로그램이 동작할 때, CPU 또는 프로세서를 사용하는 단위.
일반적으로 1개의 프로그램은 1개의 스레드를 사용할 수있다.
스레드를 1개만 쓰기 때문에 연산 시간이 여러 스레드를 쓸 때보다 많이 걸리지만 병렬프로그래밍이나 멀티 프로세싱에서 별 고민을 안해도 된다는 장점이 있다.
③ 이벤트 루프
: Javascript가 가지고 있던 싱글 스레드의 약점을 극복하기 위해 효율적으로 작업을 처리할 수 있는 특성
npm 써보기
기본적인 node 설치 및 기초 준비 사항을 마친뒤에...
실제로 npm을 사용해서 package.json 파일을 만들어 보고 그것이 설치되면서 만들어지는 node module도 확인을 하고 의존관계들이 상세하게 기록되어 있는 package-lock.json 파일이 어떻게 생성되는지 확인해 보자.
npm 기능
⑴ npm init
- 명령어를 통해 package.json 파일을 만들 때 사용된다. package.json은 npm으로 설치된 모듈에 대한 정보가 들어있다.
- 새로운 프로젝트나 패키지를 만들 때 사용된다. 패키지명, 프로젝트 버전,Github URL등 프로젝트와 관련된 다양한 정보를 설정할 수있다.
⑵ npm install express
- express라는 모듈을 설치
- install 대신에 i라고 적어도 된다.
- install 뒤에 따라오는 express는 설치하고자 하는 모듈의 이름이다.
- npm install express로 express 한 개의 모듈을 설치할 수 있는데 띄어쓰기로 구분을 하여 여러 개의 모듈을 설치하는 것도 가능하다.
ex) npm install express mongoose jest
npm init을 쓰게되면 다음과 같이 정보를 입력할 수 있는 창이 나온다.
- name : 패키지명, 아무것도 입력을 하지 않으면 바라보고 있는 루트폴더가 기본적으로 설정된다.
- version : 아무것도 입력 안할 시 1.0.0이 기본값으로 설정된다.
- description : 이 프로젝트에 대한 간단한 설명
- entry point : 이 프로젝트를 시작하기 위해 어떤 파일을 먼저 쓸건지. 아무것도 안 쓸 경우에는 index.js가 된다. ( 이 프로텍트를 사용하기 위해서는 index.js파일이 실행되어야 한다)
- test command : 테스트를 하기 위한 것들을 어떤 것들인지
- git repository : 이 프로젝트를 깃에 올린다고 했을 때 깃 주소가 어떻게 되는지
- keywords : 이 프로젝트의 키워드들
- author : 이 프로젝트를 관리하는 사람은 누군지
- license : 라이센스는 어떤지
이 모든 것들을 작성하게 되면 package.json 파일이 생성되는 것을 확인할 수 있다.
그 후 npm install express 를 설치하게되면 package.json 파일에 dependencies 라고 해서 이 프로젝트를 실행하기 위한 패키지들에는 어떤 것들이 있는지, 그 패키지에 있는 버전은 어떤 버전인지 확인 할 수 있다.
또한 express를 설치하게 되면 package-lock.json이 생성된다.
package-lock.json을 보게되면 “node_modules/accepts” 와 같이 적혀있는 부분이 있는데 node_modules 가 어떤 위치에 있는지를 알려주는 친구이고 accepts가 어떤 패키지인지 알려주는 친구이다.
node_modules
- package.json 파일 내용 기반으로 npm install 명령어를 통해 설치된 모듈 파일들이 모여있는 곳이다.
- package.json에 설정된 모듈과 해당 모듈들이 참고하고 있는 또 다른 모듈도 함께 설치된다.
- 우리가 사용중인 환경에 맞는 파일들이 설치되기 때문에 이 폴더는 다른 곳에 공유하거나 배포할 때 포함하면 안된다. (나중에 배포할 때 git ignore file을 이용하여 이 폴더를 제외하면 된다)
npm install
- 명령어가 입력되면 package.json 파일을 기반으로 node_modules에 명시된 모듈을 설치해주는 명령어.
- 내 프로젝트를 다른 사람에게 공유하거나 다른 사람의 프로젝트를 사용할 때 모듈을 설치하기 위해 실행하는 명령어
- 아까는 dependencies 밖에 없었는데 devDependencies라는 것이 있다.
- devDependencies : 개발 단계에서만 필요한 모듈들을 설치할 경우 이곳에 포함된다. npm install -D를 쓰면 생성된다. ex) npm install jest supertest -D (jest와 supertest 설치)
정리
- node_modules : 공유하거나 배포할 때 포함하면 x
- package.json만 있으면 언제든 환경에 맞는 모듈들을 설치 가능하다.
- package.json 파일에 명시된 모듈 설치 : npm install
'TIL' 카테고리의 다른 글
2023_11_02 TIL (1) | 2023.11.03 |
---|---|
2023_11_01 TIL (1) | 2023.11.02 |
2023_10_30 TIL (0) | 2023.10.31 |
2023_10_26 TIL (1) | 2023.10.30 |
2023_10_27 TIL (0) | 2023.10.30 |