[Spring] Controller

·2022년 10월 19일

Spring

목록 보기
2/4

MVC


Model - View - Controller 구성을 갖는 디자인 패턴으로, 많은 웹 어플리케이션에 사용되고 있는 디자인 패턴이다.

MVC 패턴은 어떻게 수행될까?

웹에서 특정 URL로 접속하여 리퀘스트가 들어오면 우선 컨트롤러 단에서 처리를 시작한다.
컨트롤러는 리퀘스트에 따라 Model을 업데이트하는 등의 처리를 한 뒤, 매핑된 View를 로드한다.
뷰 단에서는 업데이트된 모델을 처리하여 사용자에게 나타내게 된다.

이런 MVC 패턴의 웹 어플리케이션 프로그램 작성에서 컨트롤러는 어떻게 작성되고, 어떤 식으로 프로세스가 진행되는지 살펴보자.

Controller


컨트롤러는 브라우저에서 URL로 페이지를 요청할 때 URL을 매핑하고, 메소드를 연결해 주는 역할을 한다. 모델을 통해 받는 데이터 처리를 수행하고, 결과 값을 뷰에 반환하여 모델과 뷰 사이를 연결하는 다리 역할이 된다.

간단한 컨트롤러의 작성법을 살펴보자.

@RestController
public class YeonContoller {
    @RequestMapping("/yeon")
    public void requiredMethod() {
        ...
    }
}

RestController 어노테이션을 이용해 컨트롤러를 설정할 수 있다.
어노테이션은 Controller를 사용할 수도 있으나, 그렇게 작성할 경우 메서드에 RequestMapping과 함께 ResponceBody 어노테이션을 추가해 주어야 한다.

컨트롤러는 URL 매핑 시 요구되는 데이터를 URL 혹은 뷰 단에서 가져와 Service 단에서 지정된 데이터 처리를 수행한다. Model로 데이터를 받아온 뒤 다시 뷰 단으로 보내어 사용자에게 UI 화면을 출력해 보여주게 된다.

컨트롤러는 URL 리퀘스트와 메소드를 매핑하는 것을 목적으로 한다. 컨트롤러에 비즈니스 로직까지 전부 구현할 수는 있으나, 유지보수와 가독성을 위해 컨트롤러 단에는 비즈니스 로직을 구성하는 것을 피하고, Service 단으로 넘겨 작성하는 것이 좋다.


이 글은 점프 투 스프링부트를 스터디한 기록입니다.

참고한 페이지
MVC, MVP, MVVM 등 아키텍쳐에 대하여...

0개의 댓글