TIL 21.06.24

Jaemin Jung·2021년 6월 24일
0

Today I Learned

목록 보기
45/62
post-thumbnail

오늘한일

오늘도 역시 멘탈이 탈탈 털렸다.
코드스테이츠는 섹션3에 접어들면서 개념에 대한 가이드라인의 양을 많이 줄여
의도적 불친절을 하고있다.
컨텐츠 의존도를 낮추고 공식문서나 구글링을 통해 스스로 터득하는 습관을 기르게 하는건 좋은데,
그간 코드스테이츠의 컨텐츠를 보며 이해를 해왔던 나는 이러한 학습 방법에서 많이 막히고있다.
오늘은 MVC와 ORM에 대해서 배웠다.

Achievement goals

  • MVC 디자인 패턴과 같이, 코드를 각각 다른 부분으로 나누어 작성해야 하는 이유를 이해할 수 있다.
  • Model, View, Controller가 각각 어떤 역할을 하는지 이해할 수 있다.
  • ORM의 장점을 이해할 수 있다.
  • Sequelize ORM과 관련 CLI 툴들을 공식 문서를 보고 사용할 수 있다.
  • Sequelize를 이용해 모델을 작성할 수 있다.
  • Sequelize를 이용해 마이그레이션을 할 수 있다.

MVC

MVC는 데이터 베이스 디자인 패턴의 한 종류로, model, view, controller의 약자이다.

서비스가 돌아가기 위해서는 여러 데이터 처리가 필요한데, 이러한 처리를 특정 역할에 맞게 각각 분리하여 정돈하고 관리하며,
코드 관리성, 가독성, 코드 퀄리티가 좋아진다.

Model: 애플리케이션 데이터 정보를 정의하며, 가지고있다.
컨트롤러와 연결되어있고 필요한 데이터를 넘겨준다.
필요한 데이터를 넘겨주기 전 데이터베이스에서 데이터를 가져온다.
소통(contorller - model - database)

View: 유저가 보는 화면을 보여주게 하는역할 html css js로 예를 들며,
컨트롤러와 데이터를 주고 받는다.
소통(view - controller)

Controller: 뷰에서 일어나는 액션에 대한 인풋값을 받는다.
인풋값을 가공하고 모델에게 넘긴다. 받은 데이터를 모델에서 가공한다.
소통(view - controller - model)

  1. 사용자가 웹사이트에 접속한다. (Uses)
  2. Controller는 사용자가 요청한 웹페이지를 서비스 하기 위해서 모델을 호출한다. (Manipulates)
  3. 모델은 데이터베이스나 파일과 같은 데이터 소스를 제어한 후에 그 결과를 리턴한다.
  4. Controller는 Model이 리턴한 결과를 View에 반영한다. (Updates)
  5. 데이터가 반영된 VIew는 사용자에게 보여진다. (Sees)

ORM

ORM은 object relational mapping의 약자로,
객체와 관계형 데이터베이스를 잇는다라고 보면 될것같다.
객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터베이스는 테이블을 사용한다.
객체 모델과 관계형 모델간에 불일치가 존재 하는데 이 객체간의 관계를 바탕으로 SQL을 자동 생성하여 불일치를 해결 하는 것이 ORM이다.

객체 class - orm(통역사) - 관계형 데이터베이스

ORM의 장점

  • 길고 긴 sql문장이 훨씬 간결화 된다.(특히 join문)
  • 여러 형태의 데이터베이스에도 적용이 가능하다.
  • 각 객체(model)별로 코드를 작성하여 가독성을 높여준다.

참고 사이트

https://developer.mozilla.org/ko/docs/Glossary/MVC
https://velog.io/@josworks27/Sequelize-migration-%ED%95%98%EA%B8%B0
https://sequelize.org/master/manual/creating-with-associations.html
https://velog.io/@alskt0419/ORM%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C...-iek4f0o3fg

profile
내가 보려고 쓰는 블로그

0개의 댓글