SPACE RUMI

Hi, I am rumi. Let's Splattack!

[IT] 프로덕트 개발/Node.js 백엔드

architecture 아키텍처란? 계층형/이벤트기반/마이크로서비스

백루미 2023. 8. 4. 02:00
반응형

아키텍처는 계획을 정리한것을 말한다.
즉, 소프트웨어를 분석하고 계획을 세워 정리한 설계도 같은것을 아키텍처라고 한다.

계층형 아키텍처 (레이어드 아키텍처)

여러가지 층으로 만들어 분리하는 단순한 방식의 아키텍처.
각 계층마다 로직이 다르고, 의존성이 단방향이다.
서비스 규모가 커지면 계층도 커지면서 유지보수가 힘들어지고, 개발속도도 저하되며 배포도 어렵다.

 

 

이벤트 기반 아키텍처

이벤트라고하는 상태변화에 대응하는 아키텍처이다.
예를들어, 유저가 버튼을 클릭해 원하는 상품페이지에 접근하는 이벤트가 발생할 수 있다.
상태변화에 대응하는 알림 서비스 등을 설계할 때 적합하다.

모든 요청은 비동기 처리 하기 때문에, 확장성에 좋지만, 순서를 보장하기는 어렵다.

이벤트 기반 아키텍처는 프로듀서, 브로커, 컨슈머로 구성된다.
Scale Out 하기 편하다 : 서버 메모리 네트워크 등을 추가해 처리량을 늘리는 것

프로듀서 : 이벤트를 발생
브로커 : 이벤트를 전달
컨슈머 : 이벤트를 받음

 

마이크로서비스 아키텍처

여러개의 작은 서비스로 잘개 쪼개 관리하는 아키텍처.
각 서비스가 분리되어있기 때문에 서비스별로 업데이트가 가능하여 확장성이 좋다.
구성이 복잡한 대규모 시스템에 적합하다.

한개의 서비스가 하나의 도메인을 관리하는 정도로 분리하는것이 좋다.
* 분산 트랜잭션 처리를 고려해야 한다.

 

반응형