내용
- Spring에 주요 기능인 IoC, DI가 어떻게 생겼는지, 어떻게 동작하는지 이론뿐 아니라, 코드를 통해서 학습합니다. (시간이 된다면 AOP를 포함합니다.)
- Spring은 여러 모듈로 나누어져 있습니다. 그 중 Core와 Core에 의존된(Context, Bean) 모듈을 학습합니다.
- 우리가 자주 사용하는 Spring Web(MVC), Data, Batch, Boot... 등을 학습하지 않습니다. 이 여러 프로젝트를 기반하는 Core에 대해서 학습합니다.
목표
- 오픈소스 코드 읽기
- 코드를 읽는게 상당히 중요하다고 말하지만 실제로 계획적으로 읽기는 힘들기 때문에 이 스터디를 통해 읽는 방법을 익혀봅니다.
- 토론
- 읽은 코드를 토대로 토론을하고 코드 리뷰를합니다.
- 토론을 통해 선,후배 개발자가 서로 어떤 생각을 가지고 있는지, 왜 이런 구조가 탄생하게 됐는지 토론해봅시다.
- 공유
- 매주 발표자 또는 코드 리딩자를 선정해 발표나 Spring Core에 대한 구조를 문서화합니다.
- 가능하다면 code contribution도 해봅시다. 가능하다면...
- 오픈소스 코드 읽기
진행
- 일단 Spring 소스를 다운받아 셋팅합니다. (저는 Intellij 기준이지만 개인이 자주 사용하고 편한 IDE를 사용하면 됩니다.)
- Diagram과 소스를 통해 파악합니다.
- Diagram 같은 경우는 Tool을 사용하도록하며, 학습하며 여러가지 프로젝트 분석 Tool 사용 방법에 대해서도 학습이 될거라 예상합니다.
- 분석한 구조와 소스를 토대로 우리 나름대로 그 기능 예를 들면 IoC에 Bean이 저장되고 get 할 수 있는 간단한 기능을 코딩해봅니다.
- 크게 Core, Context, Bean 모듈에 대해서 살펴볼 예정입니다.
참석 요건
- Java 또는 객체지향 언어를 잘 이해하신 분이 스터디 진행에 어려움이 없을거라 예상합니다.
- Spring을 한번 이상 사용해 보신분.(셋팅 안해보셨어도 괜찮습니다.)
- 주도적으로 참여 가능하신분.
마무리
- 제가 상세한 그림을 그리지 못했습니다. 스터디 모임이 시작되면 다 같이 커리큘럼을 만들어 갈 예정이고, 다 같이 진행 사항에 대해서 이야기 할 예정입니다.
- 매주 발표자가 바뀔 예정(아닐 수도 있습니다.)이니 책임감을 갖고 스터디에 참가해 주시면 감사하겠습니다.
- 많은 지원 부탁드립니다.
참고로 저희 스터디에는 박재성님(javajigi)께서 스터디 멤버입니다!!!ㅋㅋ