강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

Back-end

Spring Boot TDD - Beginner to Practice Accurately

Develop Spring Boot applications faster and more robustly. Through accurate theoretical explanations and practical hands-on exercises, you will naturally acquire effective methods for using TDD in developing HTTP API applications.

(5.0) 30 reviews

421 learners

  • gyuwon2187
스프링프레임워크
스프링부트
실습 중심
TDD
Spring Boot
JUnit
Architecture

Reviews from Early Learners

What you will learn!

  • Practical Spring Boot Web API Application Development using TDD

  • Accurate, key TDD theory

  • Using TDD without excessive tools and design

  • Improving the design after meeting requirements

  • Safely Refactoring from Simple Design to Structured Architecture

  • Correcting TDD Misunderstandings

Beyond code implementation
The power to create product value

With the proliferation of AI coding tools, the phrase "the era of automated code writing" has emerged. However, what truly matters isn't the code itself. It's the design and testing capabilities that enable accurate requirements verification and stable system improvement.

Test-Driven Development (TDD) is a powerful tool that helps you steadily improve your system based on automated testing. Beyond the code itself, it continuously verifies whether the software is "functioning properly" and guides development in the right direction.

TDD is no longer a 'nice to do' development habit.
It is a powerful weapon that realizes the value of a product beyond the code .

If you have this experience, I recommend it.

I followed the examples and lectures exactly, but I don't really feel the need for TDD.

Because I learned TDD only through skills and tools ,
I feel limited in my actual projects.

When I tried to introduce TDD, I felt lost because the codebase did not consider testing .

I once hastily applied TDD to a project , but all the tests broke, so I gave up.

So, we have established a TDD culture in various organizations.
I have incorporated 10 years of experience as a CTO into the lecture.

Explains TDD theory accurately.

To effectively use TDD, it's crucial to understand its core concepts and design principles, not just focus on simple, skill-based test writing techniques. This course provides a solid theoretical foundation for TDD and sound design, offering concept-based learning that helps avoid common misunderstandings and errors in practice.

Spring Boot alone is sufficient for TDD.

Even without a grand architecture, Spring Boot alone can help you effectively implement TDD. This course walks you through the core steps of TDD in a familiar Spring Boot environment, providing hands-on experience to understand how the entire TDD flow works.

Learn TDD through practical code flow.

You'll follow the same code writing flow used in real-world applications. From understanding requirements to developing test scenarios to implementing features and managing designs, you'll gain hands-on experience with the TDD workflow experienced by real-world developers. You'll also gain indirect experience with AI collaboration using Copilot.

10 years of experience, from a developer who is serious about TDD .

For over a decade, I've personally introduced and established a TDD culture in various teams and organizations. From collaboration to code review and design, this course provides practical insights and practical processes for implementing TDD in real-world projects.

You can achieve this effect:

Through this course, students can achieve various effects depending on their individual situations.

For those who are learning software development for the first time,

Those preparing for employment as programmers developing web server applications using Spring Boot can build TDD as a fundamental skill from the beginning of their software development studies. Learning TDD based on accurate information before accumulating other experience will allow you to learn it more easily and with less resistance than those with prior experience.

For those who want to develop stable applications in practice,

If you're developing Spring Boot web server applications in your field but feel anxious about bugs arising when creating new features, you can learn techniques for incrementally adding code to your system while ensuring requirements are met using automated tests. These skills will help you grow into a more valuable engineer.

Those who have learned TDD but are having difficulty applying it in practice

Those who have studied TDD and test automation but have had difficulty applying TDD when developing Spring Boot web server applications in practice can once again solidify their knowledge related to TDD and gain clues for solving problems they encounter in the field by conducting sufficiently prepared practice.

Lecture contents

The course begins with a theoretical explanation of TDD, and then moves on to a series of hands-on exercises that allow you to naturally become familiar with TDD and experience architecture improvements, requirement changes, and collaboration cases in a continuous manner.

TDD core theory

This book explains the core theories required to properly use Test Driven Development (TDD). It explains the TDD process defined by Kent Beck and the underlying design principles necessary for effective test writing and management. It also demonstrates the effectiveness of these theories through hands-on, real-world exercises.

Developing Web Server Applications Using TDD

Learning TDD at a practical level requires more than theoretical explanations and simple examples. In this course, we'll start with a Spring Boot web server application from an initialized state and develop all its features using TDD, approaching a real-world application.

