Getting Started with DDD: Building a Practical Spring Boot Project

Have you ever started studying DDD but felt overwhelmed and unsure of how to actually begin a project? In this course, we will build everything step-by-step, from the development environment to the project structure, specifically for applying DDD (Domain-Driven Design). Based on Spring Boot, Java 21, Gradle, and PostgreSQL, we will "manually configure a practical development environment to kickstart DDD design" and explore the overall flow of how to start and design a DDD project together. Rather than just explaining simple theories, this course covers the "process of establishing the starting point of DDD design while building an actual project." For those who want to study DDD but feel lost on where to begin, this provides a "real-world working project environment."

4 learners are taking this course

Level Basic

Course period 2 months

Java
Java
REST API
REST API
Spring Boot
Spring Boot
MSA
MSA
backend
backend
Java
Java
REST API
REST API
Spring Boot
Spring Boot
MSA
MSA
backend
backend

What you will gain after the course

  • You can directly set up a Spring Boot-based development environment to start DDD design.

  • You can understand the basic project structure and design flow for starting a DDD project.

  • You can directly create a working project base for learning DDD.

Course Introduction

This course focuses on a Spring Boot-based Java backend project,
covering the process of starting from REST API design and gradually expanding into DDD and MSA architectures.

And along with the core concepts of DDD (Domain Driven Design),
you will understand the overall flow of how to design a domain based on Clean Architecture / Hexagonal Architecture structures.


Why is DDD necessary?

In existing monolithic structures, the following problems occur:

  • Business logic and technical code are mixed together

  • The scope of impact when making changes becomes larger

  • Domain rules are becoming increasingly blurred

DDD proposes a
domain-centered design approach to solve these problems.



Understanding the overall structure (Core)


1. Clean Architecture Structure

  • Entities (Core Domain)

  • Use Case (Business Logic)

  • Interface Adapter (Controller, Presenter, etc.)

  • Framework (DB, Web, etc.)

Core Rules:

👉 Dependencies always flow from the outside → inside

In other words,
the DB or external systems do not need to know the domain,
and the domain must not depend on external technologies.


2. Hexagonal Architecture (Ports & Adapters)

Looking at the structure in more detail, it is as follows.

  • Application Core

    • Use Case

    • Entity

  • Input Port / Output Port

    • Interface connecting to the outside

  • Adapter

    • Web Adapter (Controller)

    • Persistence Adapter (DB)

    • External System Adapter

Key Concepts:

👉 Business logic connects to the outside world only through ports


Summary of Key Components

Entity

  • Core objects of the domain

  • Includes business rules

  • Completely separated from external technologies

Use Case

  • Execution of actual service logic

  • Implementing functions by combining Entities

Port

  • Interface connected to the outside

  • The boundary that the application depends on

Adapter

  • Actual technical code that implements the Port

  • Responsible for connecting to DB, API, and external systems


The Concept of Bounded Context

Even for the same term, the meaning can vary depending on the context.

Example:

  • Order (Order) = Order creation perspective

  • Order = Payment processing perspective

Therefore,
👉 models must be separated by context to reduce complexity


Summary (Key takeaways from this lesson)

The following are the core takeaways you must gain from this lesson.

  • The domain must always be at the center.

  • Business logic must be separated from technical code.

  • Connect to external systems only through Adapters.

  • The reason for dividing the structure is for "maintenance and scalability."


Next Step Guide

Now, in the next lesson,
👉 based on the current monolithic structure,
👉 we will proceed with the actual process of refactoring into a DDD structure.

The key is to connect the flow of applying it to code
while having a solid understanding of the concepts.

Recommended for
these people

Who is this course right for?

  • Developers who want to study DDD but feel lost on how to start a project

  • A backend developer who wants to create their first DDD project based on Spring Boot.

  • Developers who want to learn DDD project structures and how to get started for practical use.

Need to know before starting?

  • Understanding Basic Java Syntax

  • Basic experience using Spring Boot

Hello
This is truthplumage1363

A developer with 15 years of experience · A developer who built a monthly revenue structure of 10 million won

I don't just teach coding.
I provide the criteria to help you determine "if development is the right path for me."

We design realistic career strategies together with non-majors, job seekers, and those considering a career change.

More

Reviews

Not enough reviews.
Please write a valuable review that helps everyone!

Similar courses

Explore other courses in the same field!

Limited time deal

$19.80

48%

$38.50