개발 일기
모델 2방식과 Spring MVC란? 본문
안녕하세요.
오늘은 Spring의 시작이되는 MVC 모델 2 방식 구조에 대해 포스팅해보겠습니다.
1. MVC란?
- Model: 데이터 혹은 데이터를 처리하는 영역 (dao, mybatis 등)
- View: 데이터를 실질적으로 화면에 보여주기 위해 사용하는 영역 (jsp 등)
- Controller: 클라이언트의 요청(request)을 처리, Model과 View의 중간 통신 역할
간단히 그림으로 표현하면 아래와 같습니다.
- 요청이 들어오면 컨트롤러를 거쳐서 Model과 데이터를 설정&주고받고 컨트롤러에 정의된 경로에 맞춰 View로 전달
2. MVC / 모델 2 방식을 사용하는 이유는?
- 화면과 데이터 처리를 분리하여 재사용이 가능하도록 하는 구조를 만들기 위해 사용
- 개발자와 웹 퍼블리셔의 영역을 분리
- Controller의 URI를 통해서 View를 제어하기 때문에, 뷰의 교체나 변경 시 유용하게 사용
3. 모델 2 에서 Front Controller 패턴으로
- 모델 2방식이 개발자와 웹 퍼블리셔 간의 분업까진 성공 했으나, 각 컨트롤러들 사이의 중복 코드와
개발자들 각자의 패턴 차이등의 문제로 모델 2방식은 Front Controller 방식을 적용하게 됩니다.
- 기존 모델 2와의 차이점: 전체 로직의 일부를 컨트롤러에게 위임하고
모든 흐름의 제어는 앞 쪽의 FrontController가 담당, FrontController로 인해 좀 더 규격화된 코드 작성 가능
즉, 최종적으로 정리를 해보자면
1. FrontController에서 사용자 요청을 최초로 받고
2. 적절한 Controller를 호출하고
3. 호출받은 Controller는 해당 요청을 처리 할 수 있는 Service를 찾고
4. 해당 Service는 데이터베이스 작업을 담당하는 DAO를 통해 요청된 작업을 수행
5. 작업 완료 후 처리된 데이터를 Controller에 전달하면
6. Controller는 다시 MVC쪽으로 데이터를 전달하여 해당 View에 뿌려진다.
오늘은 자바로 개발을 하는 경우 가장 많이 사용되는 스프링 MVC패턴에 대해 공부해보았습니다.
감사합니다.
'Spring' 카테고리의 다른 글
springMVC설정 순서 정리! (feat. application-config.xml와 mvc-config.xml 비교) (0) | 2021.10.06 |
---|---|
web.xml 이란?? (feat. 기본 설정 해보기) (0) | 2021.10.04 |
DI(Dependency Injection) 의존성 주입에 대해 알아보자! (1) | 2021.09.29 |
스프링 프레임워크(Spring Framework)의 주요 기능 및 특징 (0) | 2021.09.28 |
Spring 설치하는 방법 (feat. Spring의 시작!) (0) | 2021.09.01 |