티스토리 뷰

1. nodemon

2. cookie-parser


1. nodemon

[그림 1] nodemon 로고

nodemon은 node monitor의 약자로, 노드가 실행하는 파일이 속한 디렉토리를 감시하고 있다가 파일이 수정되면 자동으로 노드 애플리케이션을 재시작하는 확장 모듈이다. 이 확장 모듈을 이용하면 개발 중인 노드 애플리케이션의 소스 코드를 수정할 때마다 매번 노드 명령어를 통해 새로 시작할 필요가 없으므로 매우 편리하다.

 

설치

npm i -g nodemon

nodemon 모듈은 npm 명령어로 쉽게 설치할 수 있다. 노드 애플리케이션을 개발할 때마다 사용할 예정이므로 -g 옵션을 써서 글로벌로 설치한다.

 

사용방법

nodemon server.js

터미널에서 실행하고자 하는 애플리케이션을 node 명령어 대신 nodemon으로 실행하면 된다. node로 앱을 실행시켜도 똑같이 실행되지만, nodemon을 사용하면 훨씬 편리하다. 위의 경우 server.js라는 애플리케이션을 nodemon으로 실행한 것이다.

 

[그림 2] package.json의 scripts 변경

package.json 파일의 "scripts" 부분에 start, dev와 같이 적어두면 node server 명령어 대신 npm run start를, nodemon server 명령어 대신 npm run dev를 사용할 수 있다.

 

js 확장자 파일들은 Ctrl + S로 저장했을 때 nodemon이 알아서 잘 처리해주는데, views 디렉토리 안에 있는 HTML 확장자 파일들은 수정한 후에 nodemon에 반영이 되지 않는다. 이를 해결하려면 추가로 모듈을 설치해 주어야 한다.

 

chokidar 모듈 설치

npm i chokidar

chokidar라는 모듈을 설치한 후, 아래와 같이 nunjucks.configure() 안에 watch:true 라는 문구를 추가한다.

 

[그림 3] nunjucks 설정

이제 views 폴더 안의 HTML 파일을 수정할 때에도 nodemon이 즉각적으로 변경 사항을 처리하여 서버를 재시작하는 것을 확인할 수 있다.

 

 

2. cookie-parser

[그림 4] Cookie-Parser

cookie-parser는 요청(request)에 동봉된 쿠키를 해석해 req.cookies 객체로 만들어주는 미들웨어이다. parseCookies라는 함수와 기능이 비슷하다.

 

설치

npm i cookie-parser

npm 명령어로 cookie-parser를 설치한다.

 

사용방법

app.use(cookieParser(비밀키));

 

해석된 쿠키들은 req.cookies 객체에 들어간다. 예를들어 name=jenny 쿠키를 보냈다면 req.cookies는 { name: 'jenny' }가 된다. 유효 기간이 지난 쿠키는 알아서 걸러낸다.

 

cookie-parser는 인수로 비밀키를 넣어준다. 서명된 쿠키가 있는 경우, 제공한 비밀키를 통해 해당 쿠키가 내 서버가 만든 쿠키임을 검증할 수 있다. 쿠키는 클라이언트에서 위조하기 쉬우므로 비밀키를 통해 만들어낸 서명을 쿠키 값 뒤에 붙인다. 서명이 붙으면 쿠키가 name=jenny.sign과 같은 모양이 된다. 서명된 쿠키는 req.cookies 대신 req.signedCookies 객체에 들어있다.

 

cookie-parser가 쿠키를 생성할 때 쓰이는 것은 아니다. 쿠키를 생성/제거하기 위해서는 res.cookie, res.clearCookie 메소드를 사용해야 한다. res.cookie(키, 값, 옵션) 형식으로 사용할 수 있다. 옵션에는 domain, expires, httpOnly, maxAge, path, secure 등이 있다.

 

res.cookie('name', 'jenny', {
    expires: new Date(Date.now() + 60*60*1000),
    httpOnly: true,
    secure: true,
});

res.clearCookie('name', 'jenny', { httpOnly:true, secure:true });

 

쿠키를 지우려면 키와 값 외에 옵션도 정확히 일치해야 쿠키가 지워진다. 단, expires나 maxAge 옵션은 일치하지 않아도 된다.

 

옵션 중에는 signed라는 옵션이 있는데, 이를 true로 설정하면 쿠키 뒤에 서명이 붙는다. 내 서버가 쿠키를 만들었다는 것을 검증할 수 있으므로 대부분의 경우 서명 옵션을 켜두는 것이 좋다. 서명을 위한 비밀키는 cookieParser 미들웨어에 인수로 넣은 process.env.COOKIE_SECRET이 된다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함