클린아키텍처 2

헥사고날 아키텍처란?

1. 헥사고날 아키텍처의 개념1-1. 정의 및 기원 헥사고날 아키텍처(Hexagonal Architecture)는 Alistair Cockburn이 2005년에 처음 제안한 개념으로, ‘포트와 어댑터(Ports and Adapters)’ 아키텍처라는 이름으로도 널리 알려져 있다. 이 구조는 기존의 레이어드 아키텍처에서 발생하던 문제, 즉 도메인 로직이 프레임워크나 외부 기술에 종속되는 현상을 해결하기 위해 고안되었다. 핵심 철학은 애플리케이션의 핵심 도메인을 외부와 철저히 분리하고, 포트와 어댑터를 통해서만 상호작용을 허용하는 것이다. 이를 통해 도메인 로직의 순수성을 유지하고, 테스트 용이성과 시스템 유연성을 극대화할 수 있다. 단순히 코드 구조가 아니라, 비즈니스 규칙 중심 설계의 실천 철학이라 볼..

컴퓨터공학 2025.05.20

아키텍처란 무엇인가?

1. 소프트웨어 아키텍처의 정의와 본질1-1. 소프트웨어 아키텍처란 무엇인가? 소프트웨어 아키텍처는 단순한 코드 구조를 넘어서, 시스템을 구성하는 주요 요소와 이들 간의 관계, 그리고 시스템의 설계와 진화를 이끄는 원칙들을 의미한다. 아키텍처는 시스템을 만들기 전 가장 먼저 고려되는 기술적 설계의 골격이다. 이는 기능 구현 이전에 전체 시스템의 형태를 결정짓는 핵심 단계이며, 개발뿐 아니라 운영, 유지보수, 확장성에도 큰 영향을 준다.1-2. 아키텍처의 구성 요소 아키텍처는 컴포넌트, 커넥터, 인터페이스, 제약 조건, 그리고 비기능 요구사항으로 구성된다. 컴포넌트는 기능 단위의 독립 모듈을 말하며, 커넥터는 이들 간의 통신 방식이다. 인터페이스는 컴포넌트와 외부가 상호작용하는 지점을 정의하고, 제약 조건..

컴퓨터공학 2025.05.17