-
-
헤드 퍼스트 소프트웨어 아키텍처 - 효과적인 시스템 설계를 위한 사고법, 연습문제 50개 수록 ㅣ Head First 시리즈
라주 간디 외 지음, 유동환 외 옮김 / 한빛미디어 / 2025년 9월
평점 :
"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

소프트웨어 아키텍처에 관련된 외국 영상 중 인상 깊게 본 것은 빨간 안경테를 쓴 닐 포드 작가님이 설명한 게 기억에 가장 남습니다. 그의 설명은 전통적 고정된 아키텍처 설계를 보다 빅테크 기업들이 고민하는 적응형, 진화형 시스템 설계에 대해 실무 아키텍처 담당자와 개발자의 역할 및 협업 방식에 대해 상세히 알려 줬기 때문입니다. 이후 국내에서 그의 번역서는 한빛미디어를 통해서 읽고 있는데요. 이번 신간은 헤드 퍼스트 소프트웨어 아키텍처로 돌아왔습니다. 책은 기존의 책들과 결이 조금 다릅니다. 딱딱한 학교 수업의 교재는 아닙니다. 헤드 퍼스트 시리즈 자체의 미국 개발자 유머가 녹여져 소프트웨어 아키텍처에 대해 쉽게 풀어쓴 책입니다. 그럼 기억에 남는 2가지를 자세히 알아보도록 하겠습니다.

1) 소프트웨어 아키텍처란?
국내에서는 아파트가 붐이라 집을 짓는 일에 대해서 공감이 가지 않을 수 있습니다. 다만 집을 리모델링 하는 관점으로 아키텍처를 바라 보면 좋은데요. 이때 건축 계획은 집의 구조를 정의하는 일부터 시작합니다. 예를 들어 침실, 욕실 등을 나누듯이 말이죠. 그럼 소프트웨어 아키텍처도 마찬가지로 소프트웨어 구조를 정의 합니다. 보통 이걸 다이어 그램을 통해서 사용자 인터페이스, 데이터베이스 테이블, 통신프로토콜(API 등)을 작성합니다. 결국 작성하다가 보면은 확장성, 테스트 용이성, 가용성 등을 고민하게 될 것입니다.

2) 아키텍처 변천사
소프트웨어 아키텍처는 시스템의 규모와 비즈니스 변화에 맞춰 꾸준히 발전해왔습니다. 초기에는 대부분 레이어드 아키텍처를 사용했습니다. 사용자 인터페이스, 비즈니스 로직, 데이터 접근 등 역할별로 구분해 개발하는 방식으로 구조가 단순하고 이해하기 쉬워 소규모 시스템에 적합합니다. 하지만 시스템이 커지고 변화가 빨라지면서 일부 기능을 수정할 때 전체에 영향을 주는 문제가 생겨 유지 보수가 어려워졌습니다. 이 한계를 보완하기 위해 모듈러 모놀리드 아키텍처가 등장했는데요. 시스템을 도메인이나 기능 단위로 나누어 각 영역을 독립된 모듈처럼 관리하는 방식입니다. 덕분에 유지보수와 확장이 쉬워졌지만, 여전히 전체를 한 번에 배포해야 한다는 제약은 남았습니다. 이를 근본적으로 해결한 것이 마이크로서비스 아키텍처입니다. 시스템을 완전히 독립적인 여러 서비스로 분리해 각 서비스가 개별적으로 배포, 확장, 운영되도록 한 구조입니다. 다만 대규모 시스템에서 유연성과 확장성이 뛰어나지만, 서비스 간 통신과 데이터 일관성 관리 같은 새로운 과제도 생겼죠. 결국 소프트웨어 아키텍처의 발전은 시스템 복잡성 증가와 빠른 변화에 대응하기 위한 자연스러운 진화 과정이라고 볼 수 있습니다.