[Codestates] 2021. 7. 28~29
[데이터베이스] ORM
- MVC 디자인 패턴과 같이, 코드를 각각 다른 부분으로 나누어 작성해야 하는 이유를 이해할 수 있다.
- MVC : model-view-controller 의 약자, 각각의 기능이 따로 설정되어 운영
- 코드 가독성, 관리성, 퀄리티가 더 좋아지기 때문에 사용한다.
- Model, View, Controller가 각각 어떤 역할을 하는지 이해할 수 있다.
- Model :
Database 와 대화한다, data를 controller 에게 전달한다, view 와 직접 대화하진 않는다, data와 관련된 영역
- View :
유저가 보는 화면, controller와만 대화한다
- Controller :
view 와 Model 사이를 연결해주는 영역, 서로가 알아들을 수 있는 언어, 코드, 형태로 가공하여 전달한다.
- ORM의 장점을 이해할 수 있다.
- ORM : Object-Relational Mapping의 약자, 관계형 DB를 객체를 다루듯이 사용할 수 있게 만들어준다.
- 장점 :
- 접근 방법을 프로그래밍 언어에 맞춰 사용할 수 있기 때문에, 더 쉽게 관계형 DB를 사용할 수 있다.
- SQL문을 사용하지 않기 때문에 가독성이 좋아진다.
- Sequelize ORM과 관련 CLI 툴들을 공식 문서를 보고 사용할 수 있다.
- Sequelize를 이용해 모델을 작성할 수 있다.
프로젝트 부트스트링 npx sequelize-cli init 을 진행하면 자동으로 구성파일이 생성된다.
npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string 으로 모델 생성
- Sequelize를 이용해 마이그레이션을 할 수 있다.
npx sequelize-cli db:migrate 으로 마이그레이션 실행
- 마이그레이션의 개념과 필요성을 이해할 수 있다.
- 스키마 변경에 따른 데이터 이주(migration)를 뜻함. 이는 데이터를 선택, 준비, 추출 및 변환하여 한 컴퓨터 저장 시스템에서 다른 컴퓨터 저장 시스템으로 영구적으로 전송하는 프로세스를 뜻함.
- 스키마 변경에 대한 기록을 위해 필요함
- Sequelize ORM으로 1:1. 1:N, N:N 관계를 표현할 수 있다.
- (Advanced) MVC 디자인 패턴의 한계를 이해할 수 있다.