CHAPTER 18 반응형 아키텍처와 어니언 아키텍처
반응형 아키텍처(reactive architecture)는 순차적인 액션을 표현하는 방식을 뒤집습니다
어니언 아키텍처(onion architecture)는 함수형 프로그래밍으로 현실 세계를 다루기 위한 고수준의 개념입니다
두 아키텍처 패턴은 독립적입니다
- 반응형 아키텍처
- 코드에 나타난 순차적 액션의 순서를 뒤집는다
- 효과(effect)와 원인(cause)을 분리한다
- 어니언 아키텍처
- 웹 서비스나 온도 조절 장치 같은 현실 세계와 상호작용하기 위한 서비스 구조를 만든다
반응형 아키텍처는 무엇인가요?
- 애플리케이션을 구조화하는 방법
- 이벤트에 대한 반응으로 일어날 일을 지정하는 것
- 웹 서비스와 UI에 잘 어울린다
반응형 아키텍처의 절충점
- 원인과 효과가 결합한 것을 분리한다
- 여러 단계를 파이프라인으로 처리한다
- 타임라인이 유연해진다
- 결합의 분리는 원인과 효과의 중심을 관리합니다
어니언 아키텍처는 무엇인가요?
인터랙션 계층
- 바깥세상에 영향을 주거나 받는 액션
도메인 계층
- 비즈니스 규칙을 정의하는 계산
언어 계층
- 언어 유틸리티와 라이브러리
현실 세계와 상호작용은 인터렉션 계층에서 해야 한다
계층에서 호출하는 방향은 중심 방향입니다
계층은 외부에 어떤 계층이 있는지 모른다
도메인 규칙은 도메인 용어를 사용합니다
- 프로그램의 핵심 로직을 도메인 규칙(domain rule) 또는 비즈니스 규칙(business rule)이라고 합니다
가독성을 따져 봐야 합니다
- 특정 패러다임의 장점이 항상 좋은 것이 아니라는 것을 알았습니다
- 가독성을 결정하는 요소
- 사용하는 언어
- 레거시 코드와 코드 스타일
- 사용하는 라이브러리
- 개발자들의 습관
- 코드의 가독성
- 일반적으로 함수형 코드는 읽기 좋습니다
- 개발 속도
- 시스템 성능