강의

멘토링

로드맵

BEST
개발 · 프로그래밍

/

백엔드

Spring Boot TDD - 입문부터 실전까지 정확하게

더 빠르고 더 견고하게 Spring Boot 응용프로그램을 개발하세요. 정확한 이론 설명과 실무 수준의 연결된 실습을 통해 HTTP API 응용프로그램 개발에 TDD를 사용하는 효과적인 방법을 자연스럽게 익히게 됩니다.

(5.0) 수강평 39개

수강생 452명

  • 이규원
스프링프레임워크
스프링부트
실습 중심
TDDSpring BootJUnit아키텍처

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

이런 걸 배울 수 있어요

  • TDD를 사용한 Spring Boot 웹 API 응용프로그램 개발 실전

  • 정확하고 핵심적인 TDD 이론

  • 과도한 도구와 설계 없이 TDD를 사용하는 방법

  • 요구사항을 충족시킨 후 설계를 개선하는 방법

  • 단순한 설계에서 구조화된 아키텍처로 안전하게 리팩터링

  • TDD에 대한 오해 교정

코드 구현을 넘어
제품의 가치를 만들어내는 힘

AI 코딩 도구가 쏟아져 나오며 “코드는 자동으로 짜는 시대”라는 말이 나옵니다. 하지만 정말 중요한 건 코드 그 자체가 아닙니다. 요구사항을 정확히 검증하고, 안정적으로 시스템을 개선할 수 있는 설계와 테스트 역량입니다.

TDD(Test-Driven Development)는 자동화된 테스트를 바탕으로 시스템을 안정적으로 개선할 수 있도록 도와주는 강력한 도구입니다. 코드를 넘어서, 소프트웨어가 ‘제대로 동작하고 있는가’를 지속적으로 검증하고, 올바른 방향으로 개발을 이끌 수 있게 해줍니다.

이제 TDD는 '하면 좋은' 개발 습관이 아닙니다.
코드를 넘어 제품의 가치를 구현하는 강력한 무기입니다.

이런 경험이 있다면 추천합니다.

예제나 강의를 그대로 따라 했지만, 정작 TDD의 필요성을 체감하지 못하고 있다.

TDD를 스킬과 도구 위주로만 익히다 보니,
실전 프로젝트에선 한계를 느끼고 있다.

TDD를 도입하려고 보니, 테스트를 고려하지 않은 코드베이스 때문에 막막함을 느꼈다.

프로젝트에 급하게 TDD를 적용했다가, 테스트가 전부 깨져 결국 포기한 적이 있다.

그래서, 다양한 조직에 TDD 문화를 정착시켜 온
CTO의 10년 경험을 강의에 담았습니다.

TDD 이론을 정확하게 설명합니다.

TDD를 제대로 쓰기 위해선 스킬 중심의 단순한 테스트 작성법이 아니라, 핵심 개념과 설계 원리를 정확히 이해하는 것이 먼저입니다. 이 강의는 TDD와 건강한 설계를 위한 이론적 기반을 탄탄히 다지며, 실무에서 흔히 발생하는 오해와 오류를 피할 수 있는 개념 중심의 학습을 제공합니다.

Spring Boot만으로도 TDD는 충분합니다.

거창한 아키텍처 없이도, Spring Boot 하나면 TDD를 제대로 사용할 수 있습니다. 이 강의는 익숙한 Spring Boot 환경에서 TDD의 핵심 절차를 따라가며 TDD의 전체 흐름이 어떻게 작동하는지 풍부한 실습 중심으로 체감하게 도와줍니다.

실전 코드 흐름으로 TDD를 체득합니다.

실무에서 사용하는 코드 작성 흐름을 그대로 따라갑니다. 요구사항 이해 → 테스트 시나리오 도출 → 기능 구현 → 설계 관리 등, 실제 현업 개발자가 겪는 TDD 흐름을 실습으로 체득합니다. 또한 Copilot을 활용한 AI 협업도 간접 경험할 수 있습니다.

10년의 경험, TDD에 진심인 개발자가 전합니다.

10년 넘게 다양한 팀과 조직에서 TDD 문화를 직접 도입하고, 실무에 정착시킨 경험을 가지고 있습니다. 협업부터 코드 리뷰, 설계까지! TDD를 실제 프로젝트에 어떻게 녹여내는지 그 현실적인 과정과 통찰을 강의에 모두 담았습니다.

이런 효과를 얻으실 수 있습니다.

이 강의를 통해서 수강자분들은 각자의 상황에 따라 다양한 효과를 얻으실 수 있습니다.

소프트웨어 개발을 처음 배우시는 분들은

Spring Boot를 사용해 웹 서버 응용프로그램을 개발하는 프로그래머가 되기 위해 취업을 준비하시는 분들은, 소프트웨어 개발 학습 초기부터 TDD를 기본 역량으로 갖추실 수 있습니다. 다른 경험이 쌓이기 전에 정확한 정보에 기반해서 TDD를 학습하면, 오히려 경력이 있는 분들보다 저항 없이 쉽게 익히실 수 있습니다.

