Node + React Basic ④

minsgy·2021년 1월 8일
1

node-react

목록 보기
4/11
post-thumbnail

NodeMon에 대하여

지금까지 실행 중인 Node App을 소스 코드를 수정 할때마다 프로세스(Process)를 완전하게 종료하고 다시 재개 해야했다...

이거야 말로 정말 비효율의 끝판왕이라고 생각한다.
그래서 새로운 서버 관리 도구를 찾아보았는데 그것이 바로 NodeMon 이라는 툴이다.

간단하게 설명하자면, Source를 변경 할 때마다 그걸 감지하여 자동으로 서버를 재시작해주는 Tool

이것을 효율적으로 사용하는 상황은 언제일 지 찾아 보았다.

왜 필요할까?

우리가 서비스 중인 애플리케이션 서비스에서, 개발자가 예상하지 못한 오류 및 충돌 등 으로 인한 프로세스 중단 상황을 고려하기 위해 만들어진 툴이다.

종류와 사용처

개발된 대표적인 프로세스 관리 도구로 Nodemon과 PM2가 있다.

실제로 "서비스를 개발하는 단계" 에서는 Nodemon을 사용하고,
실제 "서비스 운영 단계"에서는 PM2를 이용하여 사용한다고 한다.

사용 방법

  1. package.json에서 실행 할 파일을 설정 해주어야 한다.

  2. package.json 파일을 열어서 script 단에 추가해준다.

  3. 바로 터미널에 실행 시켜주면 적용 완료다.

그리고 계정에 대한 정보를 지키기 위해서 무엇을 할 수 있는 지 살펴보자.


Bcrypt를 이용한 비밀번호 암호화

우리가 User 사용자 모델을 만들어서 아이디/비밀번호/각종 정보를 저장 하게 되면, 문자열 그대로 저장하게 된다.

어떤 서비스가 이렇게 저장할까..? 너무 빼먹기 쉬운 이 정보들을 해쉬 값으로 암호화를 통해 비밀번호를 암호하자.

그러기 위해서는 Bcrypt 패키지를 통해 암호화합니다.

Bcrypt란? 문자열에 대해서 암호화를 통해

우리가 필요로 하는 과정

  1. 비밀 번호를 입력한다. (PlainText 형태)

  2. 입력 받은 문자열을 Bcrypt를 통해 암호화한다.

  3. 암호화 한 값을 데이터베이스에 저장한다. (암호화 된 형태)

프로그래밍 과정

  1. 유저 계정을 만들고, 저장하기 전에 생성한 비밀번호를 암호화 해야한다. 이를 명시하고 프로그래밍을 하게 된다.

    user.save() 즉, 데이터베이스 저장하기 전 암호화 할 수 있는 과정을 만들어준다.

  2. mongoose 함수 중, pre() 함수를 사용한다.

    pre('save', function()) 의 뜻은 유저 스키마에 대해서 save 행동을 하기 전, 무조건 실행 시킬 수 있게 하는 함수이다.

즉, 우리가 원하는 유저 데이터를 서버에 저장하기 직전에, 함수를 실행시켜서 비밀번호를 해쉬값으로 변경 할 수 있다.

코드 중에서 salt라는 라이브러리가 보이는데 어디에 쓰이는 걸까?


Salt란?

임의로 문자열 값을 생성하여(토큰) 해쉬 값으로 지정 해주는 역할을 함.
고냥 단순하게 문자열 생성 해준다는 것.

다음 포스트는 next()에 관해서 설명 하겠습니다.

profile
되돌아보며 성장합니다🔨

0개의 댓글