저작권 안내: 저작권자표시 Yes 상업적이용 No 컨텐츠변경 No

스프링5 입문

JSP 2.3

JPA 입문

DDD Start

인프런 객체 지향 입문 강의


2016-07-16 DDD Start 수다 세미나 발표 영상




Posted by 최범균 madvirus

댓글을 달아 주세요

DDD Start 부록 모임 발표자료.




Posted by 최범균 madvirus

댓글을 달아 주세요

  1. MJC 2016.07.22 02:36 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.

    여기저기서 책 소개를 보고 구매를 고려중입니다.

    책 목차를 보니까 DDD 전체가 아닌 코딩 부분인 tactic 부분만 있는거 같은데요...
    Eric Evans가 자신의 책에서 tactic 부분을 앞부분 챕터에 배치한것이 가장 큰 실수라고 했고..그것을 보완하기 위해 Vaughn Vernon의 속칭 빨간책에서는 tactic 부분은 약간 뒤로 밀려놨습니다. 두 저자 모두가 DDD의 핵심은 strategy라고 계속 강조를 하는데 DDD Start에서는 strategy 부분이 아예 통째로 다 빠진거 같습니다.

    특별한 이유가 있나요? 슬라이드를 보면 또 아닌거 같은데..목차만 보면 그런 느낌이 듭니다.

    한글책이 나왔다는 소식에 읽어보려고 하는데 의아해서 질문 드립니다.

    • 최범균 madvirus 2016.07.25 17:51 신고  댓글주소  수정/삭제

      안녕하세요, MJC님.
      말씀하신 것처럼 이 책은 tactic 위주로 구성이 되어 있고 strategy에 해당하는 내용은 9장에 갼락하게 나와 있습니다.

      이렇게 구성한 이유는 이 책이 DDD에 입문하는데 도움을 주는 징검다리로 사용하기 위함입니다.

      evans나 vernon의 책이 매우 훌륭한 책이지만 그 책을 어려워하는 분들이 많았기에 입문자가 조금 쉽게 DDD에 접근할 수 있는 책이 있었으면 좋겠다고 생각했고, 그 어려워하는 것 중에 구현 관점에서 이 책을 구성하게 되었습니다.

      이를 통해 DDD에 관심을 유발하고, 이후에 더 깊게 빠지고 싶은 분들이 자연스럽게 저 책들로 연결되기를 바라고 있습니다.

      그러다보니 이미 DDD에 익숙하신 분들은 이 책보다는 evans의 책이나 다른 깊이 있는 책을 한번 더 읽는게 좋습니다.

  2. MJC 2016.07.26 04:10 신고  댓글주소  수정/삭제  댓글쓰기

    답변 감사드립니다.

    혹시 strategy쪽으로도 책을 내실 생각이 있으신가요?

    개인적으로 접근하기에는 아무래도 tatic위주면 코드로 빨리 시작할수있고 해서 좋은데..아무래도 DDD를 팀 혹은 회사 전체에 적용하려면 strategy중요한데...이 부분이 사실 쉽지가 않더라구요..경험이 많은 개발자들은 evans나 vernon의 책을 봐도 되겠지만 신입의 경우는 쉽지가 않더군요. 아무래도 한글이 있으면 많은 도움이 될거같습니다.

스타트업 전성시대다. 미국은 말할 것도 없고 전세계적으로 스타트업 열풍이 거세다. 이런 흐름에 맞춰 창업을 생각하는 사람에게 도움이 될 만한 책이 나왔다. 바로 "룰 메이커"다.



창업자를 위한 멘토링


처음 창업할 때 멘토만큼 소중한 존재가 또 있을까? 경험에서 우러나오는 멘토의 이야기는 뼈가 되고 살이 될 것이다. 이런 멘토의 이야기를, 그것도 20 여명의 멘토로부터 이야기를 들을 수 있는 책이 바로 "룰 메이커"이다. 이 책은 스타트업과 관련된 사람들의 이야기를 인터뷰 형식으로 전달하고 있다. 책의 저자들이 인터뷰어로 나섰는데, 이들 역시 새내기 창업자들이다. 창업자가 창업자를 인터뷰를 하기에, 스타트업을 위한 많은 조언을 들을 수 있다.


인터뷰이는 창업자, 투자자, 교수 등 다양한 인물로 구성되어 있다. 각자 자신의 관점에서 창업을 위한 '룰'을 제시한다. 창업자는 사업이 성공하고 실패하는 과정에서 얻은 교훈을 말해준다. 정말 알토란같은 경험을 공유하고 있다. 투자자는 투자를 결정할 때 무엇을 중요하게 생각하는지 알려준다. 예비 창업자들에게 좋은 지침이 된다.


