MVC 패턴, Spring MVC 모듈

DevHwan·2023년 4월 7일
0
post-thumbnail

MVC패턴도 알고 있고, MVC 모듈도 사용해봤다. 그러나 MVC 패턴이 뭐야! MVC 모듈에 대해 설명해봐! 하면 그건 좀..

그래서 확실히 정리해보고자 한다.

MVC 패턴에 대해

MVC는 일단 Model-View-Controller의 약자다.

애플리케이션의 구성요소를 세 가지 역할로 분리하는 패턴으로, 사용자 인터페이스를 다루는 데 적합하다.

Model

애플리케이션의 상태와 데이터를 관리하는 부분이다. 즉, 데이터베이스에서 데이터를 가져와서 가공하거나 변경된 데이터를 저장하는 역할을 한다.

DTO는 그럼?

서버에서 사용하는 DTO ( Data Transfer Object )는 그럼 Model에 포함되는 개념일까?

우선 DTO는 단순히 서버와 클라이언트가 데이터를 주고 받을 때, 사용되는 데이터 전송을 위한 객체이다. 따라서 DTO에는 일반적으로 비즈니스 로직이나 데이터베이스 관련 로직을 담지 않고, 단순히 데이터를 담는 목적으로 사용된다.

그러나 Model의 경우 상태와 데이터를 관리할 뿐 아니라, 가공하거나 변경하기도 한다.

→ 즉 비즈니스 로직을 담고 있는 객체이다.

그렇다면 ORM에서 사용되는 Entity는 Model로 볼 수 있는가? → 맞다. Entity는 Model의 일종이다. 완전히 일치하지는 않을 수 있지만 쉽게 생각하려면 Entity를 떠올리면 편할 것이다.

View

사용자 인터페이스를 담당하는 부분이다. Model이 가지고 있는 데이터를 이용해 화면에 출력하고, 사용자 입력을 받아 컨트롤러에 전달한다. → 진짜 화면이라고 생각하면 편함

Controller

Model과 View를 연결해주는 부분으로, 사용자 입력을 처리하고 Model의 데이터를 변경할 수 있다. 사용자의 입력에 따라 Model이 업데이트될 수 있고, 그에 따라 View를 갱신할 수 있다. → 위의 이미지를 보면 이해가 쉽다.

정리

MVC 패턴에서의 핵심은 세 역할이 각각 독립적으로 존재하여, 서로에게 영향을 주지 않는다. 이를 통해 코드 재사용성과 유지 보수성을 높일 수 있다. ( 서로에게 영향을 주지 않는다는 말이 Controller가 View를 갱신하지 않는다는 뜻이 아니라 각자의 코드 구현이 무관하다 라는 의미 )

Spring MVC는 뭔데

Spring MVC는 Spring 프레임워크의 대표적인 모듈이다. 바로 위의 MVC 디자인 패턴을 Java 코드로 구현한 모듈이 되겠다. 이를 이용해서 애플리케이션을 보다 체계적이고 확장 가능한 방식으로 설계 가능하다. 아래의 아키텍처가 가장 쉽게 이해가 된다.

구성요소가 정말 많다. 그래서 아주 강력한 모듈 중 하나인 것 같다. 여기서 구성요소를 다 설명하게 되면 너무 길어져서 다음 글로..

  • 사진 자료

https://ko.wikipedia.org/wiki/모델-뷰-컨트롤러
https://terasolunaorg.github.io/guideline/1.0.1.RELEASE/en/Overview/SpringMVCOverview.html

profile
달리기 시작한 치타

0개의 댓글