Architectural Styles

유석현(SeokHyun Yu)·2023년 4월 12일
0

분산 시스템

목록 보기
12/27
post-thumbnail

소프트웨어 아키텍처는 분산 시스템을 구성하는 논리적인 소프트웨어 구성 요소들의 조직화 방식을 말한다.

계층형, 객체 기반, 데이터 중심, 이벤트 기반 등의 구조가 있으며, 각각 구성 요소, 연결 방식, 데이터 교환 방식 등을 정의한다.


계층형 구조(Layered Architecture)

계층형 아키텍처는 구성 요소들이 계층적으로 구성되는 방식으로, 각 계층은 하위 계층보다 높은 수준의 서비스를 제공한다.

이 구조에서는 구성 요소가 상위 계층으로 갈수록 추상화되고, 하위 계층으로 갈수록 구체화된다.

각 계층에서는 그 계층에서만 필요한 기능을 수행하며, 상위 계층은 하위 계층의 기능만 사용한다.

즉, 상위 계층의 구성 요소는 하위 계층의 구성 요소를 호출할 수 있지만, 그 반대는 불가능하다.

이런 구조는 네트워킹 커뮤니티에서 널리 사용되고 있다.


객체 기반 구조(Object-based Architecture)

객체 기반 아키텍처는 계층형 아키텍처보다 조직화 수준이 낮다.

구성 요소 간에는 원격 프로시저 호출(rpc: remote procedure call)과 같은 메커니즘을 사용하여 연결된다.

이 아키텍처는 클라이언트-서버 시스템 아키텍처와 잘 맞아 떨어진다.


데이터 중심 구조(Data-centered Architecture)

데이터 중심 아키텍처는 프로세스 간의 통신을 하나의 공통된 리포지토리를 통해 이루어지도록 구성된 아키텍처이다.

이러한 리포지토리는 파일 시스템이나 데이터베이스 등으로 구현될 수 있다.

대부분의 통신이 파일을 통해 이루어지기 때문에, 데이터 관리와 데이터의 일관성 유지가 중요한 역할을 한다.

이 아키텍처는 대규모 데이터 처리와 분석에 효과적이며, 웹 기반 분산 시스템에서 많이 사용된다.


이벤트 기반 구조(Event-based Architecture)

이벤트 기반 아키텍처는 프로세스 간 통신을 이벤트 전파를 통해 처리하는 아키텍처이다.

이벤트 전파는 데이터를 함께 전달할 수도 있으며, 발행-구독 시스템과 관련이 있다.

이벤트 전파 시스템에서는 이벤트를 발행하면 해당 이벤트를 구독한 프로세스에게만 전달된다.

이를 통해 프로세스 간의 느슨한 결합을 유지할 수 있다.

profile
Backend Engineer

0개의 댓글