Lv.2에서 만든 (과제)프로젝트의 mongoose를 sequelize로 변경하세요.
지금까지의 모든 과제는 database를 mongodb로 설정해서 진행했다.
이번에는 mongodb가 아니라 mysql을 database로 설정해보자
sequelize란?
sequelize는 ORM(Object Relational Mapping)으로써 Javascript 객체(Object)와 데이터베이스의 관계(Relation)을 연결(Mapping) 해주는 도구다.
쉽게 말하자면 데이터베이스의 테이블과 필드를 js만으로 속성과 명칭 등을 정립시킬 수 있게 해주는 도구다.
sequelize를 사용하기 위해서는 전용 패키지를 다운 받는 등 준비가 필요하다.
먼저 sequelize 라이브러리를 설치한다.
# express, sequelize, mysql2 라이브러리를 설치합니다.
npm install express sequelize mysql2
# sequelize-cli, nodemon 라이브러리를 DevDependency로 설치합니다.
npm install -D sequelize-cli nodemon
# 설치한 sequelize를 초기화 하여, sequelize를 사용할 수 있는 구조를 생성합니다.
npx sequelize init
그리고 aws에서 mysql의 데이터베이스 클러스터를 받아와야 하는데 이것은 하단의 url을 참고하면 된다.
MySQL DB 인스턴스 생성 및 해당 인스턴스에 연결 - Amazon Relational Database Service
SSH 액세스에 0.0.0.0/0을 사용하는 경우 모든 IP 주소가 SSH를 사용하여 퍼블릭 EC2 인스턴스에 액세스할 수 있도록 활성화합니다. 이 방법은 테스트 환경에서 잠시 사용하는 것은 괜찮지만 프로덕션
docs.aws.amazon.com
mysql의 인스턴스를 성공적으로 생성했다면
config.json 파일의 development의 값에서 사용자 명, 비밀번호, 엔드포인트의 설정값을 입력해주면 된다.
1. `username`: MySQL에서 사용하는 **사용자 이름**
2. `password`: MySQL에서 사용하는 **사용자 암호**
3. `database`: Sequelize와 연결할 **DB명** - DB가 존재하지 않다면 `sequelize-cli`를 이용해 생성가능.
4. `host`: Sequelize와 연결할 MySQL의 **엔드포인트(주소)**
5. `dialect`: Sequelize와 연결할 **DB 엔진** - `mysql`, `postgres`, `mariadb`등 다양한 DB를 설정가능.
{ "development":
{ "username": "root", "password": "1234", "database": "express_sequelize_init", "host": "express-database.clx5rpjtu59t.ap-northeast-2.rds.amazonaws.com", "dialect": "mysql" }
sequelize 에는 migrate와 model이 있다.
migration은 Sequelie CLI를 이용해 MySQL에 테이블을 생성하기 위해 사용된다.
model은 특정 Table과 Column의 속성값을 입력하여, MySQL과 Express 프로젝트를 연결 (Mapping)시킨다..
%간단한 sequelize 명령어
- sequelize db:create
- config/config.json에 설정한 database를 생성합니다.
- sequelize db:drop
- config/config.json에 설정한 database를 DROP합니다.
- sequelize model:generate
- migration과 model을 생성합니다.
- 각 Column의 속성을 지정해줄 수 있습니다.
- sequelize db:migrate
- migrations 폴더에 있는 migration 파일을 이용해 MySQL의 테이블을 생성합니다.
'개인과제(로그인,회원가입 및 Mysql)' 카테고리의 다른 글
[내일배움캠프] 주특기 숙련주차 개인과제 lv3 mysql CRUD (0) | 2023.07.16 |
---|---|
[내일배움캠프] 주특기 숙련주차 개인과제 lv2 로그인 회원가입 기능-4- (0) | 2023.07.09 |
[내일배움캠프] 주특기 숙련주차 개인과제 lv2 로그인 회원가입 기능-3- (0) | 2023.06.27 |
[내일배움캠프] 주특기 숙련주차 개인과제 lv2 로그인 회원가입 기능-2- (0) | 2023.06.27 |
[내일배움캠프] 주특기 숙련주차 개인과제 lv2 로그인 회원가입 기능-1- (0) | 2023.06.27 |