Thumbnail
BEST
개발 · 프로그래밍 백엔드

Practical Testing: 실용적인 테스트 가이드 대시보드

(4.9)
111개의 수강평 ∙  1,526명의 수강생
77,000원

월 15,400원

5개월 할부 시
지식공유자: 박우빈
총 48개 수업 (12시간 27분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

초급자를 위해 준비한
[백엔드, 소프트웨어 테스트] 강의입니다.

이 강의를 통해 실무에서 개발하는 방식 그대로, 깔끔하고 명료한 테스트 코드를 작성할 수 있게 됩니다. 테스트 코드가 왜 필요한지, 좋은 테스트 코드란 무엇인지 궁금하신 모든 분을 위한 강의입니다.

✍️
이런 걸
배워요!
프로덕션 코드의 품질을 보장하는 탄탄한 테스트 코드 작성법
스프링 & JPA 기반 프로젝트에서의 테스트 코드 작성법
테스트 프레임워크 - JUnit5
Mock 프레임워크 - Mockito
테스트 코드를 통한 문서 자동화 도구 - Spring REST Docs

실무에 맞는 올바른 테스트 코드 
그 첫걸음이 되어드릴게요! 

테스트 코드가 정말 그렇게 중요한가요? 🤔

그럼요! 테스트 코드 없이는 내가 만든 애플리케이션의 품질을 일정 수준 이상으로 보장하기가 힘듭니다.
새로운 기능을 추가하거나 기존 기능을 수정할 때마다 매번 사람이 직접 하나하나 테스트를 한다면 얼마나 많은 시간과 비용이 소모될까요?

자동화된 테스트 코드를 통해 수시로, 원할 때마다 내가 만든 코드를 검증할 수 있다면 보다 탄탄한 애플리케이션을 만들 수 있습니다.
내가 작성한 코드가 정상적으로 동작한다는 것을 테스트 코드가 보장해주기 때문에, 리팩토링할 때 얻는 자신감은 덤이에요! 

테스트 코드, 필요하다는 건 알겠는데
어떻게 작성해야 할지 막막해요. 😵‍💫

테스트 코드의 중요성을 알아도, 읽기 어렵거나 잘못 작성한 테스트 코드는 자칫하면 또다른 고민거리가 될 수 있습니다. 무엇을 테스트하고 있는지 알기 어렵거나, 복잡해서 유지보수하기 어려운 형태라면 시간이 지날수록 테스트 코드에 손이 가지 않게 될 거예요.

이 강의에서는 프로덕션 코드의 변화에 맞추어 같이 발전해나갈 수 있는, 깔끔하고 명료한 테스트 코드 작성법을 알려드립니다.


이 강의에서는 📖

테스트 프레임워크

자바 진영의 테스트 프레임워크인 JUnit5와 Mock 테스트 프레임워크인 Mockito에 대해서 다룹니다.
어떤 것을 검증해야 하는지, 가짜 객체인 Mock은 어떤 상황에 사용하면 좋을지를 케이스별로 상세한 예시를 들어 이야기합니다.

스프링과 JPA, 레이어드 아키텍처 기반 테스트

레이어드 아키텍처 기반의 API 서버를 구축해보면서, 레이어별 테스트 코드를 어떻게 작성하면 좋을지를 이야기합니다.
기술 자체에 대한 내용도 소개하지만, 어떤 언어, 어떤 기술을 사용하더라도 테스트를 깔끔하게 작성할 수 있는 기본기를 다룹니다.

실무 코드 리뷰에서 다루는 내용들

우아한테크코스, 우아한테크캠프pro 리뷰어를 하며 받았던 여러 가지 질문과 관련 답변을 강의에 녹였습니다.
강의를 통해 자연스럽게 실제 실무에서 다루고 고민하는 내용들을 접할 수 있습니다.

한 단계 성장을 위한 키워드 정리

단순히 테스트와 관련한 내용만 다루고 넘어가는 것이 아니라, 백엔드 개발자로서 조금 더 성장할 수 있는 발판을 마련했습니다.
한 섹션이 끝날 때마다 강의 중에 다루게 되는 관련 핵심 키워드, 심화학습을 위한 키워드를 제시하여 개발 지식에 대한 지평을 넓힐 수 있습니다.

상세한 설명과 장표, 직접 따라해볼 수 있는 예시 프로젝트

주제별 핵심 포인트와 이해를 돕기 위한 여러 그림을 제시하고, 개념 설명 이후에는 예시 프로젝트를 통한 코딩을 진행합니다.
처음부터 끝까지 코드를 직접 따라 작성하면서 이해도를 높일 수 있도록 구성하였습니다.


이런 분들께 
추천합니다 🙌🏻


커리큘럼을 
확인해보세요 ✨


Q&A 💬

Q. 스프링과 JPA를 아직 잘 모르는데 수강할 수 있나요?

필요한 내용은 간단하게 설명해 드리고 있지만, 스프링과 JPA에 대한 기본적인 이해는 필요합니다. 
그렇다고 크게 복잡한 내용을 다루고 있지는 않아서, 해당 기술로 API를 한두 번 만들어보신 정도라면 충분합니다. 
모르는 내용이 나왔을 때 같이 학습해 나가는 방식도 좋을 것 같네요 :)

