멋사 부트캠프/JDBC
001. JDBC - MVC 패턴 설계
cTosMaster
2025. 4. 8. 17:42
1. MVC 패턴 구조도
com.person
┣ controller
┃ ┗ PersonController.java ← 클라이언트 요청 처리
┣ service
┃ ┗ PersonService.java ← 비즈니스 로직 처리
┣ dao (= repository)
┃ ┗ PersonDao.java ← DB 접근, 쿼리 실행
┣ model (Entity)
┃ ┗ Person.java ← Entity: DB 테이블과 매핑되는 순수 객체
┣ dto
┃ ┗ PersonDto.java ← DTO: Controller ↔ Service 간 데이터 전달용 객체
┗ config
┗ DatabaseConfig.java ← DB 설정 관련 클래스 (선택 사항)
작성 순서)
MyPersonApp/src
/com.person.controller.PersonController --[7]
com.person.dao.PersonDao (Interface) --[4]
.PersonDaoSample (Class)
com.person.model.Person --[3]
com.person.service.PersonService --[5]
.PersonServiceSample
com.person.view.PersonConsoleView --[6]
common.JDBCTemplate --[2]
db.properties --[1]
/lib/mysql-connector-j-9.2.0.jar
2. 트랜잭션 처리 흐름도
1) UserController
→ HTTP 요청 수신 (@PostMapping) → UserRequestDTO 받음
2) UserService
→ 비즈니스 로직 처리 → DTO → Entity 변환 → 트랜잭션 처리
3) UserRepository
→ save()로 DB 저장 (extends JpaRepository)
4) UserService
→ 저장 결과 가공 (ex. VO 또는 ResponseDTO 반환)
5) UserController
→ HTTP 응답 반환
3. 각 구성요소와 관계 정리
구성요소 | 역할 | 다른 계층과 관계 |
Controller | HTTP 요청/응답 처리 | DTO로 Service 호출 |
Service | 비즈니스 로직, 트랜잭션 처리 | Entity를 조작하고 Repository 호출 |
Repository | Entity를 DB에 저장/조회 (JPA DAO 계층) | JPA 인터페이스로 DB와 직접 통신 |
Entity | DB 테이블과 매핑되는 도메인 모델 | JPA와 함께 동작 |
DTO | 계층 간 데이터 전달(cont - service, service- Repo...) | 단방향 매핑 용도 |
VO | 응답 구조 정의, 결과 표현 (불변) | Controller → View 또는 Response |
Util | 공통 유틸 기능 | 전 계층에서 사용 가능 |