실무에서 안정적으로 응용프로그램을 개발하고 싶으신 분들은

실무에서 Spring Boot 웹 서버 응용프로그램을 개발하고 있지만 새로운 기능을 만드는 과정에서 버그 발생 우려로 불안함을 느끼시는 분들은, 자동화된 테스트를 사용해 요구사항 충족을 확인하며 시스템에 점진적으로 코드를 추가하는 기법을 익히실 수 있습니다. 그리고 이런 역량을 통해 더욱 가치 있는 엔지니어로 한 단계 성장할 수 있습니다.

TDD를 학습했지만 실무 적용에 어려움을 느끼시는 분들은

TDD와 테스트 자동화를 공부했지만 실무에서 Spring Boot 웹 서버 응용프로그램을 개발할 때는 여러가지 어려움으로 TDD를 적용하지 못하시는 분들은, TDD와 관련된 지식을 다시 한 번 다잡고 충분히 준비된 실습을 진행하면서 실전에서 겪는 문제들을 해결할 수 있는 단서를 얻을 수 있습니다.

강의 내용

TDD와 관련된 이론 설명으로 시작해서, 단절 없이 이어지는 일련의 실습을 따라가며 자연스럽게 TDD에 익숙해지고 아키텍처 개선, 요구사항 변경, 협업 사례까지 연속적으로 경험할 수 있도록 강의를 구성했습니다.

TDD 핵심 이론

TDD을 올바르게 사용하기 위해 필요한 핵심적인 이론을 설명합니다. Kent Beck이 정의한 TDD 절차와 효과적인 테스트 작성 및 관리에 필요한 기반 설계 이론을 설명하고, 실전과 유사한 실습을 통해서 이론의 효과를 체감합니다.

TDD를 사용한 웹 서버 응용프로그램 개발

실무에서 사용할 수 있는 수준의 TDD 학습에는 이론 설명과 간단한 예제로는 부족합니다. 본 강의에서는 실전에 가까운 수준의 Spring Boot 웹 서버 응용프로그램을 프로젝트가 초기화된 상태에서 시작해서 모든 기능을 TDD를 사용해 개발합니다.

효과적인 테스트 작성

요구사항을 충실하게 검증하는 테스트 코드를 읽기 쉽게 작성하는 방법을 체험합니다. 테스트는 소프트웨어 요구사항을 올바르게 검증해야 하고 요구사항 문서의 일종이기 때문에, 테스트 코드의 가독성은 아주 중요합니다. 기능에 충실하면서도 읽기 쉬운 테스트 코드 작성법을 고민하고, JUnit을 사용해 직접 작성해 봅니다.

아키텍처 개선

TDD를 사용해 개발된 응용프로그램의 설계 품질을 향상시키기 위해서 단순한 아키텍처에서 구조화된 아키텍처로 개선합니다. 모델을 다른 구성요소와 분리하고 CQRS(Command Query Responsibility Segretation) 패턴을 적용합니다.

지식공유자 소개

  • 다양한 영역에서 다양한 기술을 사용해서 소프트웨어를 개발했습니다.

  • 10여 년간 여러 스타트업에서 CTO 역할 수행하며 여러 팀에 TDD를 정착시켰습니다.

  • TDD를 비롯해 다양한 주제로 여러 기술 행사에서 연사로 지식과 경험을 공유해 왔습니다.

  • 테스트 데이터 생성 JUnit 확장 라이브러리 AutoParams 운영하고 있습니다.

수강 전 참고 사항

실습 환경

  • 실습 영상은 Windows 운영체제를 사용합니다. 하지만 macOS를 사용하시는 분들도 문제 없이 수강하실 수 있습니다.

  • IntelliJ Community 에디션을 사용합니다. IntelliJ Ultimate 에디션도 그대로 사용할 수 있습니다.

학습 자료

  • 500페이지 이상의 슬라이드를 제공합니다.

  • 100개 이상의 커밋으로 구성된 모든 실습 코드는 GitHub 저장소를 통해 제공합니다.

  • Discord에서 지식공유자 및 다른 수강생들과 TDD 및 강의 내용을 주제로 자유롭게 소통하실 수 있습니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 소프트웨어 개발 학습 초기부터 TDD를 기본 역량으로 갖추고 싶은 분

  • 안정감 있게 요구사항을 충족시키고 설계를 개선하는 프로그래머로 성장하고 싶은 분

  • Spring Boot 웹 서버 응용프로그램 개발 실무에 TDD를 사용하고 싶은 분

  • TDD에 대한 기본 지식을 습득했지만 실무 도입에는 어려움을 느끼는 분

  • TDD와 관련된 잘못된 이해를 바로잡고 싶은 분

선수 지식,
필요할까요?

  • Java 코딩에 불편함이 없을 정도의 Java 언어 문법 이해

  • HTTP 기초 지식

  • 관계형 데이터베이스 기초 지식

