7.8 KiB
title, source_type, status, confidence, url, archive_url, tags, related_branches, related_projects, created, last_reviewed
| title | source_type | status | confidence | url | archive_url | tags | related_branches | related_projects | created | last_reviewed | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Clean Architecture with Spring Boot (Baeldung) | personal-blog | needs-confirmation | low | https://www.baeldung.com/spring-boot-clean-architecture |
|
|
|
2026-05-22 | 2026-05-27 |
Clean Architecture with Spring Boot (Baeldung)
Layer:
raw/official-docs/(분류상 — 폴더 위치). 실제 source_type 은personal-blog(Baeldung 은 공식 벤더 doc 아님). ca-tmpl 의 feature-first 결정 대비 대안 2 layer-first 의 대표 튜토리얼.
Parent / 활용 branch (필수)
| Branch | 이 자료가 정당화하는 결정 |
|---|---|
| raw/branch-notes/feature-architecture-enforcement-rules | layer-first 대안이 어떻게 보이는지 비교 baseline — feature-first 채택의 trade-off 평가 |
| raw/branch-notes/feature-skeleton-package-blueprint-contract | "최상위 패키지 = 레이어" 모델의 실패 모드 (도메인 늘어날 때 cohesion 저하) 사례 보관 |
| raw/branch-notes/feature-domain-feature-onboarding-contract | 신규 도메인 추가 시 layer-first 가 왜 reject 되는지의 비교 근거 |
컨텍스트 / 왜 저장했는지
ca-tmpl의 feature-first 결정에 대한 대안 2: Layer-first (전통 3-layer + Clean Architecture 레이어링)의 대표적 튜토리얼. 한국/글로벌 신입~3년차 백엔드가 가장 먼저 접하는 패키지 구조의 reference.
출처 / Source
- 원본 URL: https://www.baeldung.com/spring-boot-clean-architecture
- 아카이브 URL: (미확보 — WebFetch 시 baeldung.com 403 Forbidden, web.archive.org 도 본 환경에서 fetch 불가)
- 저자/조직: Baeldung (Spring 학습 블로그, 검색 노출 1군이지만 공식 문서는 아님)
- 발행일: (지속 업데이트되는 튜토리얼 페이지)
- 마지막 확인일: 2026-05-27 (URL 접근 불가 — 본 raw 의 인용은 검색 스니펫 기반, verbatim PDF 미확보)
핵심 인용 / Key quotes
Warning
: 다음 인용은 검색 스니펫 / 간접 요약 이며 baeldung.com 원본 페이지에서 verbatim 추출되지 않았다. 본 환경에서 baeldung.com 은 403 Forbidden 으로 fetch 불가. 모든 quote 는
needs-confirmation.
[§검색 스니펫, paraphrased] "Clean architecture creates a user registration API following Robert C. Martin's Clean Architecture with entities, use cases, interface adapters, and frameworks/drivers layers."
[§구조 요약, paraphrased] 패키지를
entities,usecases,adapters,frameworks처럼 layer 단위로 잘라 두고 그 안에 도메인 클래스를 배치하는 구성.
(원문 본문에서 직접 인용 추출은 미완. 추가 검증 필요 — 전체 문서 status needs-confirmation.)
Claims Extracted / 추출된 주장
| Claim ID | Claim (이 자료가 직접 말하는 것) | Evidence quote | Strength | Applies to | Does not prove |
|---|---|---|---|---|---|
| BAELDUNG-CA-C1 | baeldung.com/spring-boot-clean-architecture 페이지가 Spring Boot 에 Clean Architecture (Robert C. Martin 의 entities / use cases / interface adapters / frameworks-drivers 4 layer) 를 적용하는 튜토리얼로 존재 | [§검색 스니펫] "Clean architecture creates a user registration API following Robert C. Martin's Clean Architecture with entities, use cases, interface adapters, and frameworks/drivers layers." | needs-confirmation (verbatim 미확보) |
Spring Boot 학습자 대상 튜토리얼 reference | 본 페이지가 ca-tmpl 의 feature-first 대안인 layer-first 의 "최선의" 예시라는 뜻은 아님 — 단지 가장 자주 검색 노출되는 튜토리얼 |
| BAELDUNG-CA-C2 | 페이지는 패키지를 entities / usecases / adapters / frameworks 같은 레이어 이름 으로 최상위 분할하여 배치하는 구성을 제시 |
[§구조 요약, paraphrased] "패키지를 entities, usecases, adapters, frameworks처럼 layer 단위로 잘라" |
needs-confirmation (paraphrased) |
layer-first 패키지 구조 사례 분석 | 동일 페이지가 feature 분할을 함께 권장하는지 여부는 본 자료로 확인 불가 (원본 미접근) |
| BAELDUNG-CA-C3 | Baeldung 은 공식 벤더 doc 이 아닌 개인/팀 운영 학습 블로그이며, 본 글의 권고는 best practice 가 아니라 학습용 가이드 | (Baeldung 자체 메타 정보 — 운영 주체 = Eugen Paraschiv 의 회사, 공식 Spring/Pivotal 산하 아님) | tutorial |
공식 best practice 판단 시 인용 금지 기준 | "Baeldung 의 모든 글이 부정확" 이라는 뜻은 아님 — 단지 공식 표준 인증 아님 |
Usage Boundaries / 적용 경계
- 이 자료가 직접 증명하는 것 (현 상태):
BAELDUNG-CA-C3: Baeldung 자체가 personal/team blog 라는 메타 사실
- 이 자료가 증명하지 않는 것 (verbatim 미확보):
BAELDUNG-CA-C1,C2: 페이지 본문의 정확한 wording — 검색 스니펫에 의존, 원문 직접 확인 필요- "layer-first 가 항상 cohesion 저하를 일으킨다" 같은 일반화 — 본 글 자체는 사례, Sahibinden 글 / 별도 측정 결합 필요
- ca-tmpl 이 layer-first 를 거부한 결정의 정량 근거 — 본 자료는 비교 baseline 일 뿐
- 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
- 본 raw 의 status 를
needs-confirmation에서 풀려면: baeldung.com 본문에 직접 접속 + verbatim 5문장 추출 + Strength 재평가 (tutorial유지) - layer-first 의 "low cohesion" 문제가 실제로 어느 규모부터 (feature 수) 나타나는지 — 본 글 범위 밖
- 본 raw 의 status 를
메모 / Notes (내 프로젝트 해석 — 자료 직접 인용 아님)
- 적용 시나리오: 학습용 튜토리얼, 작은 단일 도메인 서비스.
- 장점: Robert C. Martin의 layer 정의(Entities / Use Cases / Interface Adapters / Frameworks)와 1:1로 매핑됨. 입문자가 책 → 코드를 연결하기 쉬움.
- 단점: 도메인이 여러 개일 때 모든
usecases가 한 패키지에 몰림 → Sahibinden 글이 지적한 "low cohesion within packages" 문제 발생. - ca-tmpl(feature-first)와의 차이: ca-tmpl은 동일한 4-layer 이름(presentation/application/domain/infrastructure)을 쓰되, 최상위 분할을 feature 로 둠. Baeldung 튜토리얼은 최상위 분할이 layer.
- 신뢰도:
personal-blog등급 (Baeldung 의 운영 주체는 Eugen Paraschiv 의 회사 — Spring/Pivotal 공식 아님). 공식 best practice로 인용 금지. Strength =tutorial또는engineering-blog.
관련 ca-tmpl branch / contract
- 적용 branch-note:
- canonical contract 섹션:
- raw/project-notes/ca-skeleton-operational-contract#20. Skeleton Blueprint Contract
- raw/project-notes/ca-skeleton-operational-contract#19. Domain Application Readiness Contract
- 대안 그룹: Topic 1 — Architecture Layout (대안 5종: feature-first / layer-first / hexagonal / modulith / onion)
- 본 source의 위치: 대안 1: layer-first
Related / 관련
- 같은 주제 다른 official-doc / company-tech-blog:
- raw/official-docs/feature-first-uncle-bob-screaming-architecture-2011 (feature-first 측 baseline)
- raw/company-tech-blogs/feature-first-sahibinden-package-by-layer-vs-feature (layer-first 의 단점을 사례로 진단)
- 인용하는 branch:
- 인용하는 wiki: (미작성)