1. MVC(Model View Controller)
- 디자인 패턴 중 하나인 MVC 패턴은 Model, View, Controller의 줄임말로, 애플리케이션을 구성할 때 그 구성 요소를 세 가지 모듈로 구분한 패턴을 의미함
- 사용자 인터페이스로부터 비즈니스 로직을 분하여 서로 영향 없이 쉽게 고칠 수 있는 설계가 가능
1) 컨트롤러
- Model과 View 사이에서 브릿지 역할을 수행
- 앱의 사용자로부터 입력에 대한 응답으로 모델 및 뷰를 업데이트하는 로직 포함
- 사용자의 요청은 모두 컨트롤러를 통해 진행되어야 함
- 컨토롤러로 들어온 요청은 어떻게 처리할지 결정하여 모델로 요청을 전달함
2) 모델
- 데이터를 처리하는 영역
- 모든 데이터 정보를 가공해 가지고 있는 컴포넌트
- 변경이 일어나면 처리 방법을 구현해야 함
- 데이터베이스와 연동을 위한 DAO와 데이터 구조를 표현하는 DO로 구성됨
-> springboot mvc 패턴에서 Service, ServiceImpl, Mapper로 분리해서 구현함
3) 뷰
- 시각적인 UI 요소를 지칭하는 용어
- Model이 가지고 있는 데이터를 저장하면 안 됨
- Model이나 Controller에 대한 정보를 알면 안 되며, 단순히 표시해 주는 역할을 가지고 있음
2. MVC 패턴의 특징
- 애플리케이션의 역할을 세 구간으로 나누어 설계함으로써 서로 간의 의존성이 낮아짐
- 각 영역이 독립적으로 구성되어 개발자 간 분업 및 협업이 원활해짐
- 한 영역을 업데이트하더라도 다른 곳에 영향을 주지 않음
3. Spring MVC의 일반적인 구조
1) Controller
- 사용자의 요청을 처리하고 이에 대한 응답을 제공
- 사용자 입력을 수신하고 요청을 처리하기 위해 적절한 서비스 메서드를 호출함
- 컨트롤러는 Spring bean으로 구현되며, @Controller 어노테이션을 추가
2) Service
- 애플리케이션의 비즈니스 로직을 구현함
- 컨트롤러와 통신하여 사용자의 요청을 처리하고, 해당 요청을 이행하기 위해 모델에 대한 작업 수행
- 일반적으로 인터페이스를 사용하여 구현됨
3) ServiceImpl
- 서비스 인터페이스의 구현부
4) DAO
- 애플리케이션과 데이터베이스 간의 인터페이스 제공
- 데이터베이스 상호작용을 처리하고 데이터에 필요한 CRUD 작업 구현
5) DB
- 애플리케이션의 데이터를 저장
- 일반적으로 MySQL 또는 PostgreSQL과 같은 관계형 데이터베이스 관리 시스템을 사용해 구현
'Spring' 카테고리의 다른 글
[Spring] Lombok 라이브러리 (0) | 2023.04.06 |
---|---|
[Spring] Swagger 라이브러리 (0) | 2023.04.06 |
[SpringBoot] REST API란? (0) | 2023.04.05 |
[Spring] 싱글톤 패턴 (0) | 2023.04.04 |
[Spring] 빌드 관리 도구 (0) | 2023.04.04 |
댓글