안녕하세요
입니다.

1,048

수강생

51

수강평

22

답변

4.9

강의 평점

3

강의

여러 스타트업에서 CTO로 활동하며 기술팀의 역량 성장을 이끌어왔습니다.

코딩만큼이나 기술 지식과 경험을 나누는 일에서도 큰 즐거움을 느낍니다.

커리큘럼

전체

109개 ∙ (14시간 9분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

39개

5.0

39개의 수강평

  • denia님의 프로필 이미지
    denia

    수강평 6

    평균 평점 4.8

    수정됨

    5

    100% 수강 후 작성

    I really enjoyed the lecture. It was the most helpful lecture I've seen recently. Thank you very much for preparing such a thoughtful lecture. I'm also very interested in testing and have purchased and studied several lectures and books related to testing, such as unit tests and TDD, but I was always at a loss as to how to apply what I learned to actual projects. So I thought it would be great if there was a lecture that taught how to properly introduce TDD or testing into projects, and through this lecture, I was able to grasp a major direction for TDD. Thanks to this, I feel like I can now cautiously try introducing TDD into my own projects. And I really hope a lecture on legacy code, which you briefly mentioned at the end, will also be released. A message for those considering purchasing the lecture: If you want to introduce TDD but are unsure how to proceed, this lecture will definitely be a great help.

    • gyuwon2187
      지식공유자

      Congratulations on completing the course, denia park, and thank you. One of the big reasons I decided to prepare the course was meeting many people who said they felt lost about adopting TDD, as you mentioned at the end, and wanting to help solve this problem, so your course feedback holds special meaning for me. I hope you can stably adopt TDD in your real-world projects to build better products faster. 🙏

  • jin3378s님의 프로필 이미지
    jin3378s

    수강평 5

    평균 평점 5.0

    수정됨

    5

    67% 수강 후 작성

    This lecture clearly teaches that our work isn't just simple design and code writing, but understanding real-world customer problems and solving them through software. To someone who has only learned server, API, and databases, it's not easy to understand what it means to "develop in a customer-oriented way." Someone might tell them that using "Clean Architecture" or "Ports and Adapters" architecture makes it easy to handle changing requirements. Even after studying hard and applying patterns, it's not easy to feel like you are developing in a customer-oriented way. This lecture provides clear guidelines to such people. The content taught in the lecture is about well-organizing customer requirements and writing code that fulfills them. And in this process, it lets you realize how effective "Test-Driven Development" is. If you follow the lecture to the end and pay attention to its purpose, the question mark you have about TDD will turn into an exclamation mark.

    • gyuwon2187
      지식공유자

      Thank you very much for attending my lecture and leaving such a good review, 뜨어어님. It's a great relief to feel that what I wanted to convey was well delivered to you, 뜨어어님. I hope what you learned will positively impact your actual development work and be helpful to users!

  • gggorock님의 프로필 이미지
    gggorock

    수강평 6

    평균 평점 5.0

    5

    100% 수강 후 작성

    I was able to internalize TDD through hands-on coding exercises in a way that focused on the practical value of software and could also increase productivity, without getting bogged down in theory. I felt that the examples covered in the lecture were carefully refined and structured to cover the necessary knowledge for the lecture while still feeling relevant to real-world industry situations. I believe this lecture can be a truly accurate solution for people like me who have a habit of building things hastily, spending time debugging, failing, and starting over, or for those whose coding habits, including writing clumsy tests, actually lower productivity.

    • gyuwon2187
      지식공유자

      Kkokkorok, you worked hard to finish the long lecture! 👍 Thanks for the good review, and hope what you learned brings great results in practice!

  • junhyogi9546님의 프로필 이미지
    junhyogi9546

    수강평 1

    평균 평점 5.0

    5

    30% 수강 후 작성

    This lecture resolves common questions about TDD methodologies and applications often encountered. It effectively conveys the instructor's philosophy on how TDD helps us and its meaning from a problem-solving perspective.

    • gyuwon2187
      지식공유자

      Thank you for your review, Junhyeok. I'm glad that not only the techniques but also my thoughts seem to have been conveyed. If there's anything difficult, please don't hesitate to leave questions on Inflearn or Discord!

  • apfhdzi118666님의 프로필 이미지
    apfhdzi118666

    수강평 1

    평균 평점 5.0

    5

    27% 수강 후 작성

    Beyond learning the TDD development methodology itself, it also contains important discussions on the perspective to take and the areas to prioritize when proceeding with software design and implementation. Also, while the difficulty of the exercises might be considered quite easy, I felt that complex problems or phenomena that can arise during the actual development process were transformed into a simple and seemingly straightforward form and included in the lecture within apparently simple scenarios. I strongly recommend it not only for those new to TDD but also for those new to software engineering or those who wish to grow from a new perspective, moving beyond existing habits.

    • gyuwon2187
      지식공유자

      Thank you for the good review and recommendation. I hope the content in the latter half of the lecture is also helpful!

₩154,000

비슷한 강의

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