Spring Boot DDD 실전: 주문 시스템으로 배우는 도메인 설계

DDD를 배우고 싶지만 “실제 프로젝트에 어떻게 적용하는지” 막막한 분들을 위한 강의입니다. 이 강의에서는 Spring Boot 기반으로 **실제 주문 시스템을 직접 만들면서** DDD 설계를 끝까지 구현합니다. 단순 이론이 아니라 “실무에서 바로 쓸 수 있는 구조와 코드”를 중심으로 진행됩니다. 수강 후에는 ✔ DDD 기반 프로젝트를 스스로 설계할 수 있고 ✔ 실무 수준의 구조를 직접 구현할 수 있습니다

(5.0) 수강평 2개

수강생 46명

난이도 초급

수강기한 2개월

백엔드이해하기
백엔드이해하기
DDD
DDD
도메인주도설계
도메인주도설계
소프트웨어설계
소프트웨어설계
백엔드이해하기
백엔드이해하기
DDD
DDD
도메인주도설계
도메인주도설계
소프트웨어설계
소프트웨어설계
현대모비스
직방
카카오
teamo2
비즈톡

비즈톡

임직원들도 이 강의를 듣고 있어요!

현대모비스
직방
카카오
teamo2
비즈톡

비즈톡

임직원들도 이 강의를 듣고 있어요!

먼저 경험한 수강생들의 후기

5.0

5.0

소준영

100% 수강 후 작성

기업 과제 테스트를 수행하기 위해 도움이 될 강의를 찾던 중 접하게 되었습니다 오버엔지니어링이 되지 않는, 과제에 적절한 수준의 개발을 익히기 위해서는 어느 정도의 확장성을 고려하되 멀티모듈이나 MSA와 같은 구조로 쉽게 변환될 수 있도록 설계를 해야한다고 생각했습니다 DDD에 대한 개념은 얼추 알고 있었지만 대부분은 MSA에 특화된 내용이었고, 그러다 Monolith 기반부터 시작하는 강의가 있어 수강을 하게 되었어요 :) 적절한 수준의 DDD의 핵심 개념, Hexagonal의 기본 아키텍처 등이 꽤나 도움이 된 것 같습니다 다만 강의 중 자주 말씀하셨듯, 이러한 아키텍처는 과제 수준에서 적용하기는 힘들다고 판단했습니다. 하지만 응집도를 높이고 결합도를 낮춰 확장성을 증가시키는 데 있어 어떤 부분을 고려해야 할지 더욱 명확해졌고, 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만원 수익 구조를 만든 개발자

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

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

더보기

수강평

전체

2개

5.0

2개의 수강평

  • 소준영님의 프로필 이미지
    소준영

    수강평 3

    평균 평점 5.0

    수정됨

    5

    100% 수강 후 작성

    기업 과제 테스트를 수행하기 위해 도움이 될 강의를 찾던 중 접하게 되었습니다 오버엔지니어링이 되지 않는, 과제에 적절한 수준의 개발을 익히기 위해서는 어느 정도의 확장성을 고려하되 멀티모듈이나 MSA와 같은 구조로 쉽게 변환될 수 있도록 설계를 해야한다고 생각했습니다 DDD에 대한 개념은 얼추 알고 있었지만 대부분은 MSA에 특화된 내용이었고, 그러다 Monolith 기반부터 시작하는 강의가 있어 수강을 하게 되었어요 :) 적절한 수준의 DDD의 핵심 개념, Hexagonal의 기본 아키텍처 등이 꽤나 도움이 된 것 같습니다 다만 강의 중 자주 말씀하셨듯, 이러한 아키텍처는 과제 수준에서 적용하기는 힘들다고 판단했습니다. 하지만 응집도를 높이고 결합도를 낮춰 확장성을 증가시키는 데 있어 어떤 부분을 고려해야 할지 더욱 명확해졌고, DDD를 완전히 따르지는 않되, DDD의 핵심 원칙을 차용한 설계로 어필이 가능하지 않을까 싶은 생각이 듭니다 모르고 보면 마냥 무겁고 어렵게 느껴지던 DDD를 보다 쉽게 이해하며, 한 단계 더 발전할 수 있었던 강의인 것 같아요 좋은 강의 감사합니다 :) 시험 잘 치고 오겠습니다

    • 참날개
      지식공유자

      와! 좋은 수강평 감사합니다. DDD를 도입하는 의도를 알려드릴려고 했는데 잘 이해하신 것 같아 너무 보람을 느낍니다! 시험 합격 하셨으면 좋겠습니다!!

  • 남동혁님의 프로필 이미지
    남동혁

    수강평 5

    평균 평점 5.0

    5

    30% 수강 후 작성

    • 참날개
      지식공유자

      좋은 수강평 감사합니다~! 앞으로도 좋은 강의와 피드백으로 보답하겠습니다~! 언제든 편안하게 질문 주세요~

비슷한 강의

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