계층 아키텍처: 복잡성을 층층이 나누어 관리하기
4장의 요구사항 분석은 기획자의 역량이었고, 5장은 개발자의 역량이기에 개발적인 언어가 많이 사용되었다. 시스템적 구조를 알고 싶다면 조금 어렵지만 알아두면 도움이 될 수 있다.
AI가 코드를 생성해 주는 시대가 되면서 점차 개발자의 핵심 역량이 변할 것이다. 코드 작성 능력보다는 시스템 전체를 구조화하고 설계하는 능력이 더 중요해진다. 마치 건축에서 벽돌을 쌓는 기술보다 건물 전체의 설계도를 그리는 능력이 중요한 것과 같다.
복잡한 비즈니스 요구사항을 어떻게 명확한 시스템 구조로 변환할 것인가를 고민하는 것이 AI 시대 개발자가 알아야 할 핵심 기술이다. 단순히 기능을 나열하는 것이 아니라, 도메인의 본질을 이해하고 이를 체계적인 구조로 변환하는 것. 이 장에서는 그 구체적인 방법론을 다룰 것이다.
온라인 쇼핑몰을 개발한다고 가정해 보자. 단순해 보이는 "상품 구매"라는 도메인도 깊이 들여다보면 복잡한 구조를 가지고 있다. 고객, 판매자, 상품 관리자, 배송업체, 플랫폼 운영자 각각이 서로 다른 목표와 제약사항을 가지고 상호작용한다.
계층 아키텍처: 복잡성을 층층이 나누어 관리하기
가장 먼저 고민하게 되는 것은 전체 시스템을 어떻게 나눌 것인가이다. 모든 기능을 하나의 거대한 시스템으로 만들면 관리가 불가능해지고, 너무 세분화하면 복잡도가 급증한다.
사용자 인터페이스 계층: 접점의 다양성
온라인 쇼핑몰의 첫 번째 계층은 사용자 인터페이스다. 플랫폼에는 서로 다른 사용자 그룹이 존재한다. 고객, 판매자, 상품 관리자, 배송 담당자, 플랫폼 관리자가 각각 다른 인터페이스를 필요로 한다.
지금 바로 작가의 멤버십 구독자가 되어
멤버십 특별 연재 콘텐츠를 모두 만나 보세요.