flab 멘토링이 끝이났다. 멘토링을 하면서 나는 ottsharing과 momukgi 프로젝트를 가지게 되었다. ottsharing은 나와 함께하는 멘티와 github에 PR올리기와 서로의 코드방식을 맞추기 위한 기본 프로젝트이고, momukgi 프로젝트는 msa를 적용한 프로젝트이다. 멘토링이 끝나고 난 후, 내가 든 생각은
" ottsharing 프로젝트 너무 아쉬운데? 더 발전되었음 좋겠어!"
였다. 하지만 momukgi 프로젝트에 적용한 msa를 ottsharing에도 적용하기에는 너무 똑같고 새롭게 가고 싶다는 생각을 했고, 우선 내가 아무것도 모르는 상태에서 바로 프로젝트를 한다면 생각보다 발전하지 않을 것이라는 생각에 우선 한걸음 멈추었다.
그때 내가 읽게 된 책이 "객체지향의 사실과 오해"라는 책과 "도메인주도설계란 무엇인가?"라는 책이다. 이 책들을 읽고나서 "과연 내가 객체 지향을 추구하면서 프로젝트를 구성하였는가?"라는 생각이 많이 들었다.(이 책들에 대한 감상문은 후에 다시 글을 작성할 예정이다.) 그리고 ottsharing 프로젝트를 보니 정말 객체라는 것 자체를 고려를 전혀 하지 않았고 오직 데이터 중심으로 프로젝트를 구성하였기에 의존성이 엄청나게 강한 Monolithic한 아키텍쳐라는 것이 이제서야 보였다. 그렇다면 나는 ottsharing 프로젝트를 어떻게 구성해야 객체지향적으로 구성할 수 있을까? 난 도메인 주도 설계를 통해 그 목적을 이루고자 한다.
내가 요즘 다니고 있는 개발자 커뮤니티에서 오프라인적으로 ddd에 대한 이야기가 오갔고 오프라인 스터디를 모집한다는 소식에 바로 지원을 하여 들어가게 되었다. 이 스터디는 flab에서 지원하고 있어서 flab에 속한 멘토님 한 분과 나를 포함한 멘티 4명으로 이루어졌다. 이론적인 스터디보다는 프로젝트 중심 프로젝트로, 각자 가지고 있는 기존의 프로젝트를 ddd스럽게 바꾸는데 목적이 있다. 즉,기존의 프로젝트 구성을 멀티모듈화하여 의존성이 없도록하는 것을 목적으로 둔다. 또한, 프로젝트와 별개로 각자 "도메인 주도 설계 구현(Implementing Domain-Driven Design)"라는 책을 읽어야 한다.
이 스터디를 통해 내가 얻으려는 효과는
1) ottsharing을 멀티모듈화함으로써 의존성을 낮추고 객체지향스러운 아키텍쳐로 구성하여 프로젝트를 기존보다 발전된 구성이 되도록 한다.
2) 이 스터디를 통해 멀티모듈화가 된 후, MSA 아키텍쳐로 바꾸는 작업을 하는 것을 목표로 둔다.
3) DDD라는 도메인주도설계를 겪음으로써 나의 시야를 넓히도록 한다.
4) 다른 사람들과의 토론을 통해, 인사이트를 얻는다.
아직 초보다 보니 스터디를 하기 앞서
을 참고하고 시작하였다.