2. 만들면서배우는 클린아키텍처
한 페이지 요약
• 책 분류
• 개발, 소프트웨어 공학
• 대상 독자
• 클린 아키텍처, 마이크로서비스 아키텍처, 리팩토링에 관심이 많은 자바
개발자
• 특징
• 클린 아키텍처를 실제로 구현하면 어떤 형태가 될까? 그 과정에서 무엇을
조심해야할까? 코드로 직접 확인해보자.
• 참고
• 오늘은 마지막에 도서 증정 이벤트가 준비되어 있습니다!
3. 만들면서배우는 클린아키텍처
이 책의 목차
클린 아키텍처를 코드로 구성하면 어떤 모습이 될까?
01장: 계층형 아키텍처의 문제는 무엇일까?
02장: 의존성 역전하기
03장: 코드 구성하기
04장: 유스케이스 구현하기
05장: 웹 어댑터 구현하기
06장: 영속성 어댑터 구현하기
07장: 아키텍처 요소 테스트하기
08장: 경계 간 매핑하기
09장: 애플리케이션 조립하기
10장: 아키텍처 경계 강제하기
11장: 의식적으로 지름길 사용하기
12장: 아키텍처 스타일 결정하기
4. 만들면서배우는 클린아키텍처
무엇이 이 책을 흥미롭게 만드는가?(1)
로버트 마틴(Robert C. Martin)의 클린 아키텍처(clean architecture) 책이 마음에 들었다면?
• 전통적인 계층형 아키텍처와 클린 아키텍처의 차이점을 잘 정리
• 마이크로서비스 아키텍처에 잘 어울리는 여러 가지 실전 기법: 육각형 아키텍처, 도메인 주도 설계
• 아키텍처의 요소를 어떻게 애플리케이션에 녹여낼지 구체적으로 설명
• 기술 부채와 관련해 의식적으로 부채를 일으키고 나중에 갚는 방법을 아키텍처적으로 설명
• 온라인 송금 예제 애플리케이션인 BuckPal을 차근차근 만들어가면서 아키텍처 개선 방안을 제시
• 전체 BuckPal 예제 코드 제공: https://github.com/wikibook/clean-architecture
5. 만들면서배우는 클린아키텍처
무엇이 이 책을 흥미롭게 만드는가?(2)
부담없이 빠르게 읽을 수 있게 구성되어 있으면서도 완결된 내용을 다룸
• 본문이 144페이지 정도이며, 각 장이 짧게 구성되어서 부담없이 읽을 수 있음
• 아키텍처 스타일에 대해서 괜찮은 결정을 내리기 위한 경험치를 높이게 구성 → 전통적인 계층형 아키텍처로 작업하는 분들도 이 책에서
얻어갈 내용이 많다!
• 클린 아키텍처와 마이크로서비스 아키텍처와 리팩터링(w/ 테스트)에 대한 내용을 하나로 연결하는 마법을 보여준다
• 경계를 어떻게 나누고 매핑을 어떻게 해야할지 세부적인 지침을 제공한다
• 다이어그램이 풍부하고 이해하기 쉽다(다음 페이지 참고)
7. 만들면서배우는 클린아키텍처
대상 독자
백엔드 자바 개발자
• 주의: 초급서 아님!
• 스프링 프레임워크를 기반으로 의존성 역전과 주입 원칙을 이해하고 있으며 애너테이션(annotation)
등 자바의 여러 기능에 대해 알고 있어야 한다
• 로버트 마틴의 클린 아키텍처 책을 읽고 오는 편이 좋다
• 개발자 뿐만 아니라 아키텍처 설계를 담당하는 아키텍트도 이 책을 읽으면 큰 도움이 될 것으로 보임
8. 만들면서배우는 클린아키텍처
결론
***** 좋은 아키텍처를 기반으로 좋은 소프트웨어를 만들고 싶은 분들께 이 책을 추천한다
• 도대체 클린 아키텍처를 어떻게 만들어야 할지 막막했던 분들이라면 이 책을 읽고 나서 뭔가 길이 보일 것이다
• 육각형(hexagonal) 아키텍처를 실제 코드에 어떻게 적용하는지 확실하게 보여준다
• 단, 앞서 이야기했지만 얇고 코드가 간단하고 해서 결코 초급서는 아니며 어느 정도 전통적인 계층형 아키텍처에 익숙하거나
마이크로서비스에 익숙해야 이 책에서 무엇을 이야기하고 있는지 이해가 간다는 점에 주의하길…
• 팀 내에서 뭔가 기준점을 잡아야 하는 경우 이 책에서 제시하는 현실적인 조언이 큰 도움이 될 것이다
• 책을 보내주신 위키북스 담당자분께 감사 말씀드립니다.
9. 만들면서배우는 클린아키텍처
하나 더: 이벤트!
위키북스와 함께 하는 도서 증정 이벤트
• 총 다섯 분께 <만들면서 배우는 클린 아키텍처> 책을 선물로 드립니다.
• 응모 방법
• 2021년 12월 6일(월) 오후 11시 30분까지 유튜브 댓글로 이 책을 읽고 싶은 이유를 적어주시면 됩니다.
• 당첨자 추첨은 12월 7일(화) 오후 10시에 생방송으로 진행할 예정입니다.
• 좋은 선물을 받을 확률을 높이는 보너스(여러 번 진행해보니 확실히 효과가 있습니다): 댓글을 다실 때, 자신의 SNS에
이 방송 URL을 공유한 다음에 SNS 좌표를 올려주시면 됩니다!
• 이벤트를 위해 도서를 협찬해주신 위키북스 담당자분께 다시 한 번 감사 말씀드립니다.
10. 발표자 소개
기술 배경
전문 검색 엔진, 임베디드 시스템(리눅스 커널 디바이스 드라이버), 빅데이터/인공지능 연구 개발,
고성능 고가용성 데이터베이스
주요활동
IT 전문서 번역 (클린 코드, 피플웨어, 해커: 광기의 랩소디, 게임 엔진 블랙 북 등)
개발강의 (삼성전자, SK C&C, 삼성SDC, 현대자동차 기술 세미나와 교육)
활동채널
블로그: https://jhrogue.blogspot.com
슬라이드 셰어: https://www.slideshare.net/jrogue/presentations
유튜브: https://www.youtube.com/c/박재호dev
문의 jrogue@gmail.com
박재호