MVC디자인패턴, ORM

이재진·2020년 12월 8일
0

MVC Design Pattern
소프트웨어 설계와 관련된 디자인 패턴으로, 소프트웨어 공학에서의 "흔히 사용되는" 설계 패턴을 의미한다.
Express(JS) , React의 단방향 데이터 흐름이라던지, Redux의 Flux 패턴 역시 일종의 디자인 패턴이다.

MVC 디자인 패턴과 같이, 코드를 각각 다른 부분으로 나누어 작성해야 하는 이유?
-각 기능 별로 나눠서 한다.프로그래밍을 할 때 하나의 코드베이스에서 모든 것들을 하는 것이 아니라 정돈된, 의도된 코드를 특정 역할에서 할 수 있다는 장점.
-코드 가독성, 관리성, 코드 퀄리티, 협업 등의 모든 것이 나아진다.

Model, View, Controller가 각각 어떤 역할을 하는가?
Model - 데이터의 정보를 가지고 있다. 데이터베이스와 연결이 되어서 데이터를 가지고 올 수 있다. 데이터베이스와 이야기 하고 가지고 있는 데이터로 컨트롤러와 이야기 한다. view와는 이야기 하지 않는다.

view - 유저가 보는 화면을 보여주게 한다. 컨트롤러와만 이야기한다. 데이터를 받아서 단지 그리는 역할에만 충실.

Controller - 뷰에서 일어나는 액션과 이벤트에 대한 인풋값을 모델에게 주기 전에 가공하는 역할. 모델에게서 받은 데이터를 다시 가공해 뷰에게 다시 돌려주는 역할.

router - 특정엔드포인트로 라우팅 분기되면 각 라우터는 라우팅 엔드포인트에 맞는 컨트롤러 함수를 부른다.

MVC 디자인 패턴의 한계

  • 컨트롤러에 의존성이 생길수 있다. 컨트롤러의 사이즈가 비대해진다.

MVC 디자인 패턴 주의점

  • 모델이 컨트롤러를 참조하게 하면 안됨. 컨트롤러가 모델을 바라봐야 한다.

ORM
ORM(Object-relational Mapping)이란 OOP 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법으로 쉽게 말해 객체로 관계형 데이터베이스를 관리하는 기술. 관계형데이터베이스의 세계 ,자바스크립트 객체의 세계 사이의 중계자 , 통역사.

ORM의 필요성
-객체에서의 속성은 데이터베이스의 필드다. 객체지향에서 데이터를 다루는 방법과 관계형 데이터베이스에서의 데이터를 다루는 방법이 다르기 떄문에 만약 ORM을 이용한다면 관계형으로 사고하지 않아도 프로그램의 관점에서 관계형 데이터베이스에 접근 가능.

ORM의 장점
-직관적으로 읽힌다. sql문이 없이도 데이터베이스에 접근가능.

profile
개발블로그

0개의 댓글