Writing Effective Tests

You'll learn how to write readable test code that faithfully verifies requirements. Since tests must accurately verify software requirements and are a form of requirements documentation, the readability of test code is crucial. We'll consider how to write test code that's both functionally sound and easy to read, and we'll write it ourselves using JUnit.

Architecture improvements

To improve the design quality of applications developed using TDD, we evolve from a simple architecture to a structured one. We separate models from other components and apply the Command Query Responsibility Segretation (CQRS) pattern.

Introducing the knowledge sharer

  • We develop software using a variety of technologies in a variety of fields.

  • I have been working as a CTO at several startups for over 10 years and have established TDD in several teams.

  • I have shared my knowledge and experience as a speaker at various technical events on various topics, including TDD.

  • I'm running AutoParams , a JUnit extension library for generating test data.

Things to note before taking the course

Practice environment

  • The training videos are for Windows. However, macOS users can also take the course without any issues.

  • I'm using IntelliJ Community Edition. You can also use IntelliJ Ultimate Edition as is.

Learning Materials

  • Provides over 500 pages of slides.

  • All the practice code, consisting of over 100 commits, is available through a GitHub repository.

  • You can freely communicate with knowledge sharers and other students about TDD and the course content on Discord.

Recommended for
these people

Who is this course right for?

  • Those who want to build TDD as a core competency from the start of learning software development

  • Someone who wishes to grow as a programmer, reliably meeting requirements and improving design.

  • Those wanting to use TDD in Spring Boot web server application development practice.

  • Those who learned basic TDD but struggle with practical implementation.

  • For those who want to correct misunderstandings about TDD

Need to know before starting?

  • Understanding of Java language syntax sufficient for comfortable coding

  • HTTP Basic Knowledge

  • Basic Knowledge of Relational Databases

Hello
This is

522

Learners

30

Reviews

14

Answers

5.0

Rating

2

Courses

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

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

Curriculum

All

