98 lines
8.1 KiB
Markdown
98 lines
8.1 KiB
Markdown
---
|
|
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: (미작성)
|