Files
llm-wiki/vault/20-evidence/official-docs/scaffolding-spring-initializr.md
T

8.1 KiB

title, source_type, url, archive_url, status, confidence, tags, related_projects, related_branches, created, last_reviewed
title source_type url archive_url status confidence tags related_projects related_branches created last_reviewed
Spring Initializr — Spring 공식 프로젝트 스캐폴딩 / custom starter official-doc https://github.com/spring-io/initializr raw high
ca-tmpl
scaffolding
sample-removal
spring-initializr
custom-starter
official-doc
ca-tmpl
feature-sample-removal-adoption-contract
2026-05-22 2026-05-27

Spring Initializr — Spring 공식 프로젝트 스캐폴딩 / custom starter

Layer: raw/official-docs/ — Spring 공식 organization spring-io/initializr GitHub 저장소 README 발췌. ca-tmpl 의 sample removal / project adoption 결정에 대한 대안 1 (Group H — Spring Initializr 기반 starter scaffolding) 의 1차 근거.

Parent / 활용 branch (필수)

Branch 이 자료가 정당화하는 결정
raw/branch-notes/feature-sample-removal-adoption-contract sample removal / adoption Group H 의 대안 4 — Spring Initializr custom starter 모델 비교 근거 (sample 없는 generator 모델 vs ca-tmpl 의 fixture-then-remove 모델)

상위 프로젝트: raw/project-notes/ca-skeleton-operational-contract — Sample Removal / Project Adoption 섹션의 alternatives 그룹 1차 근거.

컨텍스트 / 왜 저장했는지

ca-tmpl의 sample removal / adoption 결정(2-step removal: profile toggle → package remove + dual-mode CI matrix + 7-step adoption checklist)에 대한 대안 1. Spring 진영의 표준 scaffolding 도구는 "처음부터 sample 없이 starter dependency만 선택"하는 모델 — ca-tmpl이 "skeleton + sample 동시 시작 후 제거"를 선택한 이유의 대조축.

출처 / Source

핵심 인용 / Key quotes (verbatim)

[§README — Overview] "Initializr generates Spring Boot project structures based on the dependencies you choose."

[§README — Self-host] "You can run your own instance via Docker or by deploying the war. You can also customize Initializr to add your own dependencies, defaults, and metadata."

[§README — Usage] "It is most often used through the start.spring.io web interface but can also be used through IDE integrations (IntelliJ IDEA, STS, NetBeans, VSCode) or REST API."

[§README — Extensibility] "Initializr provides an extensible API to generate quickstart projects... Custom starters can be added via metadata configuration."

Claims Extracted / 추출된 주장

Claim ID Claim (이 자료가 직접 말하는 것) Evidence quote Strength Applies to Does not prove
SCAF-SI-C1 Initializr 는 사용자가 선택한 dependency 조합에 기반해 Spring Boot project 구조를 생성한다 [§README — Overview] "Initializr generates Spring Boot project structures based on the dependencies you choose." official-vendor-doc Spring Boot 프로젝트 scaffolding Initializr 가 sample/예제 코드까지 함께 생성한다는 뜻은 아님 (dependency 기반 빈 구조)
SCAF-SI-C2 Initializr 는 자체 인스턴스를 Docker 또는 war 배포로 운영 가능하며, dependency / default / metadata 를 커스터마이즈할 수 있다 [§README — Self-host] "You can run your own instance via Docker or by deploying the war. You can also customize Initializr to add your own dependencies, defaults, and metadata." official-vendor-doc 사내 표준 starter 운영 / private Initializr 인스턴스 커스터마이즈가 "sample-on/sample-off dual-mode" 같은 ca-tmpl 의 CI matrix 모델을 지원한다는 뜻은 아님
SCAF-SI-C3 Initializr 는 start.spring.io 웹 UI 가 주된 사용 경로지만 IDE 통합 (IntelliJ IDEA, STS, NetBeans, VSCode) 또는 REST API 로도 사용 가능 [§README — Usage] "It is most often used through the start.spring.io web interface but can also be used through IDE integrations (IntelliJ IDEA, STS, NetBeans, VSCode) or REST API." official-vendor-doc Initializr 사용 채널 선택 모든 IDE 통합이 동일 기능 parity 를 가진다는 뜻은 아님
SCAF-SI-C4 Initializr 는 quickstart project 를 생성하기 위한 확장 가능한 API 를 제공하고, custom starter 는 metadata configuration 으로 추가 가능 [§README — Extensibility] "Initializr provides an extensible API to generate quickstart projects... Custom starters can be added via metadata configuration." official-vendor-doc 사내 표준 starter 등록 메커니즘 평가 metadata configuration 의 정확한 schema / 한계 / sample 코드 옵셔널화 가능 여부는 본 인용에서 보장 안 됨

