Spring CRUD Generator에 이제 전체 Demo Project가 제공됩니다 (실제 사양에서 생성)

발행: (2026년 2월 18일 오후 10:56 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

코드 생성기를 만들 때 가장 어려운 부분은 기능을 배포하는 것이 아니라 신뢰를 얻는 것입니다.

사람들은 다음과 같은 질문에 답을 원합니다:

  • “실제로 엔드‑투‑엔드로 동작하나요?”
  • “출력이 일관되고 빌드가 가능한가요?”
  • “생성된 코드는 실제로 어떻게 생겼나요?”
  • “실제 프로젝트에 적용해도 충분히 안정적인가요?”

그래서 저는 Spring CRUD Generator Demo 전용 레포지토리를 추가했습니다. 이 레포지토리는 완전하고 빌드 가능한 프로젝트로, 주된 목적은 생성기가 신뢰할 수 있게 동작하고 프로덕션 수준의 코드를 생성한다는 것을 보여주는 것입니다.

데모 프로젝트란?

Spring CRUD Generator Demo는 Spring CRUD Generator가 생성한 결과물을 실제 환경에서 보여주는 저장소입니다. 언제든지 참고할 수 있는 출력물입니다:

  • 패키지 구조와 레이어링 탐색
  • 생성된 DTO, 검증, 매핑, 서비스, 컨트롤러 검토
  • 마이그레이션, 리소스, 테스트, Docker 아티팩트가 실제 레포에서 어떻게 보이는지 확인
  • 프로젝트가 일반 Spring Boot 애플리케이션처럼 빌드되는지 확인

요약하면: “예시를 통한 증명” 저장소입니다.

The spec used to generate the demo

데모 프로젝트는 메인 제너레이터 저장소에 있는 전체‑예제 CRUD 스펙을 기반으로 생성됩니다. 즉, 이 데모는 선택적으로 최소한의 사례만을 골라 만든 것이 아니라, 다양한 기능을 지원하고 의미 있는 코드베이스를 만들어내는 스펙을 사용해 생성된 것입니다.

Source:

데모에서 활성화된 기능 (모든 기능 ON)

데모는 기능이 풍부하도록 구축되었습니다. 구성에서 생성된 “전체 스택” 백엔드 베이스라인을 보여주는 것이 목표이며, 포함되는 내용은 다음과 같습니다:

  • 데이터베이스: PostgreSQL
  • Java: 21
  • Spring Boot: 4.x
  • 낙관적 잠금: 활성화 (재시도/백오프 설정 포함)
  • Docker: Dockerfile + docker‑compose (앱 + DB)
  • 캐싱: 만료 시간이 설정된 Redis
  • OpenAPI: API 스펙 + 생성된 리소스
  • GraphQL: 활성화 (스칼라 설정 포함)
  • 오류 응답: 간단한 형식
  • 마이그레이션: 활성화
  • 테스트: 단위 테스트 + 테스트 데이터 생성 (Instancio)
  • 추가 속성: REST 기본 경로 /api/v1, OSIV 비활성화 등

아래는 구성/스펙 컨텍스트에서 사용된 정확한 기능 스냅샷입니다:

database: postgresql
javaVersion: 21
springBootVersion: 4
optimisticLocking: true
docker:
  dockerfile: true
  dockerCompose: true
  app:
    image: eclipse-temurin
    port: 8080
  db:
    image: postgres
    port: 5432
    tag: latest
cache: 
  enabled: true
  type: REDIS
  expiration: 5
openApi:
  apiSpec: true
  generateResources: true
graphql:
  enabled: true
  scalarConfig: true
errorResponse: simple
migrationScripts: true
tests:
  unit: true
  dataGenerator: instancio
additionalProperties:
  rest.basePath: /api/v1
  optimisticLocking.retry.config: true
  optimisticLocking.retry.maxAttempts: 5
  optimisticLocking.backoff.delayMs: 100
  optimisticLocking.backoff.multiplier: 2.0
  optimisticLocking.backoff.maxDelayMs: 1000
  spring.jpa.open-in-view: false

왜 데모 레포가 중요한가 (특히 생성기용)

문서와 스크린샷도 도움이 되지만, 실제 코드를 클론, 빌드, 실행, 검사, 버전 간 비교 할 수 있는 실제 코드베이스를 대체할 수는 없습니다.

데모 레포는 생성기의 출력 품질과 일관성을 평가할 수 있는 안정적인 기준을 제공합니다. 또한 회귀를 찾기 쉽게 해줍니다: 생성기가 진화함에 따라 다시 생성하고 무엇이 바뀌었는지 빠르게 확인할 수 있습니다.

Spring CRUD Generator를 시도해볼 생각이라면, 이 데모 레포가 가장 빠른 답을 제공합니다:

“내 프로젝트 스켈레톤이 이렇게 생겼으면 좋겠는가?”

링크 (복사/붙여넣기)

피드백 환영합니다

생성된 출력물(구조, 규칙, 기본값, 기능 토글 등)에서 개선이 필요하다고 생각되는 부분을 발견하면, 메인 레포지토리에서 이슈를 열거나 토론을 시작해 주세요. 데모 프로젝트를 공개하는 궁극적인 목적은 투명성을 확보하고, 실제 피드백을 기반으로 더 쉽게 반복 개선할 수 있게 하는 것입니다.

0 조회
Back to Blog

관련 글

더 보기 »

GStreamer

오늘의 주제: 도구를 제공하여 미디어 스트림을 강력한 새로운 방식으로 조작하고 처리함으로써 보다 정교한 멀티미디어 애플리케이션을 구축하도록 지원합니다.