피드로 돌아가기
Adding the anime side without holding my breath
Dev.toDev.to
Backend

Validate-DryRun-Apply 파이프라인을 통한 Zero-Write 엔티티 확장 설계

Adding the anime side without holding my breath

Anthony Viard2026년 5월 27일4intermediate

Context

라이브 프로젝트의 기존 데이터 모델을 유지하며 Anime, Season, Episode 등 신규 Entity를 확장해야 하는 상황. JHipster 9의 --dry-run 플래그가 실제 파일을 생성하는 사이드 이펙트로 인해 모델 훼손 및 데이터 유실 위험이 존재하는 한계점 직면.

Technical Solution

  • jhipster://project/entities 리소스를 통한 현재 모델의 실시간 런타임 읽기로 기존 Field 재정의 및 삭제 방지
  • 임시 디렉토리 기반의 Sandbox 환경 구축을 통해 실제 프로젝트 경로에 쓰기 작업이 전혀 없는 완전한 Dry Run 구현
  • validate_jdl 도구의 Local Linting을 통한 JDL 문법 검증과 임시 생성 프로세스를 결합한 사전 유효성 검사 체계 도입
  • 개별 엔티티 추가 대신 단일 import_jdl 호출을 통한 원자적(Atomic) 배치 업데이트로 정합성 유지 및 변경 이력 단순화
  • Franchise 엔티티와 신규 엔티티 간의 OneToMany 관계 설정을 통한 도메인 모델의 계층적 확장 구조 설계

1. 자동 생성 도구의 Dry Run 플래그가 실제 파일 시스템에 영향을 주는지 사전 검증

2. LLM 기반 코드 생성 시 현재 프로젝트의 최신 스키마를 Context로 주입하여 모델 불일치 방지

3. 복수 엔티티 변경 시 개별 적용보다 단일 배치 트랜잭션으로 적용하여 Diff 리뷰 효율성 증대

4. Validate → Dry-Run → Apply로 이어지는 3단계 검증 파이프라인 구축

원문 읽기