IT회사 팀사람들과 스터디 하기, 강의 및 교재 선택부터, DDD 스터디 후기

     

2022년 두나무로 이직 후 회사 도메인 파악하랴 적응하랴 이것저것 하느라 스터디, 블로그, 유튜브와 같은 외부 활동을 거의 못했다. (는 핑계~)

 

나는 글을 보면서 혼자서 공부하는 걸 좋아하는 스타일인데, 영상보다는 역시 글이 편하다 ㅋㅋ 옛날사람인 듯

 

그래도 유튜브를 좀 찍으면서 영상과 친해져서 영상 보면서 공부하는 것도 어느 정도 익숙해졌다. 처음부터 혼자 하는 스터디를 선호한 건 아닌데, 외부 스터디모임 같은 걸 찾다 보면 언제나 시작은 으쌰!으쌰!이지만 진행 중에 흐지부지되는 경우가 많았기 때문!! 다들 그런 경험 있잖아요? ㅋㅋ 

 

2023년이 되면서 회사 업무에도 어느 정도 적응해 여유가 있을 무렵, 팀 사람들이 다 함께 스터디를 해보는 게 어떻겠냐고 얘기가 나왔다. 알고 보니 우리 팀에 스터디에 아주 진심인 사람(이라고 쓰고 제이콥이라고 읽는다)이 있었다. ㅋㅋㅋ 제이콥은 코틀린을 이용해 스프링을 개발하면서 DDD에 아주 진심인 개발자다. 

 

팀 사람들 모두 스터디에 대한 니즈를 느끼고 있었기 때문에, 2023년 첫 스터디 DDD를 시작하게 되었다.

 

DDD 스터디페이지 - 스터디 전설의 시작

 

 

 

스터디 진행방식

 

회사사람들과 스터디하는 것은 정말 매우 많은 장점이 있다.

  • 일단 도망가지 못한다 ㅋㅋ
  • 스터디 시간 조율이 편하다. (다들 회사에서 보니까)
  • 어느정도 검증된(?) 사람들이다. (외부 스터디 하면 모르는 사람들이랑 해야하자너,,)
  • 팀사람들이랑 친해진다.
  • ...

매우 많다고 했는데 이것밖에 생각 못한 나란 존재.. 아무튼 느낌상 엄청 좋은 것 같다 ㅋㅋ

 

우리의 스터디 리더 제이콥이 노션 페이지를 만들고 그라운드 룰(?)을 정했다. 공부하는 방법이나 다짐 같은 거..? 일단 우리는 각자 알아서 공부해 오고 일주일에 한 번 모여서 자신이 배운 점, 느낀 점 등을 토론하는 방식으로 진행했는데, 각자의 경험을 토대로 이야기하다 보니 아주 다양한 얘기가 나오게 되었다. 다들 어느 정도 연차가 있고 경험이 있다 보니, 다른 회사에서는 어떻게 했었고, 이런저런 이슈가 있었다는 얘기를 많이 들을 수 있었다. 스터디도 뭔가 부익부 빈익빈이라는 것을 느낀다. 경험이 많은 사람들과 하니 더 많은 걸 배울 수 있으니... ㅋㅋ 

 

학습방법은 일단 적당한 동영상 강의를 하나 찾아서 시청하고, 그다음 책을 읽으면서 공부하는 방법이다. 동영상 강의는 회사에서 지원해 주는 교육 플랫폼에서 찾아서 신청을 했다. 제목은 '도메인 주도 설계 기반 마이크로서비스 모델링'이다.

 

동영상 강의

일단 강의에 대한 리뷰는 아래에 적는 걸로...ㅋㅋ

 

교재는 도메인 주도 개발 시작하기 - 최범균, 한빛미디어

 

교재

강의와 교재는 스터디 대장 제이콥이 이미 시청하고 읽어본 것들 중에 하나를 정했다.

 

 

 

 

'인프런 - 도메인 주도 설계 기반 마이크로서비스 모델링' 스터디 후기

 

동영상 강의는 총 37강으로 9시간 정도의 분량이다. 우리는 강의를 이론과 실습 파트로 나누고 2주에 걸쳐서 진행하기로 했다. 이론 부분에서는 DDD에 대한 내용, MSA에 대한 내용, 설계에 대한 내용을 다루었다. 앞부분은 시스템 설계에 대한 내용이 많이 나왔는데, 대부분 아는 내용이라 빠르게 넘겼다. 

 

중반부에는 DDD에 사용되는 용어들이 나오기 시작한다. 바운더리컨텍스트나 이벤트 스토밍, 유비쿼터스 언어 등등 처음 보는 개념이거나 내용은 아는데 용어를 모르는 개념들이 많이 나왔다. DDD스터디를 하면서 좋았던 점 중에 하나가 이렇게 어렴풋이 알고 있던 개념들에 대한 용어를 팀 전체가 공유할 수 있다는 점이었다. 이렇게 팀의 공통 지식이 되면 나중에 커뮤니케이션할 때 코스트가 낮아지기 때문이다. 이런 생각을 하면서 갑자기 김춘수의 꽃이 생각난다. 갑자기?

