헥사고날 아키텍처 적용해보기
헥사고날 아키텍처로 알려져 있는, 포트와 어댑터 아키텍처에 대한 내용입니다. 헥사고날 아키텍처는 알리스테어 콕번이 제안한 소프트웨어 아키텍처입니다. 핵심적인 내용은 UI나 DB가 없이도 애플리케이션이 동작하도록 만드는 것입니다. 클린 아키텍처에도 나오지만 비즈니스와 관련이 없는 기술관련 코드들이 비즈니스 로직과 섞이면서 유지보수를 어렵게하는 원인이 되곤 합니다. 이러한 문제점을 해결하기 위해 도메인 헥사고날에는 핵심적인 비즈니스 로직을 넣고, 인터페이스를 기반으로 애플리케이션이 작성되도록 하는 것을 목표로 하고 있습니다. 넷플릭스에서도 헥사고날 아키텍처로 전환을 준비하고 있다는 (https://netflixtechblog.com/ready-for-changes-with-hexagonal-architecture-b315ec967749) 글이 2020년도에 이미 있었습니다. 해당 글에서는 헥사고날 아키텍처를 적용하여 RestAPI에서 GraphQL로 2시간만에 작업을 했다고도 되어 있습니다. 저희 회사에서도 헥사고날 아키텍처를 적용한 프로젝트들이 조금씩 많아지고 있습니다. 만들때에 조금더 복잡할 수 있지만, 유지보수가 더 편해지는 헥사고날 아키텍처에 대해서 알아두시면 좋을 것 같습니다. https://engineering.linecorp.com/ko/blog/port-and-adapter-architecture