모델 2 방식은 흔히 MVC 구조를 응용한 방식이라고 하는데, 핵심은 '화면과 데이터 처리를 분리해서 재사용이 가능하도록 하는 구조'
모델 2 패턴의 이해
- 모델(Model) : 데이터 혹은 데이터를 처리하는 영역
- 뷰(View) : 결과 화면을 만들어 내는데 사용하는 자원
- 컨트롤러(Controller) : 웹의 요청(request)을 처리하는 존재로 뷰와 모델 사이의 중간 통신 역할
모델2 에서 모든 요청은 기본적으로 컨트롤러를 호출 / 컨트롤러는 자신을 호출하는 특정한 URI 경로를 가지고 있으며, 과거에는 주로 호출 시에 마지막 확장자를 *.do 등을 이용하는 방식을 많이 사용
모델 2 방식의 장점
- 개발자와 웹 퍼블리셔의 영역을 분리 가능
- 컨트롤러의 URL을 통해서 뷰를 제어하기 때문에 뷰의 교체나 변경과 같은 유지 보수에 유용
모델2에서 Front Controller 패턴으로
기존 모델 2는 각 컨트롤러 사이의 중복적인 코드의 문제와 개발자의 개발 패턴의 차이 등의 문제로 인해 모델2 방식은 좀 더 강제적인 형태인 Front Controller 방식을 적용하게 됨
프론트 컨트롤러 패턴의 가장 중요한 변화는 전체 로직의 일부만을 컨트롤러가 처리하도록 변경되었다는 점, 전체 로직의 일부를 컨트롤러에게 위임하고 모든 흐름의 제어는 앞쪽의 프론트 컨트롤러가 담당하게 됨
스프링 MVC의 컨트롤러
- 컨트롤러 무엇을 처리하는가
- 파라미터의 수집 : 웹에서 가장 많이 하는 작업, 사용자의 요청에 필요한 데이터를 추출하고 이를 Vo 혹은 DTO로 변환하는 파라미터의 수집 작업, 스프링인 자동으로 해준다.
- 애노테이션을 통한 간편 설정 : 애노테이션 추가 작업을 통해서 요청이나 응답에 필요한 모든 처리를 완료
- 로직의 집중 : 애노테이션으로 하나의 컨트롤러에 여러 메소드를 작성할 수 있음
- 테스트의 편리함 : 스프링은 테스트 모듈을 사용해서 스프링 MVC로 작성된 코드를 WAS의 실행 없이도 테스트 할 수 있는 편리한 방법을 제공
반응형
'Java | spring > Spring' 카테고리의 다른 글
스프링 트랜잭션 @Transactional 개념 (+주요 설정값) (0) | 2021.06.04 |
---|---|
알고는 써야지! 기본 spring annotation 종류 (0) | 2021.05.17 |
스프링 MVC의 주요 구성 요소 (0) | 2021.05.14 |
Spring에서 JDBC가 아닌 MyBatis를 사용하는 이유 (0) | 2019.07.13 |
Spring Mybatis 간단 설명 (0) | 2019.06.13 |
댓글