이 문서는 각 모듈 챕터를 집필하는 모든 작성자(에이전트 포함)가 따르는 공통 규약이다. 목표: Spring Framework 7.1 소스 코드를 "책처럼 읽으며 공부"할 수 있는 한글 해설서.
- 독자: Spring을 사용해봤지만 내부 구조/동작 원리를 코드 레벨로 이해하고 싶은 중급 개발자.
- 고도: 아키텍처 + 핵심 흐름 중심.
- 다룬다: 모듈의 책임, 패키지 구조, 핵심 인터페이스/클래스의 역할, 주요 동작 시나리오의 흐름, 설계 패턴, 확장 포인트, 핵심 메서드의 의미.
- 생략한다: 모든 메서드의 시그니처 나열, 사소한 내부 유틸/예외 클래스, getter/setter, 단순 위임 메서드.
- 원칙: "이 클래스가 왜 존재하고, 호출되면 무슨 일이 일어나는가"를 설명한다. 단순 API 레퍼런스가 되지 않는다.
- 모든 본문은 한글. 단, 클래스/메서드/패키지 이름 등 식별자는 원문 영어 그대로 (
BeanFactory,getBean()). - 설명형 문체. 친절하되 장황하지 않게. 한 문단은 3~5문장 이내.
- 코드 인용 시 핵심 라인만 발췌하고, 그 위/아래에 한글 해설을 붙인다.
- 모든 구조도/흐름도는 코드 펜스(```) 안의 ASCII 아트로 그린다. (Mermaid 사용 금지)
- 자주 쓰는 형태:
- 계층/구조도: 박스와 선으로 클래스 관계 표현.
- 시퀀스/흐름도: 위→아래 또는 좌→우 화살표로 호출 순서 표현.
- 상태/생명주기: 단계 박스를 화살표로 연결.
- 예시:
┌──────────────────┐ getBean("foo") ┌───────────────────┐
│ Application │ ───────────────────────▶ │ DefaultListable │
│ (호출자) │ │ BeanFactory │
└──────────────────┘ └─────────┬─────────┘
│ doGetBean
▼
┌───────────────────┐
│ 싱글톤 캐시 조회 │
└───────────────────┘
각 모듈은 <module>/ 디렉토리 하나를 가지며, 그 안에:
README.md— 모듈 표지. (1) 한 줄 정의 (2) 이 모듈이 푸는 문제 (3) 의존 모듈/의존받는 모듈 (4) 내부 목차(하위 챕터 링크) (5) 전체 패키지 구조 ASCII 맵.NN-제목.md— 하위 챕터들. 번호 2자리 접두사로 읽는 순서를 고정. (예:01-핵심-개념.md,02-빈-생명주기.md)
하위 챕터 개수는 모듈 규모에 맞춘다 (작은 모듈 23개, 큰 모듈 58개).
- 무엇을/왜 — 이 챕터가 다루는 영역과 그게 필요한 이유.
- 핵심 타입 — 주요 인터페이스/클래스와 책임 (ASCII 구조도).
- 동작 흐름 — 대표 시나리오 1~2개를 단계별 + ASCII 흐름도로.
- 핵심 메서드 — 흐름에서 중요한 메서드 몇 개를 골라 "무슨 일을 하는지" 설명.
- 설계 포인트 / 확장점 — 적용된 패턴, 커스터마이징 훅.
- 정리 — 한 문단 요약.
- 모듈 간 참조는 상대 경로로:
../spring-beans/README.md. - 소스 위치를 짚을 때는
spring-core/src/main/java/...처럼 모듈 루트 기준 경로로 표기 (GitHub에서 클릭 가능하도록).
- 추측 금지. 반드시 실제 소스를 읽고 사실에 근거해 쓴다.
- 버전은 Spring Framework 7.1.0-SNAPSHOT 기준.
- 불확실하면 단정하지 말고 "~로 보인다" 대신 소스를 더 확인한다.