실리콘밸리 사람들


IT를 하는 사람에게 미국, 그 중에서도 실리콘밸리는 선망의 대상이다. 인재가 모여들고, 새로운 아이디어가 매일 매일 생겨나고, 거대한 부를 안겨주는 곳. 책은 이 실리콘밸리를 중심으로 이야기를 풀어간다. 인터뷰이를 섭외하는 과정을 통해 실리콘밸리의 열린 문화를 느낄 수 있고, 창업자의 고민, 노력, 성공담, 실패담에서는 그들의 열정을 느낄 수 있다. 또한, 실리콘밸리에서 무언가를 하고 있다는 데서 오는 자부심과 자신감을 엿볼 수도 있다. 이런 문화, 열정, 자신감이 실리콘밸리를 있게 한 원동력은 아닐까?


국내 현실에 대한 아쉬움


책을 읽다보면 창업자의 부모가 창업을 한 경우가 많고, 창업자 다수가 상위 대학 출신인 경우가 많음을 알 수 있다. 그리고 이들이 다시 투자자가 되어 그들과 같은 다른 창업자에 투자를 한다. 이는 역으로 한국에 있는 나의 현실을 되돌아보게 만든다. 한국의 개발자 사이에선 흔히 '치킨집 수렴 공식'이란게 존재한다. 잘 나가든 못 나가든 개발자가 결국엔 치킨집을 차린다는 자조섞인 공식이다. 그래서일까? 책을 읽는 동안 실리콘밸리의 그들이 부러우면서도 가슴 한 켠으로는 웃기면서도 슬픈 공식이 떠도는 한국의 현실에 대한 아쉬움이 커져만 갔다.


궁금한 한국의 창업자 이야기


실리콘밸리의 '룰'을 이야기하는 책을 읽다 보니, 한국의 '룰'을 만드는 사람들의 이야기가 궁금해졌다. 한국도 몇 해 전부터 많은 스타트업이 생겨나고 있다. 썬데이토즈, 우아한형제들처럼 크게 성장한 국내 기업도 생겨났다. 쿠팡처럼 미국에 본거지를 둔 기업도 한국의 고객을 감동시키고 있다. 한국에서 출발한 기업이 실리콘밸리에 진출하는 사례도 생겨나고 있다. 스타트업을 위한 정부 지원이 늘어나고 있고, 투자 문화도 점점 좋아지고 있다. 이들이 전하는 한국의 스타트업 이야기가 나온다면 한국에서 창업에 도전하는 이들에게 큰 도움이 되지 않을까란 생각을 해 보았다. 이 책의 후속 버전을 기대해본다.



Posted by 최범균 madvirus

댓글을 달아 주세요

코드가 좋은지 나쁜지 어떻게 알 수 있을까? 코드의 신이 내려와 모든 코드를 다 훑어보고 이 코드는 100점 만점에 85점이다라고 말 해주면 좋겠지만 그런 일을 일어나지 않는다. 코드의 품질을 확인하려면 몇 가지 기준에 따라 코드를 분석하고, 그걸 기준으로 코드 품질을 추정해야 한다. 예를 들어, 이름과 실제 구현이 일치하지 않는 메서드의 비율이나 중복된 코드의 비율과 같은 값을 구하고 이를 이용해서 코드 품질에 대해 논의할 수 있다.


이런 코드 품질에는 네이밍과 같은 정성적인 품질과 중복된 코드 비율과 같은 정량적인 품질이 있다. 정성적인 품질은 개발자가 직접 분석을 해야 하지만, 정량적인 품질은 기계의 힘을 빌려 측정할 수 있다. 예를 들어, 조금만 코드가 커져도 사람이 중복된 코드 비율을 구하는 것은 불가능하지만 기계는 짧은 시간에 처리할 수 있다. 이런 정량적인 품질을 측정할 때 사용할 수 있는 다양한 도구가 존재하는데, 그 중에서 현재 널리 쓰이는 것을 꼽자면 소나큐브를 들 수 있다. 그리고, 오늘 살펴볼 '코드 품질 시각화의 정석'이 소나큐브를 다르는 책이다.


품질에 대한 이해를 도와줌


이 책이 단순히 소나큐브의 사용법만 안내하고 끝났다면 책의 가치가 떨어졌을 것이다. 소나큐브를 사용하는 이유는 결국 코드의 현재 품질을 수치화해서 보여줌으로써 품질을 관리하기 위함이다. 코드의 품질이 의미하는 것, 코드 리뷰가 무엇인지 등에 대한 이해가 없으면 소나큐브가 제공하는 기능을 제대로 활용할 수 없다.


