
1. MVC2 구성요소
Controller (컨트롤러)
사용자의 요청을 처리하고 비즈니스 로직과 View 간의 흐름을 제어하는 역할.
- Front Controller:
- 중앙집중식 요청 처리.
- Servlet 사용, Spring에서는
DispatcherServlet이 Front Controller로 동작.
- 모든 요청을 받아서 적절한 Back Controller로 전달.
- Back Controller:
- 사용자 요청에 따라 세부 작업을 처리.
- Spring에서는
@Controller 또는 @RestController로 구현.
- 주요 기능:
- URL 처리:
@RequestMapping 또는 @GetMapping, @PostMapping 등 사용.
Model (모델)
애플리케이션의 비즈니스 로직과 데이터 처리를 담당.
- @Service:
- 비즈니스 로직 담당.
- 여러 DAO(Repository) 또는 외부 API를 호출해 데이터를 가공.
- @Repository:
- 데이터베이스와의 직접적인 통신 담당.
- DAO(Data Access Object) 역할 수행.
- 데이터 조회/저장을 위한 SQL 실행.
View (뷰)
사용자에게 보여지는 화면.
- HTML 출력 (디자인 포함):
- JSP, Thymeleaf, Mustache 등 템플릿 엔진 사용.
- XML/JSON 데이터 출력:
- RESTful 서비스를 통해 클라이언트에게 데이터 전달.
- 주로 API 형태로 활용되며 Spring에서는
@RestController와 ResponseEntity로 구현.
- 예: 영화진흥위원회의 영화 데이터 API 등.
2. 데이터베이스 연동 방식
① DataSource 사용
- 데이터베이스 연결을 위한 기본적인 방식.
- JDBC를 기반으로 Connection Pool 등을 활용.
② JdbcTemplate
- Spring의 JDBC 모듈로 제공.
- 장점:
- SQL 구문 작성은 직접 하지만, 반복 코드를 제거하고 객체 매핑을 지원.
③ MyBatis
- 객체와 SQL을 매핑하는 퍼시스턴스 프레임워크.
- 특징:
- SQL 작성의 자유도를 보장하면서도 객체-데이터베이스 매핑(ORM) 기능 제공.
- XML이나 어노테이션을 통해 SQL 정의.
정리된 역할별 흐름
- Controller:
- 사용자 요청 수신 및 흐름 제어.
- 요청에 따라 Model 호출 및 View 반환.
- Model:
- 비즈니스 로직 수행 (
@Service).
- 데이터 처리 및 데이터베이스 연동 (
@Repository).
- View: