본문 바로가기
도서 리뷰

[도서 리뷰] Fundamentals of Software Architecture 소프트웨어 아키텍처 101

by 이든Eden 2022. 3. 27.
이 서평은 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


 

매달 말 다음 달에 리뷰할 도서를 고르라고 한빛 미디어에서 메일이 온다. 난 이 책을 골랐던 것을 잊었다. 머신러닝 엔지니어인 나에겐 아직은 어색한 책이다. 게다가 나는 3학년 2학기가 끝나자마자 취업을 했고 거의 학교를 1년 대충 다녔는데 하하 심지어 한 학기는 월-목 일하고 금요일에 강의를 몰어넣어서 금요일마다 학교에 갔다 4학년에 배우는 소프트웨어 공학 등의 수업을 못들었기 때문에 소프트웨어 아키텍쳐란 딥러닝 모델 아키텍쳐만 보던 나에겐 더욱이 낯설었다.

 

나도 컴퓨터를 사용하는 일종의 소프트웨어를 다루는 엔지니어니까 도움이 될 것 같았다. 하지만 역시 처음보고 듣는 이야기는 어려웠다. 물론 마이크로 서비스 정도는 대충 알고 있다. 일하면서 약간 주워들은 게 있어서 그렇다.

 

이 책의 시작은 일단 소프트웨어 아키택쳐가 무엇인지부터 시작한다. 그리고 점점 더 어려워졌다.. ㅎ 아키텍처 특성, 아키텍처 패턴, 컴포넌트 결정, 아키텍처 도식화 및 프레젠테이션, 진화적 아키텍처 등 다양한 주제가 나온다.

 

예전에 인터넷 어디선가 "마이크로서비스가 다 좋은건 아니다!" 라는 것을 들었다. 책에서 이야기하는 마이크로서비스 아키텍쳐는 요즘 유행하는 스타일이라고는 얘기하였지만 역시 제일 좋다 아니다를 얘기하진 않았다. 이처럼 다양한 아키텍쳐 스타일에는 유행은 있으나 더 좋은 것은 없고 역시 서비스에 알맞는 사이즈가 최고가 아닌가 싶었다. 물론 아키텍처 이야기는 아니지만 다 현재 상황에 맞는게 있으니 예전엔 어느 회사는 뭐 쓴대~ 이러면 부러웠는데 이제는 꼭 부럽지만은 아닌 것 같기도하고 아닌가 부럽다 

 

책을 읽으면서 뭣도 모르는 나도 그림으로 '오호 이런거구나' 싶게 아키텍처 토폴로지를 그림으로 잘 표현해놓았다.

(왼) 서비스 기반 아키텍처의 기본 토폴로지, (오) 오케스트레이션 서비스 지향 아키텍처의 토폴로지

 

그리고 또 다른 재미있었던 점은 실제로 어떤 서비스를 위해 사용되는 아키텍처인지 구현 예시가 있다. 난 백엔드 개발자나 소프트웨어 아키텍트가 아니지만 뼛속깊이 개발자인지 어쩐지 이거 만드려면 어떻게 해야되나? 뭐 쓰면되나? 혼자 생각할 때가 있는데 이 책을 읽으면 이런 궁금증이 풀리지 않을까 싶다. 그 중 관심이 갔던게 콘서트 티켓 판매 시스템인데 동시 요청수가 많은 콘서트 티켓 판매 시스템을 위해 공간기반 아키텍처를 사용하는 것이 좋다는 것이었다. 읽다보니 이선좌(이미 선택된 좌석), 이결좌(이미 결제된 좌석)로 나를 괴롭히는 시스템들이 어떻게 생긴 아키텍처를 사용하고 있을지 상상해보았다.

 

 

이 책을 머신러닝 엔지니어들에게 추천할 만큼.. 이해하지는 못했지만 내가 만든 딥러닝 모델을 서비스하게 만들어주는 더 큰 뒷면의 톱니바퀴가 어떻게 구성되어 있는지 알고싶다면 추천한다!