109 lectures ∙ (14hr 9min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

30 reviews

5.0

30 reviews

  • denia park님의 프로필 이미지
    denia park

    Reviews 6

    Average Rating 4.8

    Edited

    5

    100% enrolled

    강의를 정말 잘 들었습니다. 최근에 본 강의 중 가장 큰 도움이 되었습니다. 이렇게 정성스러운 강의를 준비해 주셔서 정말 감사드립니다. 저도 테스트에 관심이 많아 단위 테스트, TDD 등의 테스트 관련 강의와 책을 여러 권 구매하여 학습했으나, 배운 내용을 실제 프로젝트에 어떻게 적용해야 할지 매번 막막했습니다. 그래서 프로젝트에 TDD나 테스트를 제대로 도입하는 방법을 알려 주는 강의가 있으면 좋겠다고 생각했는데, 이 강의를 통해 TDD에 대한 큰 방향성을 잡을 수 있었습니다. 덕분에 저도 이제 제 프로젝트에 조심스럽게 TDD를 도입해 볼 수 있을 것 같습니다. 그리고 마지막에 짧게나마 말씀해주신 레거시 관련 강의도 꼭 나오면 좋겠네요 강의 구매를 고민하시는 분께 드리는 말씀: TDD를 도입해보고 싶은데 어떻게 해야할지 막막하신 분들이라면 이 강의가 분명 큰 도움이 될 것입니다.

    • 이규원
      Instructor

      denia park님 완강 축하드리고 또 감사드립니다. 제가 강의를 준비하게 된 큰 계기 중 하나가 마지막에 말씀해주신 TDD 도입이 막막하다는 분들을 많이 만났고 이런 문제를 해결해드리고 싶었던 거라서 수강평이 저에게 특별한 의미가 됩니다. 실무 프로젝트에도 안정적으로 TDD를 도입하셔서 더 좋은 제품을 더 빠르게 만드실 수 있기 바랍니다. 🙏

  • 뜨어어님의 프로필 이미지
    뜨어어

    Reviews 5

    Average Rating 5.0

    Edited

    5

    67% enrolled

    이 강의는 우리가 하는일이 단순 설계 및 코드 작성이 아니라, 현실세계의 고객의 문제 파악 및 소프트웨어를 통한 해결 이라는 것을 명확히 알려줍니다. 서버, API, 데이터베이스만 배운 사람에게 “고객 지향적으로 개발 하라” 라고 얘기해도 그게 무슨 이야기 인지 이해하기 쉽지 않고, 또 누군가는 “클린 아키텍쳐” 혹은 “Ports and Adapters” 아키텍처를 사용 하면 변화하는 요구사항을 처리하기 쉽다고 누군가 알려줍니다. 힘들게 공부해서 패턴을 적용해도 내가 고객 지향적으로 개발하고 있다고 느끼기는 쉽지 않습니다. 이 강의는 그러한 사람들에게 명확한 가이드라인을 제공 합니다. 강의에서 알려주는 내용은 고객의 요구사항을 잘 정리하고 이를 충족하는 코드를 작성하는 것 입니다. 그리고 이 과정에서 ”테스트 주도 개발“이 얼마나 효과적인지 알게 해줍니다. 강의를 끝까지 따라하고 취지에 귀 기울이다 보면 TDD에 대한 물음표가 느낌표로 바뀌게 될 것입니다.

    • 이규원
      Instructor

      뜨어어님 강의 들어주시고 좋은 평까지 남겨주셔서 정말 고맙습니다. 제가 말하고 싶었던 생각이 뜨어어님에게 잘 전달이 된 것처럼 느껴져서 참 다행입니다. 학습하신 내용들이 실제로 개발할 때 긍정적인 영향을 미치고 사용자에게도 도움이 되기를 바라겠습니다!

  • 꼬꼬록님의 프로필 이미지
    꼬꼬록

    Reviews 5

    Average Rating 5.0

    5

    100% enrolled

    TDD를 현학화되지 않고 실질적인 소프트웨어의 가치에 집중하며 생산성도 올려줄수 있는 방향으로 코드실습을 통해 체득할 수 있었습니다. 강의에서 다루는 예시가 현업에 있을법하면서도, 강의에서 필요한 지식을 커버하도록 세심하게 정제하여 구성하신게 느껴졌습니다. 저처럼 막 만들다 디버깅에 시간을 쏟다 실패해서 다시 처음부터 만들거나, 어설픈 테스트 작성으로 오히려 생산성을 떨어뜨리는 코딩습관을 가지신분들에게 이 강의는 충분히 적확한 해법이 될수 있을것이라고 생각합니다.

    • 이규원
      Instructor

      꼬꼬록님 짧지 않은 강의인데 완강까지 정말 수고 많으셨습니다. 👍 좋은 평가 감사드리고요, 강의로 얻으신 내용으로 실무에서 충분한 효과를 만들어 내시기를 바랍니다!

  • 박준혁님의 프로필 이미지
    박준혁

    Reviews 1

    Average Rating 5.0

    5

    30% enrolled

    흔히 접하는 TDD의 방법론, 적용 방식에서 품던 의문이 해결되는 강의입니다. TDD가 우리에게 어떤 도움을 주는지, 그것이 문제 해결 관점에서 어떤 의미를 가지는지 강사님의 철학이 잘 전달되는 강의입니다.

    • 이규원
      Instructor

      준혁님 후기 감사드립니다. 기법 뿐만 아니라 제가 가진 생각이 전달되는 것 같아서 다행입니다. 어려운 내용이 있으면 주저하지 마시고 인프런이나 디스코드에 질문 남겨주세요!

  • 망고님의 프로필 이미지
    망고

    Reviews 1

    Average Rating 5.0

    5

    27% enrolled

    TDD라는 개발 방법론을 배워 나간다는 것을 넘어서서, 소프트웨어 설계 및 구현을 진행할 때 어떤 관점에서 바라보고, 어떤 영역을 중요하게 여기는지 등 중요한 이야기 또한 담겨 있습니다. 또한, 실습 난이도 자체는 꽤나 쉽게 여겨질 수 있겠지만, 단순해 보이는 시나리오에 실제 개발하는 과정에서 나올 수 있는 복잡한 문제 혹은 현상들을 쉽고 단순해 보이는 형태로 환산하여 강의에 담았다고 느껴졌습니다. TDD입문 뿐만 아니라 소프트웨어 엔지니어로 입문하거나 기존 관성을 넘어선 새로운 관점에서의 성장을 원하시는 분들이 꼭 들었으면 합니다.

    • 이규원
      Instructor

      좋은 평가와 추전 감사드립니다. 강의 후반부의 내용도 도움이 되시면 좋겠습니다!

$118.80

Similar courses

Explore other courses in the same field!