Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
BEST
개발 · 프로그래밍

/

백엔드

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

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

(5.0) 수강평 30개

수강생 406명

  • 이규원
스프링프레임워크
스프링부트
실습 중심
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 기초 지식

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

안녕하세요
입니다.

507

수강생

30

수강평

13

답변

5.0

강의 평점

2

강의

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

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

커리큘럼

전체

109개 ∙ (14시간 9분)

해당 강의에서 제공:

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

수강평

전체

30개

5.0

30개의 수강평

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

    수강평 6

    평균 평점 4.8

    수정됨

    5

    100% 수강 후 작성

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

    • 이규원
      지식공유자

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

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

    수강평 5

    평균 평점 5.0

    수정됨

    5

    67% 수강 후 작성

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

    • 이규원
      지식공유자

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

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

    수강평 5

    평균 평점 5.0

    5

    100% 수강 후 작성

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

    • 이규원
      지식공유자

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

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

    수강평 1

    평균 평점 5.0

    5

    30% 수강 후 작성

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

    • 이규원
      지식공유자

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

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

    수강평 1

    평균 평점 5.0

    5

    27% 수강 후 작성

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

    • 이규원
      지식공유자

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

월 ₩30,800

5개월 할부 시

₩154,000

비슷한 강의

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