강의

멘토링

커뮤니티

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) 43 reviews

484 learners

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

Reviews from Early Learners

What you will gain after the course

  • 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

1,262

Learners

67

Reviews

23

Answers

5.0

Rating

3

Courses

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

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

Curriculum

All

109 lectures ∙ (14hr 9min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

43 reviews

5.0

43 reviews

  • denia님의 프로필 이미지
    denia

    Reviews 6

    Average Rating 4.8

    Edited

    5

    100% enrolled

    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
      Instructor

      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

    Reviews 5

    Average Rating 5.0

    Edited

    5

    67% enrolled

    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
      Instructor

      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

    Reviews 8

    Average Rating 5.0

    5

    100% enrolled

    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
      Instructor

      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

    Reviews 1

    Average Rating 5.0

    5

    30% enrolled

    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
      Instructor

      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

    Reviews 1

    Average Rating 5.0

    5

    27% enrolled

    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
      Instructor

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

$118.80

Similar courses

Explore other courses in the same field!