Usage Boundaries / 적용 경계

  • 이 자료가 직접 증명하는 것:
    • SCAF-SI-C1: dependency 선택 → Spring Boot 구조 생성 모델
    • SCAF-SI-C2: 자체 인스턴스 운영 메커니즘 (Docker / war) + 커스터마이즈 차원 (dependency / default / metadata)
    • SCAF-SI-C3: 사용 채널 다양성 (web / IDE / REST API)
    • SCAF-SI-C4: custom starter 등록이 metadata configuration 으로 가능하다는 사실
  • 이 자료가 증명하지 않는 것:
    • Initializr 가 ca-tmpl 의 sample-ticket 같은 contract fixture 모델을 지원하거나 권장한다는 뜻은 아님 (오히려 sample-off 모델)
    • dual-mode CI matrix (sample-on / sample-off) 가 Initializr 내부에서 지원된다는 뜻 아님
    • custom starter metadata 가 ca-tmpl 의 7-step adoption checklist 항목 (domain rename, package rename, profile cleanup) 을 자동화한다는 뜻 아님
    • "처음부터 sample 없음" 모델이 "skeleton 계약 검증 fixture 가 불필요" 를 의미한다는 뜻 아님 (검증 전략은 별도 결정)
  • 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
    • ca-tmpl skeleton 을 Initializr custom starter 로 노출 시 sample-ticket 을 어떻게 옵셔널화 할지 (metadata flag vs 별도 starter 분리)
    • private Initializr 인스턴스의 운영 비용 (배포·유지·dependency catalog 동기화) vs GitHub Template Repository / degit 같은 가벼운 대안의 트레이드오프
    • REST API 로 자동화된 CI 시점 생성이 가능한지 (ca-tmpl dual-mode matrix 와의 결합)

메모

  • 핵심 모델: dependency 조합만 선택 → 빈 프로젝트 생성. sample 코드 없음. removal 단계 자체가 없음.
  • ca-tmpl과의 차이: ca-tmpl은 sample-ticket을 "skeleton 검증 fixture"로 일부러 포함 → 새 프로젝트 도입 시 2-step removal 필요. Initializr는 "sample 없는 빈 starter"라 trade-off는 (학습 곡선 vs 검증 가능성).
  • custom starter: 사내 표준을 Initializr 인스턴스로 운영하면 ca-tmpl skeleton 자체를 "metadata 기반 starter"로 등록 가능. 단 이 경우 sample-ticket을 starter에서 제거해야 함 → ca-tmpl 결정과 충돌.
  • dual-mode CI matrix(sample-on/sample-off)는 Initializr에 없음. Initializr는 처음부터 sample-off.
  • 장점: Spring 사용자에게 가장 익숙한 scaffolding UX. IDE integration까지 표준화됨.
  • 단점: skeleton contract 검증을 위한 sample fixture 개념이 없음. ca-tmpl이 추구하는 "fixture로 검증 + 도입 시 제거" 모델은 Initializr 위에 별도 정책으로 얹어야 함.
  • 신뢰도: spring-io 공식. official-doc.