강의

멘토링

로드맵

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님의 프로필 이미지
    denia

    Reviews 6

    Average Rating 4.8

    Edited

    5

    100% enrolled

    Tôi thực sự đã lắng nghe bài giảng rất kỹ. Đây là bài giảng hữu ích nhất trong số những bài tôi đã xem gần đây. Tôi thực sự cảm ơn vì đã chuẩn bị một bài giảng tâm huyết như vậy. Tôi cũng rất quan tâm đến kiểm thử, nên đã mua và học nhiều khóa học và sách liên quan đến kiểm thử như Unit Test, TDD,... nhưng lần nào cũng cảm thấy bế tắc về cách áp dụng những gì đã học vào dự án thực tế. Vì vậy, tôi đã nghĩ sẽ thật tốt nếu có một bài giảng chỉ cách áp dụng TDD hoặc kiểm thử vào dự án một cách đúng đắn, và thông qua bài giảng này, tôi đã nắm bắt được hướng đi tổng thể về TDD. Nhờ đó, giờ đây tôi cũng có thể thử áp dụng TDD một cách thận trọng vào dự án của mình. Và ở phần cuối, bài giảng liên quan đến legacy mà bạn đã đề cập ngắn gọn, tôi rất mong nó sẽ sớm ra mắt. Lời nhắn gửi đến những ai đang cân nhắc mua khóa học: Nếu bạn muốn thử áp dụng TDD nhưng đang băn khoăn không biết phải làm sao, thì bài giảng này chắc chắn sẽ giúp ích rất nhiều.

    • gyuwon2187
      Instructor

      Xin chúc mừng và cảm ơn bạn denia park đã hoàn thành khóa học. Một trong những động lực lớn để tôi làm khóa học này là vì tôi đã gặp nhiều người nói họ gặp khó khăn khi bắt đầu với TDD như bạn đã đề cập ở cuối, và tôi muốn giúp họ giải quyết vấn đề đó, nên đánh giá khóa học của bạn thực sự có ý nghĩa đặc biệt với tôi. Tôi hy vọng bạn có thể áp dụng TDD một cách ổn định vào các dự án thực tế để tạo ra sản phẩm tốt hơn và nhanh hơn. 🙏

  • jin3378s님의 프로필 이미지
    jin3378s

    Reviews 5

    Average Rating 5.0

    Edited

    5

    67% enrolled

    Khóa học này làm rõ rằng công việc của chúng ta không chỉ đơn giản là thiết kế và viết code, mà là xác định vấn đề của khách hàng trong thế giới thực và giải quyết chúng thông qua phần mềm. Đối với người chỉ học về server, API, database, dù có nói "hãy phát triển hướng đến khách hàng" thì cũng khó mà hiểu được đó là gì, hoặc có người nói rằng sử dụng kiến trúc "Clean Architecture" hay "Ports and Adapters" thì dễ xử lý các yêu cầu thay đổi hơn. Dù đã học hành vất vả và áp dụng các mẫu thiết kế, cũng khó cảm nhận được mình đang phát triển hướng đến khách hàng. Khóa học này cung cấp hướng dẫn rõ ràng cho những người như vậy. Nội dung khóa học chỉ cho cách sắp xếp tốt các yêu cầu của khách hàng và viết code đáp ứng chúng. Và trong quá trình này, nó cho thấy "Phát triển dựa trên kiểm thử" (Test Driven Development) hiệu quả đến mức nào. Nếu theo dõi khóa học đến cùng và lắng nghe kỹ mục đích của nó, dấu hỏi về TDD của bạn sẽ biến thành dấu chấm than.

    • gyuwon2187
      Instructor

      Tôi thực sự cảm ơn bạn 뜨어어 vì đã tham gia khóa học và để lại đánh giá tốt. Tôi cảm thấy thật may mắn vì những suy nghĩ mà tôi muốn truyền tải đã được bạn 뜨어어 tiếp nhận tốt. Tôi hy vọng những nội dung đã học sẽ có tác động tích cực khi bạn phát triển thực tế và cũng hữu ích cho người dùng!

  • gggorock님의 프로필 이미지
    gggorock

    Reviews 5

    Average Rating 5.0

    5

    100% enrolled

    Tôi đã có thể tiếp thu TDD thông qua thực hành code, theo hướng tập trung vào giá trị thực tế của phần mềm mà không bị lý thuyết hóa, đồng thời có thể nâng cao năng suất. Tôi cảm nhận được rằng các ví dụ trong bài giảng vừa rất thực tế, vừa được chọn lọc và sắp xếp tỉ mỉ để bao quát kiến thức cần thiết. Đối với những người có thói quen coding như tôi, tức là làm đại rồi tốn thời gian debug, thất bại và phải làm lại từ đầu, hoặc viết test cẩu thả làm giảm năng suất, tôi nghĩ rằng bài giảng này hoàn toàn có thể là giải pháp phù hợp.

    • gyuwon2187
      Instructor

      꼬꼬록님, xin chúc mừng đã nỗ lực hoàn thành khóa học không ngắn này. 👍 Cảm ơn bạn về đánh giá tốt. Hy vọng bạn sẽ áp dụng hiệu quả nội dung khóa học vào thực tế công việc!

  • junhyogi9546님의 프로필 이미지
    junhyogi9546

    Reviews 1

    Average Rating 5.0

    5

    30% enrolled

    Đây là buổi học giải đáp những thắc mắc thường gặp về phương pháp luận, cách áp dụng TDD. Đây là buổi học truyền tải tốt triết lý của giảng viên về việc TDD mang lại lợi ích gì cho chúng ta, và ý nghĩa của nó từ góc độ giải quyết vấn đề.

    • gyuwon2187
      Instructor

      Cảm ơn 준혁님 về bài đánh giá ạ. Rất vui vì không chỉ kỹ thuật mà cả suy nghĩ của tôi cũng được truyền tải ạ. Nếu có nội dung nào khó hiểu thì đừng ngần ngại đặt câu hỏi trên Inflearn hoặc Discord nhé!

  • apfhdzi118666님의 프로필 이미지
    apfhdzi118666

    Reviews 1

    Average Rating 5.0

    5

    27% enrolled

    Vượt ra khỏi việc học phương pháp phát triển gọi là TDD, nó còn chứa đựng những câu chuyện quan trọng như nhìn nhận từ góc độ nào khi tiến hành thiết kế và triển khai phần mềm, hay coi trọng những khía cạnh nào. Ngoài ra, mặc dù độ khó của phần thực hành có thể được coi là khá dễ, tôi cảm thấy rằng bài giảng đã chuyển đổi các vấn đề hoặc hiện tượng phức tạp có thể phát sinh trong quá trình phát triển thực tế thành một hình thức dễ hiểu và đơn giản hơn để đưa vào bài giảng. Không chỉ dành cho người mới bắt đầu với TDD, tôi thực sự khuyên những người muốn trở thành kỹ sư phần mềm hoặc muốn phát triển từ một góc nhìn mới vượt ra ngoài quán tính hiện tại nên tham gia.

    • gyuwon2187
      Instructor

      Cảm ơn những đánh giá và đề xuất tốt. Mong rằng nội dung phần sau của bài giảng cũng sẽ giúp ích cho bạn!

$118.80

Similar courses

Explore other courses in the same field!