DDD 시작하기: Spring Boot 실전 프로젝트 만들기

DDD를 공부하려고 시작했지만 막상 프로젝트를 어떻게 시작해야 할지 막막했던 경험이 있으신가요? 이 강의에서는 "DDD(Domain Driven Design)를 적용하기 위한 개발 환경부터 프로젝트 구조까지" 처음부터 차근차근 만들어 봅니다. Spring Boot, Java 21, Gradle, PostgreSQL 기반으로 "DDD 설계를 시작할 수 있는 실전 개발 환경을 직접 구성하고", DDD 프로젝트를 어떻게 시작하고 설계해야 하는지 전체 흐름을 함께 살펴봅니다. 단순한 이론 설명이 아니라 "실제 프로젝트를 만들면서 DDD 설계의 출발점을 잡는 과정"을 다룹니다. DDD를 공부하고 싶지만 어디서부터 시작해야 할지 막막했던 분들이 "실제로 동작하는 프로젝트 환경"

3명 이 수강하고 있어요.

난이도 초급

수강기한 2개월

백엔드이해하기
백엔드이해하기
DDD
DDD
도메인주도설계
도메인주도설계
소프트웨어설계
소프트웨어설계
백엔드이해하기
백엔드이해하기
DDD
DDD
도메인주도설계
도메인주도설계
소프트웨어설계
소프트웨어설계

수강 후 이런걸 얻을 수 있어요

  • DDD 설계를 시작할 수 있는 Spring Boot 기반 개발 환경을 직접 구축할 수 있습니다

  • DDD 프로젝트를 시작하기 위한 기본 프로젝트 구조와 설계 흐름을 이해할 수 있습니다

  • DDD 학습을 위한 실제 동작하는 프로젝트 기반을 직접 만들 수 있습니다

수업 소개

이 수업은 Spring Boot 기반의 Java backend 프로젝트를 중심으로,
REST API 설계부터 시작해 점진적으로 DDD와 MSA 구조로 확장하는 과정을 다룹니다.

그리고 DDD(Domain Driven Design)의 핵심 개념과 함께
Clean Architecture / Hexagonal Architecture 구조를 기반으로
도메인을 어떻게 설계해야 하는지 전체 흐름을 이해합니다.


왜 DDD가 필요한가?

기존 모놀리식 구조에서는 다음과 같은 문제가 발생합니다.

  • 비즈니스 로직과 기술 코드가 섞임

  • 변경 시 영향 범위가 커짐

  • 도메인 규칙이 점점 흐려짐

DDD는 이러한 문제를 해결하기 위해
도메인 중심으로 설계하는 방식을 제안합니다.



전체 구조 이해 (핵심)


1. Clean Architecture 구조

  • Entities (도메인 핵심)

  • Use Case (비즈니스 로직)

  • Interface Adapter (Controller, Presenter 등)

  • Framework (DB, Web 등)

핵심 규칙:

👉 의존성은 항상 바깥 → 안쪽으로만 흐른다

즉,
DB나 외부 시스템은 도메인을 몰라도 되지만
도메인은 외부 기술에 의존하면 안 됩니다.


2. Hexagonal Architecture (Ports & Adapters)

구조를 더 구체적으로 보면 다음과 같습니다.

  • Application Core

    • Use Case

    • Entity

  • Input Port / Output Port

    • 외부와 연결되는 인터페이스

  • Adapter

    • Web Adapter (Controller)

    • Persistence Adapter (DB)

    • External System Adapter

핵심 개념:

👉 비즈니스 로직은 포트를 통해서만 외부와 연결된다


핵심 구성 요소 정리

Entity

  • 도메인의 핵심 객체

  • 비즈니스 규칙을 포함

  • 외부 기술과 완전히 분리됨

Use Case

  • 실제 서비스 로직 수행

  • Entity를 조합하여 기능 구현

Port

  • 외부와 연결되는 인터페이스

  • Application이 의존하는 경계

Adapter

  • Port를 구현하는 실제 기술 코드

  • DB, API, 외부 시스템 연결 담당


Bounded Context 개념

같은 용어라도 컨텍스트에 따라 의미가 달라질 수 있습니다.

예:

  • 주문(Order) = 주문 생성 관점

  • 주문(Order) = 결제 처리 관점

따라서
👉 컨텍스트별로 모델을 분리해야 복잡도가 줄어듭니다


정리 (이 수업의 핵심)

이 수업에서 반드시 가져가야 할 핵심은 다음입니다.

  • 도메인은 항상 중심에 위치해야 한다

  • 비즈니스 로직은 기술 코드와 분리해야 한다

  • 외부 시스템은 Adapter를 통해서만 연결한다

  • 구조를 나누는 이유는 “유지보수와 확장성” 때문이다


다음 단계 안내

이제 다음 수업에서는
👉 현재 모놀리식 구조를 기반으로
👉 실제로 DDD 구조로 리팩토링하는 과정을 진행합니다.

개념을 이해한 상태에서
코드로 적용하는 흐름을 연결해보는 것이 핵심입니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • DDD를 공부하고 싶지만 프로젝트를 어떻게 시작해야 할지 막막한 개발자

  • Spring Boot 기반으로 DDD 프로젝트를 처음 만들어보고 싶은 백엔드 개발자

  • 실무에서 사용할 수 있는 DDD 프로젝트 구조와 시작 방법을 배우고 싶은 개발자

선수 지식,
필요할까요?

  • Java 기본 문법 이해

  • Spring Boot 기본 사용 경험

안녕하세요
박진우입니다.

15년차 현업 개발자 · 월 1000만원 수익 구조를 만든 개발자

단순히 코딩을 가르치지 않습니다.
“개발이 내 길인지” 판단할 수 있는 기준을 제공합니다.

비전공자, 취준생, 커리어 전환을 고민하는 분들과
현실적인 커리어 전략을 함께 설계합니다.

더보기

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!

얼리버드 할인 중

₩24,750

50%

₩49,500