목록 보기
도메인 주도 개발 전환 이야기
아키텍처

도메인 주도 개발 전환 이야기

spoqa
spoqa
2021년 9월 13일

두줄요약

도메인 문서화와 계층형 패키지 구조로 Flask 백엔드의 중복 로직과 불명확한 경계를 개선했습니다.\nResolver 로직을 Service·Repository·Entity로 재배치하며 도메인 중심 리팩터링 방향을 정리했습니다.

문제 상황

  • Entity·GraphQL Resolver 중심 구현으로 도메인 명세 부재, 중복 로직, API별 상이한 동작 가능성
  • 앱·백오피스 스쿼드의 동일 도메인 병행 개발에 따른 기능·코드 충돌 우려
  • 기능 성장에 비례한 구조 복잡도와 생산성 저하 가능성

해결 방법

  • 주요 도메인과 하위 도메인, 도메인별 행위·속성을 문서화하고 행위를 명령·조회로 구분
  • 스프린트 버퍼 시간을 활용한 점진적 문서화·구조 개편 로드맵 수립
  • Resolver의 비즈니스 로직을 도메인 Service·Repository로 이동하고 Entity 행위 강화

구조와 흐름

  • 애플리케이션·도메인·인프라 3계층으로 단순화한 Layered Architecture
  • 애플리케이션의 도메인 기능 접근을 Component로 제한해 경계와 일관성 확보
  • 도메인의 애플리케이션 의존 금지와 SQLAlchemy 의존 예외, 코드 리뷰 기반 의존성 정책 관리

트레이드오프

  • 도메인 모델과 영속성 모델 분리 대신 SQLAlchemy 의존 허용으로 lazy loading과 구조 단순성 선택
  • Flask 환경의 IoC Container 부재와 DI 라이브러리 도입 비용을 고려한 Service·Repository 생명주기 관리 필요

다음 읽기

#GraphQL 주제를 이어서 읽기

서버 언어 전환 이야기

Python 서버를 Kotlin·Spring Boot로 전환한 배경과 일괄 마이그레이션 방식을 소개했습니다. API·DB를 유지하고 테스트와 회고로 전환 리스크를 관리했습니다.

spoqa
spoqa
백엔드

댓글 0개

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

댓글을 불러오는 중...