더북(TheBook)

즉, 아무도 이렇게 무작위로 시스템을 구축하지 않습니다. 실제 모든 시스템에는 기본 구조가 있으며, 어떤 것은 외부 요인의 영향을 받아 체계를 만들기도 합니다. 예를 들어 모바일 애플리케이션의 주요 구성 요소는 라이브러리로 되어 있어 대부분 로컬 프로시저로 호출하도록 구성됩니다. 반대로 클라우드 기반 제품은 서비스를 중심으로 구성할 수 있습니다.

시스템 아키텍처를 논할 때는 외부 요인에 따른 제약뿐만 아니라 그 이상을 고려해야 합니다. 예를 들어 클라우드 서비스는 네트워크로 통신하는데, 요청-응답(request-response) 방식일 수도 있고, 메시지 전달(message-passing) 방식일 수도 있습니다. 둘 중 어느 하나를 선택하든 해당 시스템은 그 방식에 맞게 구성되어야 합니다.

그림 1-1은 시스템 기본 구조를 만들 때 각 접근 방식이 어떤 영향을 미치는지 보여 줍니다. 왼쪽 다이어그램은 무작위 시스템으로, 다양한 유형의 구성 요소(각기 다른 모양으로 표시)가 상이한 통신 방법(다른 선 유형으로 표시)으로 소통하고 있습니다. 가운데 다이어그램은 모든 구성 요소와 통신 방법이 동일한 형태(모양과 선 유형)지만, 이는 외부 제약이 구성 요소와 통신 방식을 강제했기 때문입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.