Skip to content

junhyeong9812/spring-framework-ko-docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

149 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spring Framework 한글 해설서

Spring Framework 7.1.0-SNAPSHOT 소스 코드를 "책처럼 읽으며" 내부 구조와 동작 원리를 이해하기 위한 한글 해설서.

이 문서는 Spring Framework의 22개 모듈을 하나씩 분석해, 각 모듈이 무엇을 풀고(why), 어떤 핵심 타입으로 구성되며(what), 호출되면 내부에서 무슨 일이 일어나는가(how) 를 코드 레벨에서 풀어쓴 책이다. 모든 구조도·흐름도는 ASCII 아트로 그려 GitHub/에디터에서 바로 읽을 수 있다.


이 책을 읽는 법

  • 대상 독자: Spring을 써봤지만 내부가 궁금한 중급 개발자. "이 어노테이션이 붙으면 실제로 무슨 일이 벌어지나?"가 궁금한 사람.
  • 고도(추상화 수준): 아키텍처 + 핵심 흐름 중심. 모든 메서드를 나열하는 API 레퍼런스가 아니라, 모듈의 책임 → 핵심 타입 → 대표 동작 시나리오의 흐름을 따라간다.
  • 구성: 각 모듈은 디렉토리 하나다. 그 안의 README.md(모듈 표지)부터 읽고, 번호가 붙은 하위 챕터(01-…, 02-…)를 순서대로 읽으면 된다.
  • 표기 규약: 집필 규약은 STYLE-GUIDE.md 참고. 클래스/메서드 이름은 영어 원문(BeanFactory, getBean()), 설명은 한글이다.

전체 아키텍처 개요

Spring Framework는 아래로 갈수록 추상적인 토대, 위로 갈수록 구체적인 응용으로 쌓인 계층형 모듈 구조다. 화살표(──▶)는 "의존한다(uses)"를 뜻한다.

   ┌───────────────────────────────────────────────────────────────────┐
   │  테스트 / 빌드·런타임 도구  (모든 계층을 가로지름)                   │
   │  spring-test   spring-core-test   spring-instrument                 │
   │  spring-context-indexer                                             │
   └───────────────────────────────────────────────────────────────────┘

   ┌───────────────────────────────────────────────────────────────────┐
   │                  웹 / 메시징 / 통합 계층                            │
   │                                                                     │
   │  spring-webmvc ─┐      spring-webflux ─┐    spring-messaging        │
   │  (Servlet MVC)  │      (Reactive Web)  │    spring-jms              │
   │                 ▼                      ▼    spring-websocket        │
   │             spring-web ◀───────────────┘    spring-oxm             │
   │     (HTTP 공통: 메시지·변환·클라이언트)      spring-context-support │
   └─────────────────────────────┬───────────────────────────────────────┘
                                 │ 의존
   ┌─────────────────────────────▼───────────────────────────────────────┐
   │               데이터 액세스 / 트랜잭션 계층                          │
   │   spring-jdbc   spring-orm   spring-r2dbc  ──▶  spring-tx            │
   │   (JDBC)        (JPA/ORM)    (Reactive)         (트랜잭션 추상화)     │
   └─────────────────────────────┬───────────────────────────────────────┘
                                 │ 의존
   ┌─────────────────────────────▼───────────────────────────────────────┐
   │                    AOP / 표현식 계층                                 │
   │   spring-aop      spring-aspects(AspectJ 위빙)   spring-expression   │
   │   (프록시 AOP)                                    (SpEL)             │
   └─────────────────────────────┬───────────────────────────────────────┘
                                 │ 의존
   ┌─────────────────────────────▼───────────────────────────────────────┐
   │                  핵심 / IoC 컨테이너 계층                            │
   │   spring-context  ──▶  spring-beans  ──▶  spring-core                │
   │   (ApplicationContext)  (BeanFactory/DI)  (자원·타입변환·메타데이터)  │
   └───────────────────────────────────────────────────────────────────────┘
  • 토대: spring-core는 다른 모든 모듈이 의존하는 바닥이다. 자원 추상화, 타입 변환, 어노테이션 메타데이터, 재패키징된 ASM/CGLIB가 여기 있다.
  • IoC: spring-beans가 DI 컨테이너의 심장(BeanFactory), spring-context가 그 위에 ApplicationContext·이벤트·어노테이션 설정을 얹는다.
  • AOP/SpEL: spring-aop/spring-expression은 컨테이너 위에서 횡단 관심사와 동적 표현식을 담당한다.
  • 데이터·웹·메시징: 이 토대 위에서 각자의 도메인(트랜잭션, JDBC/ORM, 서블릿/리액티브 웹, 메시징)을 구현한다.

추천 학습 순서

처음 읽는다면 아래 순서를 권한다. 토대 → IoC → 응용 순으로 의존 방향을 거슬러 올라간다.

  1. 토대 다지기spring-core (자원·타입변환·메타데이터). 이후 모든 챕터의 어휘가 여기서 나온다.
  2. 컨테이너의 심장spring-beansspring-context. DI와 빈 생명주기, refresh() 부팅 시퀀스. Spring의 정체성.
  3. 횡단 관심사spring-aopspring-expression. @Transactional/@Cacheable이 동작하는 원리의 바탕.
  4. 트랜잭션과 데이터spring-txspring-jdbc → 필요 시 spring-orm / spring-r2dbc.
  5. spring-web(공통 기반) → spring-webmvc(서블릿) 또는 spring-webflux(리액티브).
  6. 메시징·통합spring-messaging, spring-jms, spring-websocket 등 필요한 것만.
  7. 테스트spring-test. 위 모든 것을 어떻게 검증하는지.

모듈 목차

1. 핵심 / IoC 컨테이너

2. AOP · 표현식

3. 데이터 액세스 · 트랜잭션

4. 웹

5. 메시징 · 통합

6. 테스트

7. 빌드 · 런타임 도구


표기 규약

집필 규약(고도, 문체, ASCII 다이어그램 규칙, 챕터 골격)은 STYLE-GUIDE.md에 정리되어 있다.

총 22개 모듈 · 약 125개 챕터. Spring Framework 7.1.0-SNAPSHOT 소스 기준으로 작성되었다.


출처 및 라이선스

  • 이 해설서는 Spring Framework 7.1.0-SNAPSHOT 소스 코드를 분석해 작성한 학습용 2차 저작물(한글 해설) 이다.
  • 원본 Spring Framework는 Apache License 2.0 하에 배포되며, 저작권은 원저작자(VMware/Broadcom 및 기여자들)에게 있다.
  • 본 문서(텍스트·다이어그램)는 Creative Commons BY 4.0 으로 제공된다. 인용된 코드 조각의 저작권·라이선스는 원본 Apache-2.0을 따른다. 자세한 내용은 LICENSE 참고.
  • 본 저장소는 비공식 학습 자료이며 Spring 프로젝트/Broadcom과 제휴·보증 관계가 없다.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors