V
VCNC
October 7, 20221회
도메인 주도 설계와 모델 주도 설계 도입하기 - 정산편
간단 소개
타다 서버팀의 도메인 주도 설계(DDD) 및 모델 주도 설계(MDD) 도입 사례를 통해 정산 도메인의 복잡성을 해결하고 유지보수성을 개선한 과정을 설명합니다.
AI Summary
- 도메인 주도 설계(DDD)와 모델 주도 설계(MDD)의 필요성
- 타다 서버팀은 도메인 간 강결합 문제 해결을 위해 DDD를 도입, 특히 정산 도메인부터 시작함.
- DDD는 데이터 연관관계보다 도메인 중심 설계를 지향하며, MDD는 모델을 통해 기획자, 설계자, 개발자 간 협업을 강화함.
- 정산 도메인 문제점 및 해결 과정
- 기존 정산 시스템은 높은 복잡성과 흩어진 도메인 지식으로 인해 유지보수가 어려웠음.
- SettlementEntry와 SettlementContract의 책임 분리 실패로 SettlementDetails 객체 생성의 원인이 됨.
- SettlementDistribution 객체를 중심으로 새로운 모델을 설계하여 책임 명확화, 응집도를 높이고 결합도를 낮춤.
- 새 모델 구현 및 결과
- 새 모델은 division으로 금액 나누기 -> distribution 기준으로 합치기 -> 정산 요청하기의 흐름을 명확히 함.
- 도메인 전문가와의 협업을 통해 불필요한 개념 제거, 코드 복잡성을 줄임.
- 리팩토링 결과, 메인 함수 라인 수 감소, 가독성 및 확장성 개선, 현재까지 정합성 오류 0건을 기록.
Next Feeds
재택근무 환경에서 효율적인 코드 리뷰 방법: 팀 그라운드 룰 정하기
카카오페이 서비스그로스플랫폼팀의 재택근무 환경에서 효율적인 코드 리뷰를 위한 그라운드 룰 도입 과정과 개선점을 소개합니다.
코드 리뷰재택근무그라운드 룰PR 템플릿코드 커버리지
2022. 10. 6.
카카오페이

올리브영 적응기 (a.k.a 회고록)
올리브영 백엔드 개발자의 3개월간의 적응기를 통해 개발 문화와 사내 생활을 엿볼 수 있는 회고록
올리브영백엔드 개발자회고록개발 문화애자일
2022. 10. 5.
올리브영

All the mistakes we have made during Product Discovery
Product Discovery 과정에서 흔히 발생하는 실수들을 분석하고, 이를 통해 얻은 교훈과 개선 방안을 제시합니다.
Product Discovery고객 인터뷰데이터 검증팀 정렬멀티태스킹
2022. 9. 30.
버즈빌
GitHub Actions workflow를 수동으로 trigger하기(feat. inquirer.js)
GitHub Actions workflow를 workflow_dispatch와 inquirer.js를 사용하여 수동으로 trigger하는 방법을 설명합니다.
GitHub Actionsworkflow_dispatchinquirer.jsGitHub CLI배포 자동화
2022. 9. 29.
카카오엔터테인먼트FE
GitHub Actions workflow를 수동으로 trigger하기(feat. inquirer.js)
GitHub Actions workflow_dispatch와 inquirer.js를 활용하여 배포 과정을 자동화하고 사용자 편의성을 높이는 방법을 설명합니다.
GitHub Actionsworkflow_dispatchinquirer.js배포 자동화GitHub CLI
2022. 9. 29.
카카오엔터테인먼트FE

레고와 함께한 DnA팀 Workshop (aka Playshop)
레고의 플랫폼 전략에서 영감을 얻어 데이터 플랫폼 구축 방향을 제시하고, 네이버 서치 DnA팀의 사례를 소개합니다.
레고플랫폼데이터분석자동화
2022. 9. 28.
네이버DnA팀