4.1 KiB
4.1 KiB
title, source_type, status, related_branches, related_projects, tags, created, status_label, target_audience, inspiration_url, archive_url
| title | source_type | status | related_branches | related_projects | tags | created | status_label | target_audience | inspiration_url | archive_url | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| blog-topic / five-stage local bootstrap contract | blog-topic | raw |
|
|
|
2026-06-24 | ready-for-canonical | backend-engineer |
blog-topic: five-stage-local-bootstrap-contract
Parent / 부모
- raw/branch-notes/feature-developer-experience-contract — single-command bootstrap 구현·검증에서 파생.
트리거 / Trigger
- 트리거 유형:
branch-work - 트리거 날짜: 2026-06-24
- 트리거 연결 노트: raw/branch-notes/feature-developer-experience-contract
글감 / Topic seed
- 한 문장 요지: 단일 bootstrap 명령의 가치는 명령 수가 아니라 compile, dependency, migration, contract, HTTP smoke 실패를 서로 다른 증거로 분리하는 데 있다.
- 예상 제목 후보:
- Spring Boot 템플릿의 첫 실행을 5단계 Gradle 계약으로 만든 이유
- docker compose up만으로는 잡지 못한 local bootstrap 실패 두 가지
핵심 주장 후보 / Claim candidates
- 사실 후보:
./gradlew bootstrap이 다섯 task를 순서대로 실행한다 — 근거: raw/branch-notes/feature-developer-experience-contract D3, §2026-06-24 구현 결과.- README 명령 drift가
check에서 검증된다 — 근거: 같은 branch D4.
- 경험 후보:
- host 5432 publish 제거와 slim JRE RNG bean 수정 뒤 실제 container health + HTTP smoke가 통과했다 — 근거: branch §마주친 문제, 두 error note.
- 의견/해석 후보:
- fresh-clone DX는 문서 친절도보다 실행 가능한 실패 계약으로 평가하는 편이 더 재현 가능하다.
Outline seed
- 왜 단일 명령인가 — 사용자가 기억할 entrypoint를 하나로 줄이되 내부 실패는 숨기지 않는다.
- 다섯 단계의 경계 — compile, dependency, migration/start, delegated sample contract, HTTP smoke가 잡는 결함이 서로 다르다.
- 실제로 잡힌 두 실패 — host port exposure와 slim JRE provider parity가 unit test만으로 남는 이유.
- 문서도 빌드 입력이다 — README command drift와 link-rot를 CI 계약으로 만드는 방법.
- 검증 등급의 경계 — local green과 CI/OS/prod 검증을 구분한다.
Canonical 전환 후보 / Canonical extraction candidates
wiki/projects/ca-tmpl/developer-experience-bootstrap.md후보:- 5단계 task graph, failure contract, local verification 결과.
wiki/concepts/runtime-image-parity.md후보:- full JDK test와 slim JRE provider/module parity gap.
- 필요한 추가 검증:
- Linux clean clone, Apple Silicon, WSL2 실행 시간/성공률.
- GitHub Actions link-check 실제 실행과 false-positive 수렴.
Sources / 근거 후보
- raw/branch-notes/feature-developer-experience-contract D3, D4, D8, D10.
- raw/errors/bootstrap-postgres-port-collision-2026-06-24.
- raw/errors/slim-jre-random-generator-missing-2026-06-24.
- raw/interviews/single-command-local-bootstrap.
미해결 / Unknown
- 아직 확인해야 할 사실: 지원 OS별 first-run 시간과 GitHub link-check 결과.
- 과장하면 안 되는 부분: Linux local 검증을 모든 OS/CI/prod에서의 보장으로 표현하지 않는다.
- 블로그로 쓰기 전에 필요한 canonical 정제: 위 project/concept 후보에 code/test evidence를 추출한다.
Decision / 처리 결정
- 액션:
promote-to-canonical - 이유:
wiki/projects/ca-tmpl/devops-ci-supply-chain-dx.md에 five-stage local bootstrap 글감으로 반영했다. - 다음 단계: target canonical이 아직
draft이므로blogify전 review/verify가 필요하다. Linux local 검증을 모든 OS/CI/prod 보장으로 표현하지 않는다.
Related / 관련
- raw/branch-notes/feature-developer-experience-contract.
- raw/errors/bootstrap-postgres-port-collision-2026-06-24.
- raw/errors/slim-jre-random-generator-missing-2026-06-24.
- raw/interviews/single-command-local-bootstrap.
- derived blog: 생성 전. canonical 정제 후
wiki/blog/<slug>-YYYY-MM-DD.md후보.