헥사고날아키텍쳐3 [신입 개발자의 첫 번째 아키텍쳐 설계 도전기 - Fin] 신규 아키텍쳐의 기대효과와 개선점 지금까지 레거시 아키텍쳐의 문제점을 분석하고, 이를 개선하기 위한 헥사고날 아키텍쳐의 도입과 설계에 대해 다루었습니다.이번 마지막 글에서는 실제로 새 아키텍쳐가 어떤 효과를 가져왔는지를 구체적인 예시와 함께 살펴보겠습니다.1. 풍부한 도메인 모델을 통한 비즈니스 로직의 응집도 향상레거시 코드// TransactionCoreService 클래스(서비스 레이어)에서 일일이 총액을 계산fun tranSaleHeaderGenerate( transactionInformation: PaymentEndRequestDTO, paymentData: PaymentsReqResData): TranSaleHeader { val cardAmt = BigDecimal(credit.sumOf { it.request.. 2025. 1. 5. [신입 개발자의 첫 번째 아키텍쳐 설계 도전기 - #2] 헥사고날 아키텍처 도입과 설계 오늘은 레거시 아키텍쳐의 문제점을 개선하기 위해 헥사고날 아키텍쳐의 설계와 실제 구현에 대해 다루어 보겠습니다.1. 왜 헥사고날 아키텍처인가?이전 글에서 분석했던 레거시 아키텍처의 핵심적인 문제점들은 아래와 같았습니다.core 모듈의 순수성 훼손의존성 방향의 혼란서비스 레이어의 정체성 혼란비즈니스 로직의 산재빈약한 도메인 모델이러한 문제들을 해결하기 위해서는 명확한 경계와 의존성 규칙이 필요했습니다.헥사고날 아키텍처는 이러한 요구사항을 만족시키는 제가 알고 있는한 최적의 선택지였습니다.2. 새로운 아키텍처의 구조2.1 모듈 구조새로운 아키텍처는 크게 다음과 같은 구조를 가집니다:shared: 공유 로직을 포함하는 최상위 모듈application: 핵심 비즈니스 로직 담당adapter: 외부 세계와의 통신.. 2025. 1. 5. [신입 개발자의 첫 번째 아키텍쳐 설계 도전기 - 프롤로그] 입사 1년차 선물로.. 중요한 자사 프로젝트의 설계를 맡게 되었다!? 예상치 못한 선물2024년 9월, 입사 1년을 갓 넘긴 시점에서 저는 뜻밖의 '선물'을 받았습니다.병역 특례로 복무하던 제 사수분이 퇴사하게 되면서, 사내의 가장 중요한 프로젝트 중 하나인 크로스플랫폼 POS의 아키텍쳐를 설계하고 개발을 리딩해야 하는 상황이 되었기 때문입니다.두려움과 설렘 사이사실, 프로젝트를 리딩해 나가야 되는 상황인 건 맞았지만, 아키텍쳐를 새로 설계해야 된다는 책임이 부여된건 아니었습니다.하지만, 저는 짧다면 짧은 1년간 레거시 코드를 유지보수하고 추가 개발을 하면서, 기존의 아키텍쳐와 개발 방법에 많은 문제가 있다는 것을 느끼고 있었습니다.하여, 어차피 할 거라면 신규 프로젝트니까 아키텍쳐 부터 탄탄하고 깔끔하게 만들고 가자는 생각이 들었습니다.위와 같은 상황이었기에 처음에는 정.. 2024. 12. 16. 이전 1 다음 728x90