더북(TheBook)

JS 파일이므로 dotenv 모듈을 사용할 수 있습니다. 예제에서는 password만 process.env로 바꾸었지만, 보안 정도에 따라 나머지 정보도 process.env로 바꿔도 됩니다. 특히 root 계정은 숨기는 게 좋습니다.

process.env가 development일 때는 development 속성의 설정 내용이 적용되고, production일 때는 production 속성의 설정 내용이 적용됩니다. 실무에서는 개발용 데이터베이스와 배포용 데이터베이스를 구별하기도 하므로 이렇게 구분하는 것이 유용합니다.

현재 쿼리를 수행할 때마다 콘솔에 SQL문이 노출됩니다. 배포 환경에서는 어떤 쿼리가 수행되는지 숨기는 것이 좋습니다. 따라서 production일 경우에는 logging에 false를 주어 쿼리 명령어를 숨겼습니다.

데이터베이스 비밀번호는 .env 파일에 입력합니다.

.env

COOKIE_SECRET=nodebirdsecret
KAKAO_ID=c7a191568b2209e54a0cabe514fcbabf
SEQUELIZE_PASSWORD=데이터베이스 비밀번호

 

배포 환경에서 데이터베이스에 한글이 저장되지 않는 문제가 발생할 수도 있습니다. 따라서 models 폴더 아래의 hashtag.js, post.js, user.js에 다음 부분을 추가합니다.

models/hashtag.js, models/post.js, models/user.js

module.exports = (sequelize, DataTypes) => (
  ...
  }, {
    timestamps: true,
    paranoid: true,
    charset:'utf8',
    collate:'utf8_general_ci',
  })
);

 

데이터베이스 문자열을 UTF8(한글 지원)로 설정하겠다는 뜻입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.