80일차 - MVC, ORM

김민찬·2021년 7월 28일
0

취업으로의 여정

목록 보기
81/196
post-thumbnail

MVC

MVC는 Model-View-Controller의 약자로 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이다.
출처: MDN - MVC

관심사 분리를 통해 더 나은 업무의 분리와 유지보수를 편하게 만들어 준다.

  1. 모델: 데이터와 비즈니스 로직을 관리한다.
  2. 뷰: 레이아웃과 화면을 처리한다.
  3. 컨트롤러: 명령을 모델과 뷰 부분으로 라우팅한다.

아래 그림과 같이 표현할 수 있다.
출처: ResearchGate

사용자가 Viesw를 보면서 Controller를 통해 동작을 하면 Controller는 Model을 조정한다. 그러면 Model이 View를 업데이트 해서 사용자가 화면 이동, 검색결과 출력 등의 사용자 경험을 할 수 있는 것이다.
그림과 같이 사용자는 Model에 직접접근하지 않는다.

ORM

ORM(Object-Relational Mapping)을 단순하게 표현하면 객체와 관계와의 설정이라고 할 수 있다.
ORM에서 말한는 객체(Object)의 의미는 우리가 흔히 알고 있는 OOP(Object_Oriented Programming)의 그 객체를 의미한다는 것을 쉽게 유추할 수 있다.
관계라는 것은 개발자가 흔히 사용하고 있는 관계형 데이터 베이스를 의미한다.
출처: Incodom - ORM

ORM을 그림으로 표현하면 아래와 같다.
출처: JavaByDeveloper - ORM

대표적인 장점과 단점을 말해보자면

장점

  • 객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 집중할 수 있게 도와준다.
  • 재사용 및 유지보수의 편리성이 증가한다 (객체의 특징을 생각해보면 이해할 수 있다).
  • DBMS에 대한 종속성이 줄어든다.

단점

  • 완벽한 ORM으로만 서비스를 구현하기가 어렵다.
  • 프로시저가 많은 시스템에선 ORM의 객체 지향적인 장점을 활용하기 어렵다.
profile
두려움 없이

0개의 댓글