시스템 아키텍처
상위 수준의 시스템을 만들 때 중요한 점은 전체 아키텍처를 정의하는 것입니다. 나무를 심기보다 나무가 가득한 공원을 세울 위치를 선정하고, 구조를 먼저 만드는 작업을 해야 하죠. 시스템의 전반적인 주요 구성 요소와 이들 간의 관계 및 통신 방식을 정의하는 아키텍처를 설계하는 작업은 다음 패턴으로 나눌 수 있습니다.
• 모놀리식(monolithic): 모든 시스템 구성 요소를 결합한 하나의 독립적인 애플리케이션
• 클라이언트-서버(client-server): 클라이언트가 하나 이상의 서버에 서비스를 요청하는 분산 아키텍처
• 마이크로서비스(microservices): 네트워크를 통해 통신하는 작고 독립적인 여러 서비스로 구성된 모듈형 아키텍처
• 이벤트 주도(event-driven): 비동기 이벤트 또는 메시지로 각 구성 요소가 상호 작용하는 시스템