tech

DB - ORM(Object-Relational-Mapping)

Siyoon Jeon 2021. 7. 30. 01:38

이틀간 진행되었던 이번 스프린트에서는 mysql을 프로그래밍 언어로 사용해도 데이터베이스와 연결되는 MVC(Model-View-Controller)에 대해서 배웠다. MVC는  UI와 비즈니스 로직, 그리고 모델을 분리하여 개발하는 소프트웨어 공학 패턴 라이브러리이다. 말 그대로 Model / View / Controller 기능별로 나눠지며, 코드의 가족성과 관리성 등 퀄리티가 좋아진다.

MVC(Model-View-Controller)

Model

  • 포함되어야할 데이터가 무엇인지 정의한다.
  • 데이터가 변경되면 View에 알리며, 다른 로직이 필요할 경우 Controller에도 전달한다.

Controller

  • View에서 일어나는 액션과 이벤트에 대한 인풋값을 받아 전달하기 전에 업데이트하며, 가공된 데이터를 모델에 전달한다.
  • 반대의 역할도 수행한다.
  • 해당 로직이 필요없는 단순한 형태라면 업데이트 필요없이 바로 처리할 수 있다.

View

  • 데이터베이스를 사용자에게 보여주는 방식이다.
  • 데이터는 Model로부터 받는다.

 

ORM(Object-Relational-Mapping)

  • 객체와 관계형 데이터베이스의 데이터를 자동으로 연결해주는 것이다.
  • 객체 지향 프로그래밍은 '클래스'를 사용하고, 관계형 데이터베이스는 '테이블'을 사용한다.
  • 이들 모델 간의 불일치가 존재한다.
  • 따라서, ORM을 사용하여 불일치를 해결해준다.

ref.

mvc 이미지 (https://developer.mozilla.org/ko/docs/Glossary/MVC)