ID: key_26_22_05_25_사전_P2 Created date: 5월 25 2026 월요일

연관 문서


개요

서버 ORM 전략을 확정한다. 결정된 ORM은 DB 설계 기반의 엔티티 구성 및 쿼리 방식 전반에 영향을 미친다.


후보 비교

항목JPA (Spring Data JPA)MyBatisJOOQ
진입 장벽낮음중간높음
복잡 쿼리HQL/Native Query 필요XML/어노테이션 SQL타입-세이프 DSL
유지보수엔티티 중심SQL 파일 분산컴파일 타임 검증
befw 호환befw-lib-core 연동 확인 필요
PostgreSQL JSONB지원 (단, 커스텀 타입 필요)직접 SQL완전 지원

Claude Code 작업 수행서

목표

ORM 결정 후 프로젝트 초기 의존성 및 공통 베이스 엔티티를 구성한다.


작업 지시

CIRA 프로젝트의 ORM을 [JPA / MyBatis / JOOQ 중 결정값] 으로 설정하고
다음 작업을 수행해줘.

[프로젝트 경로]
- C:\workspace\tsh\boilerplate\be\befw\dd\cira

[수행 작업]

1. build.gradle 의존성 추가
   - Spring Data JPA (또는 MyBatis-Spring-Boot-Starter / JOOQ)
   - PostgreSQL JDBC 드라이버
   - Flyway Core + flyway-database-postgresql

2. application.yml 설정
   - datasource (host, port, dbname, user, password — placeholder 처리)
   - jpa.hibernate.ddl-auto: validate  (Flyway가 DDL 관리하므로 validate 고정)
   - flyway 설정 (locations, baseline-on-migrate: false)

3. 공통 BaseEntity 생성
   - 경로: src/main/java/.../common/entity/BaseEntity.java
   - 필드: id (UUID), createdAt, updatedAt, deletedAt
   - JPA 사용 시: @MappedSuperclass + @EntityListeners(AuditingEntityListener)
   - befw-lib-core에 BaseEntity가 이미 존재하면 상속 활용

4. CLAUDE.md "ORM 전략" 섹션 업데이트
   - 선택 ORM 및 이유
   - 쿼리 작성 규칙 (복잡 쿼리 처리 방식)
   - N+1 방지 전략

완료 기준

항목기준
의존성 추가./gradlew dependencies 정상 실행
DB 연결애플리케이션 기동 시 datasource 연결 성공
BaseEntity컴파일 오류 없음
CLAUDE.mdORM 전략 섹션 반영 완료

선행 조건

후행 작업