안녕하세요 Level-up team 입니다!
오늘은 웹 개발의 기본 MVC 패턴에 대해 알려드리고자 합니다.
MVC 모델이란 무엇일까요?
Model - View - Controller로 소프트웨어 공학에서 사용되는 아키텍처 패턴 중 하나입니다.
MVC 패턴의 주 목적은 Business logic과 Presentation logic을 분리하기 위해서 사용합니다.
화면과 데이터 처리를 분리하여 코드 간의 종속성을 줄이고 구성 요소 간의 역할을 명확하게 하므로써 코드 분리가 쉽고 협업에 용이하다는 장점이 있습니다.
MVC 패턴
사진 출처 : https://www.codeproject.com/Articles/879896/Programming-in-Java-using-the-MVC-Architecture
사진 출처: JSP로 모델1 방식의 회원제 게시판 만들기
웹 애플리케이션은 사용자의 요청을 받아 처리한 후 응답하는 구조입니다. MVC는 모델Model, 뷰View, 컨트롤러Controller의 약자로, 소프트웨어를 개발하는 방법론의 일종입니다. 데이터 처리를 담당하는 모델과 화면 출력을 담당하는 뷰, 그리고 이 둘을 제어하는 컨트롤러가 각자의 역할을 분담하여 사용자의 요청을 처리한 후 결과를 웹 브라우저에 출력하게 됩니다.
모델
- 업무 처리 로직(비즈니스 로직) 혹은 데이터베이스와 관련된 작업을 담당합니다.
뷰
- JSP 페이지와 같이 사용자에게 보여지는 부분을 담당합니다.
- 사용자에게 보이는 UI
컨트롤러
- 모델과 뷰를 제어하는 역할을 합니다.
- 사용자의 요청을 받아서 그 요청을 분석하고, 필요한 업무 처리 로직(모델)을 호출합니다.
- 모델이 결괏값을 반환하면 출력할 뷰(JSP 페이지)를 선택한 후 전달합니다.
- 모델의 데이터를 어떻게 처리할지 결정합니다.
사진 출처: JSP로 모델1 방식의 회원제 게시판 만들기
모델2 방식에서는 사용자의 요청을 컨트롤러인 서블릿이 받습니다.
서블릿은 사용자의 요청을 분석한 후 모델을 호출합니다. 모델로부터 데이터를 받아 뷰로 전달하면 최종적으로 사용자는 요청에 대한 응답을 받을 수 있게 됩니다.
모델, 뷰, 컨트롤러가 각자의 역할을 수행하므로 업무 분담이 명확해지고 코드가 간결해집니다. 자연스럽게 유지보수도 쉬워지죠. 하지만 구조가 복잡하여 익숙하지 않다면 개발 기간이 길어질 수 있어 규모가 작은 프로젝트에서는 적합하지 않을 수도 있습니다.
Spring MVC 실행순서
1) 웹사이트 URL로 접근하여 정보를 요청합니다. (버튼클릭, 글 작성 등)
2) Controller에서 요청 정보를 받고, Service를 호출합니다.
3) Service에서 DAO를 호출하여 DB에 접근합니다.
3-1) mapper안에 정의된 xml 파일에는 요청한 정보를 처리하기 위한 SQL들이 있습니다.
4) Service의 작업이 완료된 후 Service를 호출했던 Controller로 다시 돌아옵니다.
5) Controller는 데이터를 View에 전달합니다.
6) View에서 사용자에게 최종적으로 보여줄 화면을 만듭니다.
출처 : Spring MVC 디렉토리 구조 및 실행순서 (controller, service, dao, view )
'Programming' 카테고리의 다른 글
[C#] .NET Winform 개발환경 구성 (0) | 2023.06.06 |
---|---|
Spring이란? (0) | 2023.05.30 |
[C#] .NET Framework에 대한 이해 (0) | 2023.05.20 |
Springboot&Vue.js 연동 (0) | 2023.05.12 |
Front-End 란? (1) | 2022.09.26 |
댓글