🧩 MVC 패턴 (Model-View-Controller)
1) 정의
- 소프트웨어 공학에서 사용되는 디자인 패턴 중 하나
- 비즈니스 로직, 사용자 인터페이스, 데이터 처리를 분리하여 개발 효율성과 유지보수성을 높임
2) 목적
- 프로그램을 깔끔하고 효율적으로 설계하기 위한 구조
- 역할 분리를 통해 협업과 유지보수에 유리
3) 종류
(1) MVC1
- 구조:
Controller · View ↔ Model (JSP가 모든 역할을 수행)
- 특징:
- JSP 파일에서 HTML과 Java 코드를 함께 작성
- 빠른 개발 가능
- 단점:
(2) MVC2
- 구조:
View ↔ Controller ↔ Model
- 특징:
- View는 HTML, JSP 등으로 UI만 담당
- Controller는 요청 처리 및 흐름 제어 담당
- 장점:
- 단점:
(3) MVC2 + 3-Tier 구조
- 구조:
View ↔ Controller ↔ Service ↔ Model
- 특징:
- Spring MVC에서 사용하는 구조
- Controller의 제어 로직과 비즈니스 로직(Service) 분리
- 장점:
- 관점 지향 프로그래밍(AOP)에 적합
- 유지보수성과 확장성 향상
- 단점:
4) 구역 · Layer
(1) View
- 역할: 사용자에게 보여지는 UI 영역
- 기술:
HTML, CSS, JavaScript, JSP, Thymeleaf, Mustache, React 등
(2) Controller
- 어노테이션:
@Controller, @RestController
- 역할:
- HTTP 요청/응답 처리
- 매개변수 바인딩 및 반환 타입 처리
- 유효성 검사, 예외 처리 등
- 주의:
- ❗ Controller는 다른 Controller를 호출하지 않음
(3) Service
- 어노테이션:
@Service
- 역할:
- 비즈니스 로직 처리
- 예: CRUD, 데이터 검증, 연산, 알고리즘, 트랜잭션, 임시 비밀번호 생성 등
- 특징:
(4) Repository
- 어노테이션:
@Repository
- 역할:
- 데이터베이스 접근 및 조작
- Entity 조작, SQL 실행
- 기술:
DAO, JPA, MyBatis 등