안녕세계

헥사고날 아키턱처란?헥사고날 아키텍처는 애플리케이션 코어(비즈니스 로직)와 외부 요소(예: 웹, 데이터베이스, 외부 시스템)를 분리하기 위해 설계된 아키텍처입니다. 헥사고날 아키텍처는 시스템을 애플리케이션 코어와 외부 요소로 나누고, 포트(Ports)와 어댑터(Adapters)를 통해 애플리케이션 코어와 외부 요소를 연결합니다. 따라서, 포트와 어댑터 아키텍처(ports-and-adapters architecture)라고도 불립니다.계층형 아키텍처와 헥사고날 아키텍처계층형 아키텍처(Layered Architecture)계층형 아키텍처는 웹, 도메인, 영속성 계층으로 구성된 애플리케이션 구조를 의미합니다. 계층형 아키텍처는 의존성이 상위 계층에서 하위 계층으로만 흐릅니다. 즉, 웹 계층은 도메인 계층에 의..

ArchUnit이란?보통 팀마다 정해져있는 아키텍처가 문서로 작성되어 있거나 기존 코드의 아키텍처를 참조해가며, 개발을 진행하는 경우가 많을 것 입니다. 아키텍처에 위배되는 개발이 되는 것을 미연에 방지하기 위해서는 어떤 방법이 좋을까요? 팀에서 정의한 아키텍처를 위배했을때 코드리뷰를 통해서 잘못된 아키텍처를 바로 잡을 수도 있겠지만, 코드리뷰에서는 비즈니스 로직에 대한 검증을 중점적으로 하고 아키텍처와 관련된 부분은 자동화하는 편이 더 효율적일 것입니다. ArchUnit은 Java 애플리케이션의 아키텍처 규칙을 코드로 정의하고 테스트할 수 있게 해주는 오픈 소스 라이브러리입니다. 애플리케이션의 아키텍처가 복잡해지고 방대해질수록 각 계층 간의 의존성을 유지하고 코드의 일관성을 보장하는 것이 중요해집니다...