diff --git a/.gitignore b/.gitignore
index 09827ab..76dce5f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,5 @@ yarn-error.log*
# 로컬 실행 플랜 (실행 안내서, PR 본문에 녹임)
# docs/ 밖으로 분리 — docs/ 안에 두면 autogenerated 사이드바에 노출됨 (로컬 dev 오염)
/plans/
+/docs/plans/
+/docs/brainstorms/
diff --git a/docs/brainstorms/2026-04-20-readme-renewal-requirements.md b/docs/brainstorms/2026-04-20-readme-renewal-requirements.md
deleted file mode 100644
index c636812..0000000
--- a/docs/brainstorms/2026-04-20-readme-renewal-requirements.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-date: 2026-04-20
-topic: readme-renewal
----
-
-# README 리뉴얼
-
-## Problem Frame
-
-현재 README는 초안 수준 — 비주얼 없음, 챕터 목록이 페이지 범위만 표기, 멤버 사진이 50px로 너무 작음. GitHub에서 프로젝트를 처음 보는 외부 개발자에게 스터디의 정체성과 콘텐츠 목적지를 즉각 전달해야 한다.
-
-## Requirements
-
-**비주얼 — 멤버 섹션**
-
-- R1. `스터디원.png`에서 배경 제거(rembg) → `static/img/members/study-members-nobg.png` 저장, README 최상단 히어로 배너로 사용
-- R2. 멤버 카드를 2열 HTML 테이블로 재구성 — GitHub 프로필 사진 80px + 🐾 이모지 + 이름(한국어) + 닉네임 + 연차 + 한 줄 설명 (hero.png의 캐릭터 설명 텍스트 그대로 사용)
-
-**README 구조 — 가독성**
-
-- R3. 중앙 정렬 타이틀 + 뱃지 행 (Docusaurus 사이트 링크 + Notion 링크)
-- R4. "📖 스터디 노트 보러 가기" 명확한 CTA를 누끼 배너 아래 배치
-- R5. 챕터 섹션을 파트별 테이블로 교체 — 파트 이름 + 챕터 범위 + 테마 키워드 포함
-- R6. 개발 세팅 섹션 유지 (npm → pnpm으로 정확히 반영)
-
-**범위 제외**
-
-- 영문 README 추가 (별도 이슈)
-- Docusaurus 사이트 본문 변경 없음
-
-## Success Criteria
-
-- 외부 방문자가 README에서 스터디 성격, 멤버, 콘텐츠 링크를 30초 내 파악 가능
-- 누끼 사진이 GitHub 다크/라이트 모드 둘 다 자연스럽게 표시
-
-## Key Decisions
-
-- 누끼 배너 + 2열 개인 카드 조합 선택: 단체 정체성 + 개인 목소리 동시에 살림
-- hero.png(일러스트)는 Docusaurus 사이트 히어로용으로 유지, README는 실제 사진 사용
-
-## Next Steps
-
-→ 직접 작업 진행 (rembg 처리 + README 작성)
diff --git a/docs/foundations/1-construction.mdx b/docs/foundations/1-construction.mdx
index 2c8a9aa..4edf1c8 100644
--- a/docs/foundations/1-construction.mdx
+++ b/docs/foundations/1-construction.mdx
@@ -10,6 +10,10 @@ ai_assisted:
- summary.lead
- summary.bullets
- verdict.rationale
+ - chapter1.book_summary
+ - chapter2.book_summary
+ - chapter3.book_summary
+ - chapter4.book_summary
source: notion-pull
source_page_id: 16dde71a-aa9f-83d2-a989-014e17b8d7de
chapters_in_book: [1, 2, 3, 4]
@@ -46,6 +50,18 @@ import DevilsAdvocate from '@site/src/components/DevilsAdvocate';
## Chapter 1. Welcome to Software Construction
+### 📖 원문 핵심
+
+**구현(Construction)의 범위**: 소프트웨어 구현은 단순히 코딩만을 뜻하지 않아요. 상세 설계, 코딩, 디버깅, 단위 테스트, 통합 테스트가 모두 구현에 포함돼요.
+
+**구현은 유일하게 반드시 일어나는 활동**: 요구사항 분석이나 아키텍처 설계는 프로젝트 사정에 따라 생략되기도 하지만, 구현은 어떤 프로젝트에서도 건너뛸 수 없어요.
+
+**구현은 전체 개발 시간의 30~80%를 차지해요**: 프로젝트 규모에 따라 구현이 차지하는 비중이 크기 때문에, 구현 품질이 프로젝트 성패에 직접적인 영향을 미쳐요.
+
+**소스 코드가 유일하게 항상 최신 상태인 문서예요**: 요구사항 명세서나 설계 문서는 낡아지지만 소스 코드는 언제나 실제 동작을 반영하기 때문에, 코드 품질에 가장 공을 들여야 해요.
+
+**개인 생산성 격차가 구현 단계에서 가장 크게 벌어져요**: Sackman, Erikson, Grant의 연구에 따르면 프로그래머 간 생산성 차이가 구현 단계에서 10~20배에 달하며, 좋은 구현 기법을 익히면 이 격차를 줄일 수 있어요.
+
## Chapter 2. Metaphors for a Richer Understanding of Software Development
+### 📖 원문 핵심
+
+**메타포는 알고리즘이 아니라 휴리스틱이에요**: 메타포는 답을 찾는 방법을 알려주는 도구이지, 답 자체를 알려주는 지도가 아니에요. 소프트웨어 개발에서 메타포를 쓴다는 건 탐조등처럼 문제를 비춰보는 것이지, 정해진 경로를 따르는 게 아니에요.
+
+**"코드 쓰기(Writing)" 메타포의 한계**: 소프트웨어 개발을 편지 쓰기처럼 보는 관점은 계획 없이 앉아서 쓰고 수정하면 된다고 암시하는데, 이 비유는 소프트웨어의 협업적 성격과 출시 이후 지속되는 유지보수 비용을 설명하지 못해요.
+
+**시스템 성장(Accretion) 메타포**: 소프트웨어를 굴조개가 진주를 만들듯 작은 단위로 조금씩 쌓아가는 방식으로 보는 관점이에요. McConnell은 이 메타포가 증분 개발의 본질을 가장 정확하게 포착한다고 봤어요.
+
+**소프트웨어 건축(Building Construction) 메타포**: 규모가 커질수록 계획과 설계의 중요성이 달라진다는 점을 건축 비유로 설명해요. 개집을 짓는 것과 마천루를 짓는 것은 접근 방식 자체가 달라지듯이, 소규모와 대규모 소프트웨어 프로젝트도 필요한 준비의 수준이 근본적으로 다르다고 했어요.
+
+**지적 도구상자(Intellectual Toolbox) 메타포**: 숙련된 개발자는 단일 방법론에 종속되지 않고 상황에 맞는 기법을 선택할 줄 알아야 한다고 했어요. 어떤 방법론을 100% 따르면 그 방법론의 렌즈로만 세상을 보게 되어 더 나은 선택지를 놓칠 수 있어요.
+
## Chapter 3. Measure Twice, Cut Once: Upstream Prerequisites
+### 📖 원문 핵심
+
+**사전 준비의 비용 효과**: 결함을 발견하는 시점이 늦어질수록 수정 비용이 급격히 올라가요. 요구사항 단계에서 발견한 결함을 릴리스 후에 수정하면 10~100배 더 비싸기 때문에, 구현 전에 요구사항과 아키텍처를 검토하는 것이 경제적으로 정당해요.
+
+**문제 정의 우선**: 구현을 시작하기 전 첫 번째 선행 조건은 시스템이 해결해야 할 문제를 명확히 서술하는 거예요. 문제 정의는 해결책이 아닌 사용자 언어로 작성해야 하며, 정의가 없으면 올바른 방법으로 잘못된 문제를 풀게 되는 이중 손실이 발생해요.
+
+**명시적 요구사항의 역할**: 공식 요구사항을 작성해두면 시스템 기능을 프로그래머가 아닌 사용자가 주도하게 되고, 구현 도중 발생하는 범위 분쟁을 문서로 해소할 수 있어요. 요구사항 변경은 코딩 중 발견 시 설계를 다시 짜야 하므로 평균 프로젝트에서 재작업의 70~85%를 차지해요.
+
+**아키텍처의 개념 무결성**: 소프트웨어 아키텍처는 시스템의 개념적 무결성을 결정하고, 이것이 결국 제품 품질을 결정해요. 좋은 아키텍처는 상위 레벨부터 하위 레벨까지 일관된 구조를 제공하며, 나쁜 아키텍처는 구현을 거의 불가능하게 만들어요.
+
+**아키텍처 컴포넌트의 책임 분리**: 아키텍처에서 각 빌딩 블록은 하나의 책임 영역을 가져야 하고, 다른 블록의 책임에 대해 최대한 적게 알아야 해요. 두 개 이상의 블록이 동일한 기능을 담당하면 협력이 아닌 충돌이 발생하기 때문에 기능별 소유권을 명확히 정의해야 해요.
+
## Chapter 4. Key Construction Decisions
+### 📖 원문 핵심
+
+**언어 선택이 생산성과 품질에 영향을 준다**: 익숙한 언어로 작업하는 프로그래머는 낯선 언어를 쓰는 경우보다 약 30% 더 생산적이고, 고수준 언어는 저수준 언어 대비 5~15배의 생산성·품질 향상 효과가 있어요.
+
+**언어는 사고를 제약한다**: 프로그래밍 언어가 제공하는 어휘가 개발자가 표현할 수 있는 생각의 범위를 결정하며, 언어에 의해 제약받는 "언어 안에서 프로그래밍"이 아니라 언어를 도구로 쓰는 "언어를 향해 프로그래밍"을 지향해야 해요.
+
+**컨벤션은 구현 시작 전에 확정해야 한다**: 변수명, 클래스명, 루틴명, 포매팅, 주석 등의 코딩 컨벤션은 코드가 작성된 이후에 소급 적용하기가 거의 불가능하기 때문에, 구현에 들어가기 전에 팀 전체가 합의해야 해요.
+
+**기술 파동(Technology Wave)의 위치가 개발 방식을 결정한다**: 성숙한 기술 환경(late wave)에서는 안정적인 도구와 문서를 활용해 기능 구현에 집중할 수 있지만, 초기 기술 환경(early wave)에서는 미문서화된 언어 특성이나 도구 버그에 상당한 시간을 써야 하므로 기대치를 그에 맞게 조정해야 해요.
+
+**주요 구현 관행은 사전에 의식적으로 선택해야 한다**: 코딩 컨벤션, 페어 프로그래밍 여부, 테스트 작성 시점, 코드 리뷰 방식, 툴체인 등의 구현 관행은 프로젝트 성격에 맞게 미리 결정해야 하며, 단순히 기본값을 따르는 것은 선택이 아니에요.
+
diff --git a/docs/foundations/2-design.mdx b/docs/foundations/2-design.mdx
index 7dc0206..f4e4ff6 100644
--- a/docs/foundations/2-design.mdx
+++ b/docs/foundations/2-design.mdx
@@ -11,6 +11,8 @@ ai_assisted:
- summary.bullets
- verdict.rationale
- checklist.text
+ - chapter5.book_summary
+ - chapter6.book_summary
source: notion-pull
source_page_id: 561de71a-aa9f-8296-b752-8162200acdb6
chapters_in_book: [5, 6]
@@ -45,6 +47,18 @@ import DevilsAdvocate from '@site/src/components/DevilsAdvocate';
## Chapter 5. Design in Construction
+### 📖 원문 핵심
+
+**설계는 사악한 문제(Wicked Problem)다**: 소프트웨어 설계는 풀어봐야 비로소 명확히 정의할 수 있는 문제로, 틀린 방향을 가보고 되돌아오는 과정 자체가 설계의 본질이에요.
+
+**소프트웨어의 제1 기술 명령은 복잡성 관리다**: 프로젝트가 기술적 이유로 실패할 때 그 근본 원인은 대부분 통제되지 않은 복잡성이며, 좋은 설계의 목표는 한 번에 다뤄야 할 복잡성의 양을 최소화하는 것이에요.
+
+**정보 은닉(Information Hiding)**: 각 클래스는 설계·구현 결정을 다른 클래스로부터 숨겨야 하며, 이 원칙이야말로 복잡성을 감추는 가장 강력한 휴리스틱이에요.
+
+**느슨한 결합(Loose Coupling)**: 클래스 간 연결을 최소화하도록 설계해야 하며, 연결이 늘어날수록 한 부분의 변경이 전체에 미치는 영향이 커져 유지보수 비용이 올라가요.
+
+**설계 계층(Levels of Design)**: 소프트웨어 설계는 시스템 전체 → 서브시스템/패키지 → 클래스 → 루틴 → 루틴 내부의 5개 수준에서 이뤄지며, 각 수준에서 독립적으로 복잡성을 통제해야 해요.
+
{
## Chapter 21. Collaborative Construction
+### 📖 원문 핵심
+
+**협업 구현(Collaborative Construction)의 가치**: 코드 리뷰, 인스펙션, 페어 프로그래밍 같은 협업 기법은 테스트보다 더 높은 비율의 결함을 더 낮은 비용으로 발견해요.
+
+**페어 프로그래밍 효과**: 비용이 인스펙션과 거의 동일한 수준이면서 결함 검출률은 40~60%에 달하며, 두 사람이 함께 코드를 작성하면 서로의 실수를 즉각 잡아낼 수 있어요.
+
+**공식 인스펙션(Formal Inspection)**: 사전 준비, 명확한 역할 분담, 결함 탐지에만 집중하는 원칙을 따르며, 모든 협업 기법 중 결함 검출률이 45~70%로 가장 높아요.
+
+**결함 탐지와 수정의 분리**: 인스펙션 회의 중에는 결함을 찾는 데만 집중하고 수정은 하지 않아요. 수정까지 같이 하면 회의가 길어지고 핵심 목적이 흐려지기 때문이에요.
+
+**협업 기법과 테스트는 상호 보완적이에요**: 협업 기법은 테스트가 잘 잡지 못하는 종류의 오류를 발견하기 때문에, 두 가지를 함께 사용해야 소프트웨어 품질을 충분히 보장할 수 있어요.
+
{
## Chapter 22. Developer Testing
+### 📖 원문 핵심
+
+**개발자 테스팅의 한계**: 테스팅은 오류를 감지하는 수단이지 소프트웨어 품질을 직접 개선하는 수단이 아니며, 개발자 테스트 한 단계가 발견하는 오류는 전체의 50% 미만에 그치는 경우가 많아요.
+
+**테스트 우선(Test-First) 작성**: 코드를 작성하기 전에 테스트 케이스를 먼저 작성하면 요건 문제를 조기에 발견하고 결함 수정 비용을 낮출 수 있어요.
+
+**경계값 분석(Boundary Analysis)**: 오류는 경계에 집중되므로 최솟값, 최댓값, 경계의 ±1 값(off-by-one)을 반드시 테스트해야 해요.
+
+**오류 집중 법칙**: 프로젝트 결함의 80%는 전체 클래스·루틴의 20%에 집중되며, 50%는 단 5%의 클래스에서 발생해요.
+
+**커버리지 모니터**: 커버리지 측정 없이 테스팅하면 실제로는 50~60%의 코드만 실행되므로, 커버리지 도구를 사용해 미실행 코드를 확인해야 해요.
+
{
## Chapter 23. Debugging
+### 📖 원문 핵심
+
+**디버깅 vs 테스팅**: 테스팅이 오류를 탐지하는 과정이라면, 디버깅은 이미 탐지된 오류의 근본 원인을 식별하고 수정하는 과정이에요.
+
+**결함을 학습 기회로**: 결함은 프로그램을 이해하고, 자신의 실수 패턴을 파악하고, 코드 품질을 점검하고, 문제 해결 방식을 개선할 수 있는 드문 기회예요.
+
+**의심 영역 좁히기**: 이진 탐색(binary search) 방식으로 프로그램의 절반씩 제거해 가며 결함 위치를 체계적으로 추적하면, 전체 코드를 훑는 것보다 훨씬 빠르게 결함을 찾을 수 있어요.
+
+**심리적 집합(Psychological Set)**: 개발자는 자신이 작성한 코드에서 보고 싶은 것만 보는 경향이 있어, 결함이 있는 구역을 무의식 중에 건너뛰는 맹점이 생겨요.
+
+**증상이 아닌 문제를 수정**: 특정 값에 대한 특수 케이스 처리처럼 증상만 덮는 수정은 코드를 점점 더 취약하게 만들므로, 항상 근본 원인을 이해한 후 수정해야 해요.
+