Spring Boot의 DI·컴포넌트 스캔·AOP를 직접 만들어보는 스터디, 같이 하실 분
❓ 무슨 프로젝트 인가요?
어느 선배가 그러더군요.
"Spring Boot를 제대로 공부하려면 그 코드를 직접 뜯어보는 게 제일 빠르다"고요.
그 말이 계속 남아서, @Component 하나 붙이면 알아서 동작하는 것들을 우리 손으로 한 번 만들어보기로 했습니다.
개념으로만 알고 있던 걸 코드로 옮기면 뭐가 다르게 보이는지 궁금한 분을 찾습니다.
🔍 무엇을 만드나요
1차 목표는 아래 세 가지입니다.
IoC 컨테이너 / DI
빈을 등록하고 의존성을 주입하는 컨테이너.
3단계 캐시로 순환 참조를 푸는 방식, 그리고 왜 생성자 주입 순환 참조는 그 방식으로도 못 푸는지를 직접 구현하며 확인합니다.
컴포넌트 스캔 / 애노테이션 메타데이터
클래스패스를 뒤져 빈 후보를 찾는 과정을 리플렉션 방식과 ASM 바이트코드 방식 두 가지로 만들어 직접 비교합니다.
AOP / 프록시
JDK 프록시와 CGLIB로 프록시를 만들고, @Transactional이 왜 가끔 안 먹는지(self-invocation)를 직접 재현해봅니다.
🗓 6개월 로드맵 (예상이며, 변경될 수 있음)
9월 — 킥오프, Spring 원본 소스 함께 읽기, 범위 합의
10~11월 — IoC 컨테이너 / DI
12월 — 컴포넌트 스캔 / 애노테이션 메타데이터
1~2월 — AOP / 프록시
2월 말 — 원본과 비교·측정, 문제점 정리, 다음 범위 결정
🙋 이런 분을 찾습니다
Spring Boot를 알고 있는 분이면 누구나 참여 가능합니다.
Spring Security나 Spring Test 경험이 있으면 더 좋지만, 필수는 아닙니다.
자격 요건보다 끝까지 같이 뜯어볼 의지가 더 중요합니다.
🙂 솔직하게 말씀드리면
이 프로젝트를 기획한 저는 실무 경력이 없습니다. Spring Boot로 앱을 몇 개 배포해본 정도이고, 컨테이너나 AOP 같은 핵심 동작은 개념으로만 알고 있습니다. 그래서 이건 제가 가르치는 자리가 아니라, 저도 같이 코드를 뜯어보는 자리입니다. 그러니 "내가 아직 잘 몰라서" 하는 걱정은 안 하셔도 됩니다. 부담 없이 신청해주세요.
📚 미리 보면 좋은 것
아래 두 저장소는 우리가 만들 것과 결이 비슷한 미니 Spring 구현체입니다. 지원 전에 하나만이라도 훑어보고 오시면 첫 모임이 훨씬 수월합니다.
tiny-spring (링크: https://github.com/code4craft/tiny-spring) — git tag가 곧 학습 단계. 태그 순서대로 checkout하며 읽으면 됩니다.
mini-spring (링크: https://github.com/DerekYRC/mini-spring) — 순환 참조까지 다루는 3단계 구성.
💬 진행 방식
디스코드로 소통합니다.
프로젝트가 잘 진행되면,
여기서 그치지 않고 확장(DispatcherServlet, 자동 설정, 테스트 지원 등)해서
우리만의 Spring Boot를 만들어보는 것도 생각하고 있습니다.
📮 지원 방법
관심 있으신 분은 1pq029@gmail.com 으로 신청해주세요.