Q. 실습 환경이 궁금해요!

실무에서 개발하는 것과 최대한 동일하게 보여드리기 위해 기본적으로 IntelliJ Ultimate 라이센스를 사용합니다.
macOS를 사용하고 있는데, 다른 운영체제를 사용하시는 분들이 참고하실 수 있도록 IntelliJ 단축키 플러그인을 적용했어요.

스프링 부트(Spring Boot)는 2.7.7 버전을 사용하는데, 그 이상의 버전으로 수강하셔도 크게 무리는 없을 거예요. 자세한 내용은 공개된 강의인 [샘플 프로젝트 소개 & 개발 환경 안내] 수업을 참고해 주세요. :)

Q. 순서 상관 없이 원하는 섹션을 먼저 수강해도 될까요?

이 강의는 하나의 큰 흐름 안에서 점차 발전해가는 프로덕션 코드와 테스트 코드를 보여드리고 있기 때문에, 앞 섹션부터 순차적으로 학습하시는 것을 추천합니다. :)

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
테스트 코드가 왜 필요한지 궁금한 분들
스프링, JPA는 학습했지만 테스트 코드를 어떻게 작성해야 할지 모르겠는 분들
깔끔하고 명확한 테스트 코드를 작성하고 싶은 모든 분들
📚
선수 지식,
필요할까요?
스프링과 JPA 기반으로 기본적인 API 개발을 한번이라도 해보신 분들!

안녕하세요
박우빈 입니다.
박우빈의 썸네일

안녕하세요 ☺️
몰입을 즐기는 개발자, 박우빈입니다.

 

- (현) 캐치테이블(와드) 소프트웨어 엔지니어
- (전) 우아한형제들 소프트웨어 엔지니어
- 우아한테크코스 3기, 4기 리뷰어 / 우아한테크캠프pro 1기 리뷰어

