본문 바로가기
Spring

MVC Pattern 노트

by SuldenLion 2022. 10. 29.
반응형

MVC Pattern (Model View Controller)

디자인 패턴 중 하나인 MVC Pattern은 어플리케이션을 구성할 때 그 구성요소를 세가지의 역할(Model, View, Controller)로 구분한 패턴을 의미함. 사용자 인터페이스로부터 비즈니스 로직을 분리하여 서로 영향 없이 쉽게 고칠 수 있는 설계가 가능함.

 

Model -> (updates) -> View

View -> (sends input from user) -> Controller

Controller -> (Sometimes updates directly) -> View

Controller -> (Manipulates) -> Model

 

▷ 컨트롤러 (Controller)

모델(Model)과 뷰(View) 사이에서 브릿지 역할을 수행. 앱의 사용자로부터 입력에 대한 응답으로 모델 및 뷰를 업데이트 하는 로직을 포함. 사용자의 요청은 모두 컨트롤러를 통해 진행되어야 함. 컨트롤러로 들어온 요청은 어떻게 처리할지 결정하여 모델로 요청을 전달함. ex) 쇼핑몰에서 상품을 검색하면 그 키워드를 컨트롤러가 받아 모델과 뷰에 적절하게 입력을 처리하여 전달함.

모델 (Model)

데이터를 처리하는 영역. 데이터베이스와 연동을 위한 DAO(Data Access Object)와 데이터의 구조를 표현하는 DO(Data Object)로 구성됨. ex) 검색을 위한 키워드가 넘어오면 데이터베이스에서 관련된 상품의 데이터를 받아 뷰에 전달.

뷰 (View)

데이터를 보여주는 화면 자체의 영역을 뜻함. 사용자 인터페이스(UI) 요소들이 여기에 포함되며, 데이터를 각 요소에 배치함. 뷰에서는 별도의 데이터를 보관하지 않음. ex) 검색 결과를 보여주기 위해 모델에서 결과 상품 리스트 데이터를 받음.

 

MVC 패턴의 특징

어플리케이션의 역할을 세 구간으로 나누어 설계함으로써 서로간의 의존성이 낮아짐. 각 영역이 독립적으로 구성되어 개발자 간 분업 및 협업이 원활해짐. 한 영역을 업데이트 하더라도 다른 곳에 영향을 주지 않음. / 요청사항들이 많아질수록 혹은 많은 업데이트로 기능들이 많아지면 컨트롤러의 역할이 너무 많아질 수 있음. 

 

@RestController :

Spring Framework 4 버전부터 사용가능한 annotation. @Controller와 @ResponseBody가 결합된 어노테이션임. 컨트롤러 클래스 하위 메소드에 @ResponseBody 어노테이션을 붙이지 않아도 문자열과 JSON 등을 전송할 수 있음. View를 거치지 않고 Http ResponseBody에 직접 Return 값을 담아 보내게 됨.

 

@RequestMapping

MVC의 핸들러 매핑(Handler Mapping)을 위해서 DefaultAnnotationHandlerMapping을 사용. DefaultAnnotationHandlerMapping 매핑 정보로 @RequestMapping 어노테이션을 활용. 클래스와 메소드의 RequestMapping을 통해 URL을 매핑하여 경로를 설정하여 해당 메소드에서 처리

value : url 설정

method : GET, POST, DELETE, PUT, PATCH 등

반응형

'Spring' 카테고리의 다른 글

POST, PUT, DELETE API + Swagger 라이브러리 노트  (0) 2022.10.31
Get API 만드는 방법 노트  (0) 2022.10.30
Maven - pom.xml 파일 노트  (0) 2022.10.28
REST API 노트  (0) 2022.10.27
Maven & Gradle 노트  (0) 2022.10.26

댓글