육각형 아키텍처 구축AWS - AWS 규범적 지침

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

육각형 아키텍처 구축AWS

푸르칸 오룩, 도미니크 고비, 다리우스 쿤스, 마이클 플로스키, Amazon Web Services (AWS)

2022년 6월 (문서 기록)

이 안내서는 소프트웨어 아키텍처 개발을 위한 멘탈 모델 및 패턴 모음을 설명합니다. 이러한 아키텍처는 제품 채택이 증가함에 따라 조직 전체에서 쉽게 유지 관리, 확장 및 확장할 수 있습니다. Amazon Web Services (AWS) 와 같은 클라우드 하이퍼스케일러는 중소기업과 대기업이 혁신하고 새로운 소프트웨어 제품을 만들 수 있는 빌딩 블록을 제공합니다. 이러한 새로운 서비스 및 기능 도입이 빠른 속도로 진행됨에 따라 비즈니스 이해 관계자들은 개발 팀이 새로운 MVP (Mimimum Viable Product) 의 프로토타입을 더 빠르게 제작하여 새로운 아이디어를 가능한 한 빨리 테스트하고 검증할 수 있기를 기대하게 되었습니다. 이러한 MVP는 종종 채택되어 엔터프라이즈 소프트웨어 에코시스템의 일부가 됩니다. 이러한 MVP를 제작하는 과정에서 팀은 SOLID 원칙 및 단위 테스트와 같은 소프트웨어 개발 규칙 및 모범 사례를 포기하는 경우가 있습니다. 그들은 이러한 접근 방식이 개발 속도를 높이고 출시 시간을 단축할 것이라고 가정합니다. 그러나 모든 수준에서 소프트웨어 아키텍처를 위한 기본 모델과 프레임워크를 만들지 못하면 제품의 새로운 기능을 개발하는 것이 어렵거나 불가능할 수도 있습니다. 확실성이 부족하고 요구 사항이 바뀌면 개발 프로세스 중에 팀의 속도가 느려질 수도 있습니다.

이 가이드에서는 도메인 기반 설계 (DDD) 를 사용하여 이러한 문제를 해결하는 하위 수준의 육각형 아키텍처부터 상위 수준의 아키텍처 및 조직 분해에 이르기까지 제안된 소프트웨어 아키텍처를 살펴봅니다. DDD는 새로운 기능이 개발될 때 비즈니스 복잡성을 관리하고 엔지니어링 팀을 확장하는 데 도움이 됩니다. 유비쿼터스 언어를 사용하여 비즈니스 및 기술 이해 관계자를 도메인이라는 비즈니스 문제에 맞출 수 있습니다. 육각형 아키텍처는 제한된 컨텍스트라고 하는 매우 특정한 영역에서 이러한 접근 방식을 기술적으로 가능하게 합니다. 제한된 컨텍스트는 비즈니스 문제의 응집력이 높고 느슨하게 결합된 하위 영역입니다. 복잡성에 관계없이 모든 엔터프라이즈 소프트웨어 프로젝트에 육각형 아키텍처를 채택하는 것이 좋습니다.

육각형 아키텍처는 엔지니어링 팀이 비즈니스 문제를 먼저 해결하도록 장려하는 반면, 기존 계층 아키텍처는 엔지니어링 초점을 도메인에서 벗어나 기술 문제를 먼저 해결하는 것으로 전환합니다. 또한 소프트웨어가 육각형 아키텍처를 따르는 경우 테스트 기반 개발 접근 방식을 채택하기가 더 쉬워져 개발자가 비즈니스 요구 사항을 테스트하는 데 필요한 피드백 루프가 줄어듭니다. 마지막으로, 명령 및 명령 핸들러를 사용하는 것은 SOLID의 단일 책임 및 개방형 원칙을 적용하는 방법입니다. 이러한 원칙을 준수하면 프로젝트에서 작업하는 개발자와 설계자가 쉽게 탐색하고 이해할 수 있는 코드 베이스가 생성되고 기존 기능에 중대한 변경 사항이 도입될 위험이 줄어듭니다.

이 가이드는 소프트웨어 개발 프로젝트에 6각형 아키텍처 및 DDD를 채택하여 얻을 수 있는 이점을 이해하는 데 관심이 있는 소프트웨어 설계자 및 개발자를 위한 것입니다. 여기에는 육각형 아키텍처를AWS 지원하는 애플리케이션의 인프라를 설계하는 예제가 포함되어 있습니다. 구현 예는 AWS 규범 지침 웹 사이트에서 6각형 아키텍처로AWS Lambda Python 프로젝트 구조화를 참조하십시오.