애플리케이션 헥사곤을 통한 동작 자동화
자동화(Automation) 는 소프트웨어가 할 수 있는 가장 가치 있는 일 중 하나다. 흥미로운 시나리오는 초기 신용카드 산업의 시나리오다. 은행이 고객에게 신용카드를 제공하기 시작했을 때 대부분의 백오피스 활동은 수동이었다. 기술이 발전함에 따라 컴퓨터 시스템은 신용 확인 과정을 자동화할 수 있었다.
헥사고날 아키텍처를 사용해 신용카드 확인 시스템을 만들기로 결정했다면 카드 소지자의 신용을 확인하는 데 필요한 단계들은 유스케이스 를 사용해 표현할 수 있다. 입력 포트를 통해 유스케이스 목표를 이루기 위해 비즈니스 규칙과 필요한 모든 데이터, 소비 처리, (필요한 경우) 출력 포트를 통한 외부 시스템에 대한 처리를 할 수 있다. 애플리케이션 헥사곤을 구현하는 한 가지 이점은 시스템의 요구사항을 만족시키기 위해 사용해야 하는 기술을 지정할 필요가 없다는 점이다. 물론, 나중에 특정 액티비티를 다룰 때 개발 프레임워크를 추가하는 것이 가능하다.
그러나 헥사곤 시스템을 다른 기술과 더 쉽게 통합할 수 있게 만드는 것은 기술적인 세부 사항에 초점을 두지 않는 순수한 방법이다. 헥사고날 아키텍처가 제공하는 가능성을 계속해서 탐색하다 보면 개발 프레임워크를 사용하는 것이 소프트웨어 개발의 핵심이 아님을 알게 될 것이다. 대신, 헥사고날 시스템에서 프레임워크는 특정 문제를 해결하기 위해 전략적으로 사용하는 일반적이고 실용적인 라이브러리와 같다.
요약
- 유스케이스: 사용자의 목표를 달성할 수 있도록 하는 행위를 코드로 변환한 것이다.
- 입력 포트: 유스케이스를 구현하고 외부와 내부 사이의 통신 흐름을 중재하는 중개자 역할을 한다.
- 출력 포트: 헥사고날 시스템과 특정 기술의 결합 없이도 외부 소스의 데이터에 대한 필요성을 표현할 수 있다.
애플리케이션 헥사곤 내부의 배치 방법을 배우면 비즈니스 규칙, 엔티티, 도메인 서비스 유스케이스와 애플리케이션 헥사곤, 도메인 헥사곤 모두에서 헥사곤 애플리케이션의 완전한 기능을 만들기 위해 다양한 기술과 통합할 준비가 된 다양한 컴포넌트를 조합할 수 있다.