MVC는 Model, View Controller 구조를 구현하는 소프트웨어 디자인 패턴이다.
database와 연결되며 테이블을 초기화한다.
controller로부터 넘어온 데이터를 가공하여 사용자가 볼 수 있도록 화면에 출력한다.
사용자가 접근한 URL에 따라 요청 사항을 파악하고 model로부터 온 데이터를 가공하여 view로 전달한다.
view와 controller의 경계선이 모호해질 가능성이 있다. view의 역할을 controller에서 담당하게 될 여지가 크다.
객체 관계 매핑. 데이터베이스와 객체를 연결해주는 프로그래밍 기법
Object <-- ORM --> Database
ORM을 사용하면 SQL 종류마다 사소하게 다른 문법에 개의치 않아도 된다. 알아서 적용해준다.
스키마의 변경 사항을 관리하기 위한 버전 제어 시스템
보통 자동 생성되며 sequelize-cli
로 generate하거나 혹은 skeleton 파일을 생성할 수 있다. 그리고 실행하여 database에 변경 사항을 적용할 수 있다.
npx sequelize-cli init
npx sequelize-cli model:generate --name <ModelName> --attributes <FieldName>:<Type>
npx sequelize-cli db::migrate
데이터베이스에 테이블이 생성되고 변경 사항이 적용된다.
npx sequelize-cli migration:generate --name <SkeletonName>
모델에 변경 사항이 있을 때 skeleton 파일을 생성한 뒤 직접 변경해야 한다.
bit.ly처럼 단축 URL을 통해 웹 사이트에 접근할 수 있도록 구현한다.
이번 스프린트는 MVC 모델에 관해서 살펴보고 javascript 객체와 database를 연결해주는 ORM중 하나인 sequelize를 학습했다. 정말... 공식 문서 넘너무너무 많다.... 그래도 내게 큰 도움을 주는 친구니까... 친해져야 한다. 거기다 레퍼런스 친구도 있다. 관계는 얇지만 수없이 많다. 어려운 친구지만 역시 친해져야 한다. 후...
다른 분들 블로그 보니까 다들 정리도 깔끔하게 하고 필력도 좋으시다. 나는 누가 본다는 생각을 하면 글이 안 써져서 그냥 일기처럼 작성하는거라 완전히 나 위주로 작성되어 있어 남이 보기에는 좋지 않은 글이다... ㅎㅎ 이렇기에 내 글을 봐주시는 분들께는 진심으로 감사하다고 말하고 싶다. 더 잘 작성하고 싶은 마음은 있어서 비공개로 해두고 틈날 때마다 정리도 해보려고 했지만... 그냥 꾸준히 작성하는 거에 더 의의를 두려고 한다. 코드를 작성하면서 README.md에 기록해 두는 것으로 만족하려고 한다!