23.2 User 스키마/모델 만들기
User 스키마와 모델을 작성하여 사용자의 정보를 MongoDB에 담고 조회해 봅시다. 앞으로 만들 사용자 스키마에는 사용자 계정명과 비밀번호가 필요합니다.
비밀번호를 데이터베이스에 저장할 때 플레인(아무런 가공도 하지 않은) 텍스트로 저장하면 보안상 매우 위험합니다. 따라서 단방향 해싱 함수를 지원해 주는 bcrypt라는 라이브러리를 사용하여 비밀번호를 안전하게 저장하겠습니다.
우선 models 디렉터리에 user.js 파일을 생성하세요. 그리고 다음 스키마를 작성하세요.
src/models/user.js
import mongoose, { Schema } from 'mongoose'; const UserSchema = new Schema({ username: String, hashedPassword: String, }); const User = mongoose.model('User', UserSchema); export default User;
다음으로 해시를 만드는 함수와 해시를 검증하는 함수를 만들어 보겠습니다. 먼저 bcrypt를 설치해 주세요.
$ yarn add bcrypt