JiSoo's Devlog

[Node.js] 개발 워크플로우 및 디버깅 본문

Backend/Node.js

[Node.js] 개발 워크플로우 및 디버깅

지숭숭숭 2024. 10. 21. 16:08

NPM: 노드 패키지 매니저

npm을 사용하면 노드 프로젝트라 불리는 작업의 초기 내용을 설정할 수 있다

npm init

package.json 파일 생성

 

개별 설정된 이름이 있는 일반 스크립트의 경우 npm run 입력 후에 스크립트 이름을 입력해야 한다

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node app.js",
    "start-server": "node app.js"
  },

start-server의 경우 npm run start-server라고 입력해야 서버가 시작된다

 

 

제3자 패키지 설치

직접 작성하지 않은 어떤 기능이나 코드를 사용하고 싶지만 Node.js에도 포함되지 않은 경우 패키지들을 사용함으로써 들어오는 요청을 파싱하고 작업에 도움을 받을 수 있다

npm 저장소에서 모든 패키지들이 저장된 클라우드 패키지 저장소를 통해 사용할 수 있으며 이 패키지들은 노드와 함께 제공되는 도구인 npm을 사용해 간편하게 설치 및 관리할 수 있다

 

Nodemon 패키지는 자동 재시작 메커니즘

npm install nodemon

 

개발에 도움을 주는 개발 패키지와 서버에서 실행 중인 앱에 도움이 되는 프로덕션 의존성

nodemon은 개발 과정에서만 사용하기 때문에 개발 의존성이 된다

--save만 입력하면 패키지가 프로덕션 의존성으로 설치되며 실제로 코드 안에서 사용하고 작업하는 패키지

-dev를 추가하면 단순히 개발 도중 사용하는 것임을 나타낸다

-g는 머신 전체에 설치함으로써 어디에서든지 사용할 수 있게 한다

--save-dev를 사용하면 머신 전체가 아닌 이 프로젝트에만 설치

패키지를 사용 중이라면 node_modules 폴더가 필요하지만 프로젝트 작업 중이 아니라면 지워도 된다

다시 프로젝트 작업할 때 npm install 실행해서 설치해주면 된다

 

 

전역 기능: const나 function 같은 키워드 및 process 등의 전역 객체

코어 Node.js 모듈: 파일 시스템 모듈 ("fs"), 경로 모듈 ("path"), Http 모듈("http") 등

제3자 모듈: npm install을 통해 어떤 종류의 기능도 설치 가능

 

전역 기능은 항상 사용 가능하며 사용하기 위해 파일에 임포트 할 필요 X

코어 Node.js 모듈은 설치하지 않아도 되기 때문에 npm install이 안 필요 하지만 관련 기능을 사용하려면 임포트해야 한다

 

Nodemon

유틸리티 툴로 최종저긍로 node app.js를 실행하는 패키지를 통해 노드 애플리케이션을 실행할 수 있다

"start": "nodemon app.js"

이렇게 하면 이 프로젝트에서 nodemon 툴을 검색

터미널은 전역에서 검색하기 때문에 nodemon app.js를 실행하면 오류 발생

 

로컬 의존성은 프로젝트를 저장하는 node_modules 폴더가 없어도 공유 가능

전역 레벨에서 nodemon 설치하려면 npm install -g nodemon

-g 플래그는 패키지가 전역 패키지로 추가되게 해서 터미널이나 명령 프롬프트를 포함해 머신 어디에서나 사용 가능하게 한다

 

 

오류 유형

· 구문 오류

코드에 오타가 나거나 중괄호를 빼먹는 등의 오류

구문 오류에는 반드시 오류 메시지가 나타나는데 찾기 어려울 수 있지만 시간을 투자해 파일 점검하기

 

· 런타임 오류

코드를 실행하려고 할 때 멈춰버리는 상황

 

· 논리적 오류

오류 메시지가 뜨지 않고 앱은 원하는 대로 작동해 찾아내기 힘들다

디버거 사용 권장

 

 

 

 

 

728x90

'Backend > Node.js' 카테고리의 다른 글

[Node.js] 모델 뷰 컨트롤러(MVC)  (1) 2024.11.04
[Node.js] 동적 콘텐츠 작업 및 템플릿 엔진 추가  (3) 2024.10.28
[Node.js] Express.js 작업  (1) 2024.10.22
[Node.js] 기본 개념  (3) 2024.10.21