커리큘럼 총 48 개 ˙ 12시간 27분의 수업
이 강의는 영상, 수업 노트, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 1. 테스트는 왜 필요할까?
섹션 2. 단위 테스트
섹션 3. TDD: Test Driven Development
TDD: Test Driven Development 16:08
키워드 정리 05:33
섹션 4. 테스트는 [ ]다.
테스트는 [ ]다. 04:22
DisplayName을 섬세하게 08:35
BDD 스타일로 작성하기 06:30
키워드 정리 03:26
섹션 5. Spring & JPA 기반 테스트
레이어드 아키텍처(Layered Architecture)와 테스트 미리보기 05:24
Spring / JPA 훑어보기 & 기본 엔티티 설계 13:32
Persistence Layer 테스트 (1) 30:08
Persistence Layer 테스트 (2) 12:00
Business Layer 테스트 (1) 47:56
Business Layer 테스트 (2) 19:48
Business Layer 테스트 (3) 57:40
Presentation Layer 테스트 (1) 55:14
Presentation Layer 테스트 (2) 01:02:58
키워드 정리 13:41
섹션 6. Mock을 마주하는 자세
Mockito로 Stubbing하기 42:52
Test Double 10:42
@Mock, @Spy, @InjectMocks 18:59
BDDMockito 03:30
Classicist VS. Mockist 07:50
키워드 정리 02:30
섹션 7. 더 나은 테스트를 작성하기 위한 구체적 조언
한 문단에 한 주제! 06:54
완벽하게 제어하기 06:31
테스트 환경의 독립성을 보장하자 06:21
테스트 간 독립성을 보장하자 04:18
한 눈에 들어오는 Test Fixture 구성하기 15:59
Test Fixture 클렌징 15:16
@ParameterizedTest 09:19
@DynamicTest 04:33
테스트 수행도 비용이다. 환경 통합하기 19:50
Q. private 메서드의 테스트는 어떻게 하나요? 08:39
Q. 테스트에서만 필요한 메서드가 생겼는데 프로덕션 코드에서는 필요 없다면? 04:59
키워드 정리 04:49
섹션 8. Appendix
학습 테스트 16:36
Spring REST Docs 01:01:12
섹션 9. Outro
테스트를 작성하는 마음가짐 20:11
강의자료 모음
강의 게시일 : 2023년 04월 25일 (마지막 업데이트일 : 2023년 05월 07일)
수강평 총 111개
수강생분들이 직접 작성하신 수강평입니다.
4.9
111개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
요니 thumbnail
5
안녕하세요 강사님! 4개월 차 신입 백엔드 개발자 입니다 RestDocs를 회사에서 사용해야 해서 이를 위해 듣게 되었는데, 결과적으로 테스트가 왜 필요한지 그 필요성을 느꼈고 테스트 코드를 어떻게 짜야 하는지 까지 같이 배울 수 있었습니다. 그런데 제가 가장 만족하는 부분은 현업에서 사용하시는 방식을 함께 알려주시는게 너무 감사했습니다. 물론 그에 따른 질문에 대한 답변도 함께 달아주셔서 너무 감사했구요. 저는 특히 @Transactional(readOnly = true) 를 통해 DB 엔드포인트를 구분할 수 있는점, Service와 Controller간의 RequestDto, ResponseDto를 구분할 수 있는 점 등을 알려주셔서 너무 감사했고, 제 질문에 대한 답변으로 코드의 가독성 보단 애플리케이션의 성능이 더 중요하고, 이를 위해 코드의 가독성이 떨어지게 되는 부분은 어쩔 수 없다고 설명해주신걸 듣고 제 실무 코드를 리팩토링 하기도 했습니다! 아 그리고 guava도 알려주셔서 잘 쓰고 있습니다 ㅎㅎ 정말 RestDocs 배우러 왔다가 덤으로 더 많은걸 얻어가는 강의였습니다. 다시한번 강의 너무 감사드립니다. 추가적으로 강사님의 현업 경험을 공유해 주셔서, 정말 현업을 위한 프로젝트 강의를 만들어 주시면 어떨까 싶습니다. 인프런의 많은 강의들이 학생 또는 취준생을 초점으로 맞춰져 있고, 물론 그런 부분들이 수요가 더 많겠지만, 정말 현업을 대상으로 하여 밀도 높은 고민을 하는 프로젝트성 강의는 없다고 생각합니다. 단순한 학습을 넘어서, 현업의 경험들이 녹아들어간 고급 강의가 나온다면, 또 그걸 강사님이 찍어주신다면 진짜 너무 너무 좋을 것 같습니다. 제 개인적인 바램인데 읽어주셔서 감사합니다^^ 꼭 프로젝트 강의가 아니더라도, 강사님의 다른 강의가 나온다면 무조건 수강할 예정입니다. 개인적으로 개발자는 끊임없이 고민하는 사람들이라고 생각하는데요, 그런 측면에서 강사님과의 생각이 일치한다는 느낌을 받아서 좋았고 (질문에 대한 답변으로), 영광이었습니다. 테스트 코드를 다시 본격적으로 작성할 때 강의를 복습하면서 또 질문 올리겠습니다. 감사합니다.
2023-10-28
지식공유자 박우빈
khd1692 님~! 아니 이렇게 정성스러운 수강평이라니 🥲 RestDocs를 커리큘럼에 넣을까말까 고민했는데 넣길 잘했네요! 다음 강의에 대한 것들은 다방면으로 고민하고 있습니다. ㅎㅎㅎ 진심이 느껴지는 수강평 정말 감사드리고, 앞으로의 학습 여정도 응원하겠습니다~! ☺️
2023-12-03
lango thumbnail
5
먼저 감사의 말씀을 전합니다. 강의를 듣는 12시간 동안 테스트를 작성하는 의도와 목적을 생각하는 생산적인 시간을 가질 수 있었습니다. 또한, 테스트에 대한 막연했던 개념들에 대해서 갈피를 잡을 수 있었고, 타협하지 않는 개발 정신을 들이는 데 동기부여 받을 수 있었습니다. 앞으로도 안주하지 않고 배웠던 테스트 코드 지식을 이리저리 응용해보며, 도구에 구애받지 않고 테스트를 작성할 수 있는 개발자로 성장하겠습니다!
2023-09-19
지식공유자 박우빈
lango님! 제 욕심이 많아 이런저런 이야기 하다보니 강의가 꽤 길어졌는데, 제 진심이 잘 전달된 것 같아 기쁘네요. ㅎㅎㅎ 앞으로도 테스트 코드와 함께 든든한 개발자로 같이 성장해갔으면 좋겠습니다. 수강평 남겨주셔서 감사드려요! ☺️
2023-09-26
최강개발자 thumbnail
5
안녕하세요 6년 차 현업 개발자입니다. 테스트 코드를 대략적으로만 알고 사실 실무에서 활용을 많이 안 했습니다. 제 결론은 경력 있는 개발자들도 테스트 코드를 우아하게 못 짜시는 분도 많습니다. 사실 이 강의 보기 전까지 “귀찮다”라고 생각했습니다 제가 그 개발자 중에 한 명입니다. 하지만 이 강의를 보고 생각이 바꿨습니다. 시니어 개발자이고, 테스트 코드에 대한 두려움이 많던 개발자라 이번 기회에 아주 잘 배웠습니다. 더불어 JPA도 실무에 근접하게 알려주시고 아마 기초가 없다면 “왜?” 저렇게 했을까라고 생각하겠지만 제가 딱 원하는 강의입니다. 감사합니다.
2023-06-16
지식공유자 박우빈
최강개발자님, 상세한 수강평 감사합니다~! "테스트 코드에 대한 생각이 바뀌었다"니 저로서는 최고의 칭찬이네요. 도움이 되셨다니 정말 기쁩니다. 강의한 저도 테스트 코드가 귀찮다는 마음이 올라올 때가 한두번이 아닌데, 왜 양질의 테스트 코드를 계속 고민하고 작성해야 하는지 상기하면서 현업에서도 같이 화이팅하시죠~! 감사합니다 :)
2023-06-20
Jason thumbnail
5
테스트 관련해서 가려운 곳을 정말 벅벅 긁어주시는 강의 였습니다. 혼자 공부하는데 테스트 코드 관련해서 피드백을 받을 수 있는 곳이 없다보니 IT동아리나 교육프로그램의 프로젝트 레포 여러개를 뒤져가면서 테스트 코드는 어떻게 짜야할지에 대한 고민을 하고 있었는데 강의 통해서 정말 도움이 많이 됐습니다. 이제 방향과 방법을 어느정도 알았으니 스스로 익히고 제것으로 만들어야하는 단계가 남았네요. 좋은 강의 감사드립니다. 강의 준비를 엄청 신경써서 하신게 느껴졌습니다. 감사합니다.
2023-05-16
지식공유자 박우빈
Jason님! 시원~한 수강평 감사합니다~! 도움이 많이 되셨다니 제게는 정말 큰 힘이 되네요. 걸어가시는 학습의 여정 응원하겠습니다. :)
2023-05-18
목동 개발자 thumbnail
5
지금까지 무지성으로 테스트를 작성해왔었는데.. 이 강의를 들으며 더 단단한 코드를 만들 기본기를 쌓을 수 있었습니다. 강의 추천합니다.
2023-07-30
지식공유자 박우빈
목동 개발자님! 기본기를 쌓으시는 과정에 동참할 수 있어서 기쁘네요. 테스트 작성하는 일이 때로는 고되지만, 같이 힘내보시죠. ㅎㅎㅎ 수강평 남겨주셔서 감사합니다! ☺️
2023-08-20
연관 로드맵
이 강의가 포함된 잘 짜여진 로드맵을 따라 학습해 보세요!