목록 보기
ㄷㄷㄷ: Domain Driven Design과 적용 사례 공유 / if(kakao)2022
아키텍처

ㄷㄷㄷ: Domain Driven Design과 적용 사례 공유 / if(kakao)2022

두줄요약

레거시 서버를 점진적으로 MSA화하며 DDD와 헥사고날 아키텍처를 적용한 사례를 공유했습니다. 도메인 분리의 이점과 함께 트랜잭션·배포·구현 복잡도도 짚었습니다.

문제 상황

  • 레거시 서버 포팅과 MSA 전환 과정에서 기존 로직 활용 및 신규 요구사항 수용 필요
  • 레거시 서버와 신규 MSA 서버의 동시 동작을 위한 점진적 교체 방향

구조와 흐름

  • 하위 도메인 경계인 Bounded Context를 MSA 서비스 단위로 분리하고 Context Map으로 관계와 흐름 가시화
  • 라이프사이클과 변경 단위가 같은 객체를 Aggregate로 묶고 Root Entity를 통한 접근 제한
  • Controller→Use Case→Service→Load/Save Port→Adapter 흐름과 JPA Entity·Domain Entity 간 Mapper 변환

선택 이유

  • 기존 시스템 분해·개선, 비즈니스와 개발 간 공통 언어, 요구사항별 일정·리소스 관리에 적합한 DDD 선택
  • 표현·데이터 접근 로직으로부터 비즈니스 로직을 분리하기 위한 Hexagonal Architecture 채택

트레이드오프

  • MSA 개발·배포 복잡도, 트랜잭션 관리, 높은 도메인 이해도와 Mapper 등 부가 코드 증가
  • 복잡한 도메인 관계 정리, 유지보수 편의성, 신규 기능 대응 유연성, 느슨한 결합과 높은 응집도

카카오 계열사 채용30건

채용 사이트에서 전체 보기

다음 읽기

#DDD 주제를 다룬 다른 회사 글

코드 사례로 보는 Domain-Driven 헥사고날 아키텍처

Domain-Driven 헥사고날 아키텍처를 PDP 서비스 코드 사례로 설명했습니다. Port와 Use Case 분리, 애그리거트 모델, 테스트 용이성 등 운영 장점을 다뤘습니다.

카카오스타일
카카오스타일
아키텍처

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...