무진장 힘들었지만 무진장 성장한 개발 이야기
Medium
기다리던 이일민님의 시리즈 강의, "로드맵; 토비의 클린 스프링"의 첫 주제인 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
이 얼마전 공개되었다. 재작년 말 로드맵이 공개되었을 때 가장 관심이 갔던 주제였기에, 출시 소식을 듣자마자 구매했다. 하지만 늘 그렇듯 집중해서 봐야지 하는 마음에 차일피일 미루고만 있었다. 그러다 최근 이일민님께 "강의 수강이나 하시죠"라는 다정한(?) 압박 메시지를 받고서야, 지난 한 주간 시간을 내어 완강했다.
강의는 언제나처럼 이일민님 특유의 사려 깊고 친절한 설명으로 가득했다. 특히 라이브 코딩을 진행하는 방식은 감탄을 자아냈다. 현재 어떤 생각을 하고 있고, 어떤 의도로 다음 코드를 작성하는지를 차분히 설명하며 진행하는 모습을 보고 있으면, 어떻게 이런 수준의 강의를 만들어낼 수 있는지 놀라울 따름이다. 그 과정을 찬찬히 따라가다 보면, 마치 내가 이일민님이 된 것처럼 그의 사고 흐름을 그대로 느끼며 자바와 스프링으로 애플리케이션을 개발할 때 도메인 모델 패턴과 헥사고날 아키텍처를 어떻게 적용할 수 있는지를 경험하게 된다. 시간이 지나면 누구나 자연스레 잊어버리는 초심자의 어려움을 어쩌면 이리도 잘 기억하고 정확히 짚어주는지, 그 깊은 공감 능력에 다시 한번 감탄했다.
하지만 이 강의에서 기술적인 내용보다 더 인상 깊었던 것은, 전문가로서 기술을 대하는 태도와 학습하는 방법을 온몸으로 보여준다는 점이었다.
첫째는 기술을 어떻게 학습해야 하는가
에 대한 모범 답안을 제시한다는 점이다. 헥사고날 아키텍처를 설명할 때, 헥사고날 아키텍처를 처음 제안한 앨리스터 코번의 원문과 핵심 주장을 기반으로 내용을 전개한다. 너무나 당연한 접근법 같지만, 생각보다 많은 이들이 원천 기술을 만든 사람이나 조직의 1차 자료가 아닌, 2차, 3차로 가공된 콘텐츠를 통해 기술을 학습한다. 물론 가공된 콘텐츠가 더 이해하기 쉬울 수는 있다. 하지만 그 과정에서 원저자의 의도는 희석되고 다른 사람의 해석이 덧붙여질 수밖에 없다. 이 때문에 기술의 본질을 오해하는 경우도 종종 발생한다. 내가 평소 구성원들에게 "어떤 기술을 익힐 때는 반드시 공식 문서를 먼저 보라"고 권하는 이유와 정확히 같은 맥락이다.
둘째는 자신만의 논리를 갖추는 것
이 왜 중요한지 보여준다는 점이다. "Entity vs DTO" 수업에서 프리젠테이션 계층에서 엔티티를 사용하는 것이 왜 문제가 되지 않는지에 대한 자신의 견해를 하나하나 논리적으로 증명해 나간다. 개발자라면 어떤 기술적 결정을 내렸을 때, 그 이유를 타인의 권위(책, 블로그 등)가 아닌 자신만의 논리로 설명할 수 있어야 한다. 이 또한 모두가 당연하게 여기지만 실제로 해내는 사람은 드물다. 이일민님은 그 당연한 것을 어떻게 하는지 명확히 보여준다.
이일민님의 저서나 강의를 접할 때면, 나는 개발 지식뿐만 아니라 한 분야의 전문가로서 가져야 할 태도와 자세에 대해 참 많이 배우게 된다. 이번 강의 역시 기술적인 깊이는 물론, 그 너머의 것들을 곱씹어볼 수 있는 귀중한 시간이었다.
글이 길어져 강의의 기술적인 부분에 대한 이야기는 다음 파트가 출시되면 다시 한번 기회를 만들어보려 한다. (과연 지킬 수 있을지는 모르겠지만 말이다) 다만 도메인 모델 패턴
과 애플리케이션 아키텍처
에 대해 깊이 있는 이해와 함께 좋은 개발자의 태도를 배우고 싶다면, 주저 말고 이 강의를 수강해 보기를 강력히 권하고 싶다.
다음 내용이 궁금하다면?
이미 회원이신가요?
2025년 7월 20일 오전 8:26
어떤 서비스가 버그를 가진채로 출시되었고, 사용자들이 그 버그를 전제로 기능을 사용하고 있다면, 그리고 그 위로 너무 많은 새로운 기능들이 쌓여있다면 그건 버그가 아니라 스펙(기능)이라는, 언젠가부터 들었던 업계의 유명한 블랙 유머다.
... 더 보기자주 사용하는 공통기능을 하나의 모듈로 만들어 놓고, 필요할때 마다 참고 하는 성향이 있어서 개인적인 공간에 작업물을 정리 하거나, 나만의 모듈로 만드는 것을 종종 진행하고 있어요.
... 더 보기치
... 더 보기