[TIL] Sequelize

김시원·2023년 4월 20일
0

TIL

목록 보기
8/50

TIL

takeaway

1. Sequelize를 이용한 개발 순서

1. `npm init -y`
2. library installation
3. devDependency library installation
4. sequelize initialization: `npx sequelize init`
5. config.json: change "developments"
6. define sequelize model: `npx sequelize model:generate --name TableName --attributes name:type`
7. create sequelize db: `npx sequelize db:create`
8. Set migrations/\*.js
9. migration: `npx sequelize db:migrate`
	1. migrations에서 무언가 바뀌면 항상 `db:migrate:undo` -> `db:migrate` 해주어야함
10. Set models/\*.js
11. MySQL VSCode extension으로 DB를 확인할 수 있다.

2. Sync() 사용 - model만으로 db를 만들면 안되는 이유

  1. 만약 model만을 사용해 테이블 설계를 하면
    1) sequelize의 model 설계가 변경될 경우 현재 서비스 중인 테이블을 DROP 후 CREATE 해야함 => 기존 테이블의 데이터들이 다 날아간다
    2) MySQL 테이블이 Node.js application에 의존적이 된다. -> sequelize.sync() 명령어가 수행되어야만 MySQL의 테이블을 구현할 수 있기 때문에 현재 DB의 상황을 인지하기 힘들어서 MySQL에 직접 등록한 부가적인 기능들을 이해하기 어렵고, MySQL의 view, index, scheduler, trigger와 같은 기능들을 작업하기 힘들다.
    => 안정성과 개발 편의성을 위해 migration을 이용하는 것이 customize하기도 좋고 CLI로서 테이블을 구현할 수 있어서 좋다.

3. 기타

  1. GET 방식은 URI에 데이터를 붙여서 보내는 것이라 그 데이터가 그대로 노출되기 때문에가급적이면 body에 데이터가 안보이는 POST 방식을 쓰는것을 권장한다.

  2. URL vs URI

  3. RDBMS MySQL 노트 정리

  4. Sequelize 노트 정리

0개의 댓글