--- title: Spring Initializr — Spring 공식 프로젝트 스캐폴딩 / custom starter source_type: official-doc url: https://github.com/spring-io/initializr archive_url: status: raw confidence: high tags: [ca-tmpl, scaffolding, sample-removal, spring-initializr, custom-starter, official-doc] related_projects: [ca-tmpl] related_branches: [feature-sample-removal-adoption-contract] created: 2026-05-22 last_reviewed: 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 - 원본 URL: https://github.com/spring-io/initializr - 공식 사이트: https://start.spring.io - 문서: https://docs.spring.io/initializr/docs/current/reference/html/ - 아카이브 URL: (미수집) - 저자/조직: spring-io (VMware/Broadcom Spring 팀, 공식) - 라이선스: Apache-2.0 - 마지막 확인일: 2026-05-27 ## 핵심 인용 / 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. ## Related / 관련 - 같은 주제 다른 official-doc (Group H — Sample removal / adoption 대안 5종): - [[raw/official-docs/scaffolding-cookiecutter-official]] — 대안 2 (Cookiecutter generator) - [[raw/official-docs/scaffolding-degit-svelte-github]] — 대안 3 (degit clone) - [[raw/official-docs/scaffolding-github-template-repository]] — 대안 5 (GitHub Template Repository) - 인용하는 branch: - [[raw/branch-notes/feature-sample-removal-adoption-contract]] - canonical contract 섹션: - [[raw/project-notes/ca-skeleton-operational-contract#Sample Removal / Project Adoption]] - 인용하는 wiki: (미작성)