[Review] Fundamentals of Software Architecture - 소프트웨어 아키텍처 101


Fundamentals of Software Architecture - 소프트웨어 아키텍처 101

img

이 책을 신청했을 때는, 흔히 소프트웨어 공학 과목에 등장하는 소프트웨어 아키텍처 패턴에 대한 내용이 나올 것이라 기대했다.

하지만, 이 책은 비단 software 뿐만 아니라 조금 더 상위 시스템을 구측하고 설계하는데 필요한 지식들이 담겨있었다.

흔히들 개발자의 명서라고 말하는 클린 코드, 클린 아키텍처와 결을 나란히 한다고 생각한다. 개발자가 흔히 겪을 수 없는 소프트웨어 시스템 아키텍처 설계에 대한 무수한 팁들과 모호한 개념에 대한 새로운 정의, 그리고 이해하기 쉬운 그림과 설명이 담겨 있기 때문이다.

크게 4가지 파트로 구성이 된다.

솔직히 말하면, 책 내용이 어려웠다. 왜냐.. 나는 아직 초보 개발자와 시니어 개발자의 사이에 있기 때문이다. 아직 큰 그림을 보고 설계하기엔 멀었다는 생각이 든다.

훗날 시니어 개발자가 되어 나의 모듈을 이끄는 업무 리더가 된다면 이 책을 꼭 다시 펼쳐보겠다.

Part 1 기초

업무를 하다보면, 트레이트오프 상황에 대한 많은 고민이 있을 것이다. 아키텍처는 모든 게 다 트레이드오프 입니다. 라는 구절이 있다. “

“A를 포기하고 B를 선택해야하는 것인가…” “A를 선택했다면 그 이유는?”

우리는 항상 상황을 분석하고 최적의 선택을 해야한다. 소프트웨어 아키텍처가 그것이다. 그 시스템의 트레이드오프를 분석하고 주어진 상황에서 가장 좋은 선택을 해야한다.

이런 좋은 선택을 하기위한 마인드와 구체적인 상황에 대한 설명이 주어진다.

또한 아키텍처의 특성(~~성 으로 끝나는 성질)을 구분짓고 정의하고 예시를 들며 다양한 방면을 고려할 수 있게 도와준다.

Part 2 아키텍처 스타일

아키텍처 패턴에 대한 내용이다. 패턴을 카테고라이징하여 장/단점을 구분하고 각각의 토폴로지가 뭔지, 서비스 설계도는 어떤건지를 설명한다.

레이어드 아키텍처 스타일, 파이프라인 아키텍처 스타일, 마이크로커널 아키텍처 스타일, 서비스/이벤트/공간/오케스트레이션 기반 아키텍처 스타일에 대해서 배울 수 있다.

Part 3 테크닉과 소프트스킬

해당 장은 아키텍트답게 사고하는 방법과 팀원들을 이끄는 소프트한 스킬에대한 내용이 담겨있다.

뭔가 외국 기업에서 진행되는 아키텍처 결정 레코드(ADR)이 어떻게 진행되는지 엿볼 수 있었다.

아무래도 대기업에서는 소프트웨어 시스템이 다양하고 복잡하고 규모가 크기때문에 이런 레코드를 통해 관리를 하는구나… 생각해봤다.

해당 장은 IT 도서를 읽는 것보단 자기계발 서적을 읽는 듯 했다. 선배 개발자가 남긴 조언이 많기 때문에 재밌게 읽을 수 있었다.

총평

경력 10년 이상의 실무자가 읽으면, 도움이 가장 많이 될 것 같다. 풋내기 개발자인 나는 이해할 수 없었지만, 업무를 오래 해본 분들이라면 충분히 공감할 것이라고 생각한다. 훌륭한 아키텍트가 되기 위한 필수 도서라고 생각하며 책을 읽으면서 더 열심히 해야겠다는 다짐을 하게 된다.

<이 리뷰는 한빛미디어 ‘나는 리뷰어다’로 부터 책을 지원 받아 작성되었습니다>




© 2020. by lsh110600

Powered by aiden