내가 그의 이름을 불러주기 전에는
그는 다만 하나의 몸짓에 지나지 않았다.

내가 그의 이름을 불러주었을 때, 
그는 나에게로 와서
꽃이 되었다.

꽃, -김춘수-

 

나는 이과지만 문학소년이었던 시절이 있었다 ㅋㅋㅋ 뭔가 개념은 알고 있는데 용어가 생각이 안 나서 대화할 때 힘들 때가 있는데, 그럴 때 이름이 딱 생각나면 이런 느낌 아닐까? ㅋㅋㅋ

 

아무 생각 없이 코딩할 때,
이 코드는 코드 더미에 지나지 않았다.

내가 이 코드를 도메인 주도 설계라고 불렀을 때,
이 코드는 나에게 와서
DDD가 되었다.

DDD, -문규진-

🤣🤣🤣

 

 

강의영상 뒷부분에는 이벤트 스토밍을 직접 해보는 실습이 나오는데, 사실 이 부분은 자세하게 보지 않았다. 뭔가 실제로 이렇게 할 일이 없을 분더러, 예제가 너무 단순해서 우리 회사에 적용할 수 없다고 판단했기 때문에다.

 

공부를 하면서 영상이나 책을 볼 때, 무조건 맞다는 마인드를 갖는 것은 좋지 않다. 특히 IT관련 공부를 할 때는, 내가 배우고 있는 이 지식이 항상 옳다는 마인드를 버려야 한다. 상황에 따라 정답이 될 수도 있고 아닐 수도 있는 케바케가 많기 때문에, 항상 이게 항상 정답일까?라는 의문을 가지고 공부하는 걸 추천한다.

 

총 8시간 분량이지만 강의를 보면서 모르는 단어나 개념들을 구글링 하며 보다 보면 생각보다 시간을 많이 잡아먹는다. 2주로 나누길 잘한 것 같다. ㅋㅋ 

 

스터디 처음이라 다들 학습에 투자하는 시간을 모르기 때문에 너프 하게 2주로 했는데, 다음부터는 좀 더 빡세게 해도 될 것 같다. 

 

강의에 대한 평가는 음... 일단 강의 내용이 너무 올드하다. 마치 오래된 책에 나올법한 내용들로 구성되어 있고, 강의에서 사용하는 PPT 역시 너무 글씨만 많고, 글을 읽어주는 느낌이랄까? 강사도 뭔가 강의를 많이 해본 것 같은 느낌이 아니라 대기업 차장님 같은 분이 와서 얘기를 해주고 있다는 느낌을 많이 받았다. 뭔가 대기업에서 필수교육을 받아야 해서 억지로 끌려가서 영상을 시청하는 느낌.. 

 

IT라는 분야가 매우 젊어 보이지만, 아직도 이렇게 올드한 강의가 있고 강사가 있다는 것에 놀랍고, 이런 강의를 많이 보고 있다는 것에 놀랍다. 그리고 강사님 말하는 게 너무 어눌해서 졸리다 ㅋㅋ 뭔가 또랑또랑하게 얘기해 줘야 쏙쏙 들어올 텐데.. 나도 유튜브 찍을 때 잘해야겠다는 생각이 들었다. 

 

 

 

 

'도메인 주도 개발 시작하기 - 최범균, 한빛미디어' 스터디 후기

 

동영상 강의에 이어서 책 스터디를 진행했다. 아무래도 영상 강의보다는 책이 더 DDD스터디에 적합하다고 생각해서 강의로 일단 어느 정도 DDD에 친숙해지고 책으로 본격적인 공부를 해보자! 느낌이었다. 

 

책은 총 350페이지 정도 됐는데, 제이콥 선생님이 이 정도면 3주 컷이라고... 해서 3주 만에 끝냈다. 

제이콥 선생님의 스터디 스케쥴

책에서는 DDD를 적용한 스프링을 예제로 많이 사용하고 있다. 우리 팀에서는 자바나 스프링을 사용하지 않는 분들도 많았기에, 너무 스프링에 의존적인 내용은 스킵하고, 설계에 대한 부분만 토론을 많이 진행했다.

 

확실히 책으로 보니까 DDD에 대한 이해가 더 잘되는 느낌이었다. 내가 글이 더 편한 것도 있긴 한데, 아무래도 영상보다는 책이 이론적인 내용을 전달하는데 더 효과적인 것 같다. 반면 영상은 경험적인 내용을 전달하는데 효과적이라고나 할까? 아무튼 영상에서 봤던 바운더리컨텍스트나 애그리거트에 대해서 코드랑 같이 보니까 훨씬 이해가 잘 됐다. 

 

