--- title: interview-prep / single-command local bootstrap contract source_type: interview-prep status: raw related_branches: [feature-developer-experience-contract] related_projects: [ca-skeleton] tags: [interview-prep, ca-skeleton, ci-cd, gradle, docker] created: 2026-06-24 status_label: collecting --- # interview-prep: single-command-local-bootstrap ## Parent / 부모 - [[raw/branch-notes/feature-developer-experience-contract]] — 실제 5단계 bootstrap 구현과 실패 격리 경험에서 파생. ## 질문 / Question - 질문 원문: 로컬 개발환경을 단일 명령으로 재현할 때 어떤 단계를 묶고, 실패 위치와 문서 drift는 어떻게 검증하시겠습니까? - 출처: 구현 경험에서 도출한 예상 질문. ## 질문 의도 추론 / Why this question - 핵심 평가 대상: reproducibility, 실패 격리, build lifecycle 설계, 문서와 실행 계약의 정합. - 함정 / 흔히 빠지는 답변 패턴: `docker compose up`만 제공하고 compile/Flyway/smoke 실패를 한 덩어리로 취급하는 답변. - 따라올 만한 후속 질문: Docker 미기동, 기존 host port 충돌, CI와 local Testcontainers reuse 차이를 어떻게 다루는가? ## 답변 재료 / Raw answer material - 사실 1: Gradle `bootstrap`을 compile → dependency → startup Flyway → sample contract → HTTP smoke의 task chain으로 구현했다. 근거: [[raw/branch-notes/feature-developer-experience-contract]] D3, §2026-06-24 구현 결과. - 사실 2: README bash block의 Gradle task/Compose file/Make target drift를 `verifyReadmeCommands`로 `check`에 연결했다. 근거: 같은 branch D4, §2026-06-24 구현 결과. - 내가 직접 한 경험: host 5432 충돌과 slim JRE RNG provider 누락을 stage별 failure로 찾고 각각 internal-only DB network와 `java.base` RNG bean으로 해결했다. - 트레이드오프: Gradle은 Spring/Java repository와 정합하고 task별 exit evidence를 제공하지만, Gradle을 쓰지 않는 polyglot repository라면 Make/task runner가 더 자연스러울 수 있다. - 한계 / 이건 안 해봤다: macOS Apple Silicon과 Windows WSL2 실기 검증, remote CI link-check 실행은 이번 local evidence에 없다. ## 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]]. ## 미해결 / Unknown - 모르는 것 1: Apple Silicon에서 최초 image build/Testcontainers 시간이 목표를 만족하는지. - 모르는 것 2: lychee workflow의 실제 GitHub-hosted runner false-positive 목록. - 확인 방법: 각 OS clean clone 측정과 link-check workflow dispatch 결과 수집. ## 답변 경계 / Answer boundary - 자신 있게 말할 수 있는 범위: Linux local에서 `./gradlew bootstrap`, focused/full tests, `check`를 실행해 확인한 범위. - 공식 문서를 다시 보고 답변해야 하는 부분: Testcontainers reuse의 최신 지원/권고와 `@ServiceConnection` 지원 container 범위. - 절대 과장하지 말 것: local verification을 CI/prod verification으로 표현하지 않는다. ## Related / 관련 - [[raw/blog-topics/five-stage-local-bootstrap-contract-2026-06-24]]. - derived interview: canonical 정제 전이므로 생성하지 않음.