이 책은 소나큐브를 제대로 활용할 수 있도록, 중요한 개념이나 활동에 대한 내용을 제공한다. 빙산의 일부에 불과한 기능 적합성뿐만 아니라 품질과 관련된 나머지 영역에 대해서도 언급하고 있다. 예를 들어, 1장에서는 품질에 대한 기초 지식을 제공하며, 6장에서는 코드 리뷰 활동에 대한 이해를 돕는다. 물론 이 책은 코프 품질 자체에 대한 책은 아니므로 이 책만으로 품질이나 리뷰를 완전히 이해할 순 없지만, 적어도 소나큐브를 잘 활용할 수 있는 지식은 쌓을 수 있다.


품질 관리에 꼭 필요한 기능 소개


코드 품질을 관리하는데 필요한 기능이 있다. 품질 게이트, 품질 프로파일, 이슈 관리, 디퍼런셜 뷰 등 코드 품질을 관리하는데 핵심이 되는 소나큐브의 기능을 설명하고 있다. 이런 것 중에 하나라도 빠졌다면 매우 아쉬웠을 것이다. 


따라할 수 있는 구성


뭐니 뭐니 해도 도구를 익히는 가장 좋은 방법은 직접 해 보는 것이다. 소나큐브와 같은 도구를 사용할 때 가장 어려운 것 중 하나가 바로 설치 과정이다. 이 책은 독자들이 따라해 볼 수 있도록 16장부터 소나큐브 설치, 코드 분석 과정을 예제를 이용해서 차례대로 설명하고 있다. 독자가 OS 문제 때문에 실습에 어려움을 겪지 않도록 하기 위해, 버추얼박스를 이용해서 우분투로 환경을 맞춘 점이 눈에 띈다.


CI 도구인 젠킨스와 연동을 추가한 것도 좋았다. 소나큐브를 독자적으로 사용하기 보다는 지속적 통합 과정의 한 축으로 품질 관리를 사용하기 때문에, 젠킨스와 같은 CI와의 연동은 필수나 다름없다. 이런 점을 놓치지 않고 책 속에 녹여 넣었다. 젠킨스뿐만 아니라 인기있는 IDE인 인텔리J와의 연동 부분을 추가한 것도 매력적이다.


소나큐브를 다루는 유일한 국내서


IT 분야의 번역서를 읽다보면 어색한 문장이나 오역 때문에 읽기 힘든 경우가 자주 발생한다. 다시 원서를 사서 말이 안되는 부분을 번역서와 대조하면서 보는 경우도 있다. 이 책에는 그런 문제가 없다. 이 책이 바로 국내서이기 때문이다. 소나큐브를 다루는 책 중에서 국내서는 이 책이 유일하다. 사실 범위를 넓혀 한글로 된 책 중에서도 이 책이 유일하다. 한국인 저자가 한글로 쓴 책이라는 점은 IT 서적에선 큰 장점이다.


추가로 넣었으면 하는 부분


이 책의 개정판이 나온다면 다음 내용을 추가했으면 하고 바래본다.

  • 그래들 프로젝트 연동 : 책에서는 메이븐과 앤트 러너를 소개하고 있는데, 그래들로 구성된 프로젝트를 위한 분석 방법도 추가했으면 하는 바램이 있다.
  • 윈도우 실습 환경 : 버추얼 박스 자체에 우분투를 설치해서 진행하는 것이 좋긴 하지만, 아직 윈도우 환경에서 개발을 진행하는 개발자 수가 더 많으므로 윈도우 실습 환경을 추가해주면 좋을 것 같다.
몇 년 전의 일이다. 지인 개발자와 대화를 하면서 처음으로 소나큐브를 알게 되었다. 코드 리뷰를 하는데 소나큐브를 쓴다는 것이었다. 지인이 있는 인터넷 서비스 회사는 규모가 큰 국내 기업이었는데, 코프 품질의 중요함을 아는 조직은 이렇듯 소나큐브를 이미 활용하고 있었다. 코드 품질을 관리하는 도구는 많지만 그 중에서 하나를 써야 한다면 소나큐브를 고르자. 이미 많은 조직에서 소나큐브를 사용하고 있다. 그리고, 고민하지 말고 '코드 품질 시각화의 정석'을 읽자. 소나큐브를 잘 활용할 수 있게 될 것이다.


Posted by 최범균 madvirus

댓글을 달아 주세요