멋사 부트캠프/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 공통 유틸 기능 전 계층에서 사용 가능