하지만 디자인 패턴에 대해서 나에 생각은, 사람들이 코딩을 하다가 편하게 코딩하는 방법을 찾아서 그것을 적용했고, 서로 공유하기 위해 이름을 붙인 것이라고 생각하기 때문에 DDD가 엄청 혁신적인 거나 대단하게 느껴지지는 않았다. 즉, '효율적으로 개발을 계속하다 보면, 최적화된 디자인으로 수렴한다'라고 생각하고 있다. 간혹 디자인 패턴이 모든 일에 정답인 마냥 디자인 패턴에 집중하는 경우를 볼 수 있는데, 주객 전도가 된 게 아닐지 생각된다. 디자인 패턴은 단지 일을 효율적으로 하기 위한 방법일 뿐이지 목적이 아니다. 

 

물론 이건 어디까지나 내 생각이다. ㅋㅋ

다르게 생각하는 사람들이 있을 수 있고, 내 생각이 정답이라고 주장하고 싶지는 않다. 다들 그들만의 생각이 있을 테니까- 

다만 생각 없이 맹목적으로 따라가는 건 조금 비판하고 싶을 수도... 

 

책 후반에는 완전히 스프링위주의 설명이 지속되는데, 나는 최근에 코틀린을 이용한 스프링을 공부도 해보고, 회사에서 관련된 업무도 해보아서 아주 재밌게 읽었다. 다만 책에는 자바로 되어있고, 옛날 버전의 코드라서 지금 사용하는 버전과는 많이 다르긴 했다. 역시 IT는 빠르게 변한다니까..

 

책은 거의 일주일에 150페이지씩 읽었는데, 책만 읽는 게 아니라 코드를 보거나 모르는 거 찾느라 시간이 더 많이 걸렸다. 하지만 책 읽는 거보다 스터디 시간에 더 많은 것을 배울 수 있는 시간들이었다. ㅋㅋ 

 

스터디시간 논의내용

 

특히 제이콥선생님이 요점만 딱딱 정리해 주기 때문에 책 보다 많은 것을 알게 되었고, DDD에 대한 경험이 있는 팀원도 많아서 다른 회사에서 어떻게 구현했는지, 어떤 방식으로 일했는지에 대한 내용을 많이 들을 수 있었다. 

 

 

 

 

DDD 스터디 후기,  DDD에 대한 생각

 

DDD를 스터디하면서 느낀 점은, DDD라는 게 뭔가 개발에만 한정된 내용이 아니라는 생각이 든다. DDD에서 핵심적으로 말하는 것은 도메인을 잘 정의해서 기획자와 개발자가 커뮤니케이션을 잘해보자~ 느낌이다. 유비쿼터스 언어라는 것도 결국에는 기획자와 개발자가 커뮤니케이션을 잘하기 위해 필요한 것이고, 도메인을 나누는 것도 업무를 진행할 때 어디를 손봐야 하는지 명확하게 알기 위함일 것 같다. 즉 DDD는 그냥 일을 잘하기 위해 회사차원에서 적용해야 할 정책인 것 같다. 

 

물론 개발적으로도 적용해야 할 내용들이 있긴 하다. 도메인 위주로 코드를 분리하고 서로에 대한 의존성 룰을 맞추는 등, 생각보다 많은 작업을 해줘야 한다. 이것 역시 개발 편의성을 위한 것이고, 나아가면 일을 효율적으로 하기 위함이라고 생각된다. 

 

아마 어느 정도 오래된 회사 같은 경우에는 DDD를 처음부터 생각하면서 만든 프로덕트는 없을 것이라고 생각된다. 대부분 기존의 프로덕트를 DDD를 적용해서 바꿔보자!라는 식의 프로젝트가 많을 것 같고, 실제로 적용 사례 레퍼런스를 보면 기존에 있는 프로덕트를 DDD로 적용해 보자!라는 내용이 많은 것 같다. 하지만 아직까지 회사차원에서 DDD가 풀로 적용된 곳은 없다고 한다.(제이콥피셜) 

 

아까 말한 것처럼 이건 개발자뿐만 아니라 회사에 모든 인원이 참여해야만 DDD를 적용할 수 있을 것 같다. 하지만 위에서 말한 것처럼 DDD가 정답은 아닐 것이다. 모든 사람들이 효과적으로 일하도록 노력한다면 DDD보다 더 최적화된 방법으로 일할 수 있고, 그게 DDD보다 더 좋을 수도 있다. 어쩌면 여러분이 하고 있는 일들에 이미 DDD가 적용되어 있을지도 모르는 일이다.

 

 

 

회사에서하는 첫 스터디였는데, 아주 대 만족이다 😊 

아무일 없다면 2023년 계속 진행되지 않을까? 싶다.

 

🙄🙄🙄  DDD 스터디하면서 찍은 VLOG영상 ㅎㅎ 

 

 

 

 

 

반응형

댓글

Designed by JB FACTORY