NEXTSTEP에서 진행하는 교육과정 ATDD와 함께 클린 API로 가는 길 4기다.
글을 작성하는 시점에서는 과정명이 ATDD, 클린 코드 with Spring으로 변경되었다.
ATDD 미션 다시 보기
1주차 - 인수 테스트 기반 기능 구현
- 인수 테스트 작성 방법
- 인수 테스트 가독성 고려
2주차 - ATDD + TDD Cycle 경험
- 인수 테스트를 시작으로 세부 구현을 단위 테스트로 구현
- Outside In TDD와 InSide Out TDD를 경험
- 테스트 비용을 고려하여 단위 테스트로 분리
3주차 - 인수 테스트 기반 리팩토링
- 인수 테스트를 통해 점진적으로 기능 개발 경험
- 인수 테스트 통합을 통해 인수 테스트의 역할을 구체화
- 인수 테스트에서 중요한 인증 부분에 대한 학습
4주차 - 문서화를 포함한 ATDD 전체 개발 사이클
- 테스트 목적에 따른 테스트 설정
- 테스트 기반 문서 자동화 경험
강의 핵심 주제 다시보기
ATDD Cycle
- 1. 요구사항 -> 인수 테스트 -> API 개발
- 2. 요구사항 -> 인수 테스트 -> TDD -> API 개발
- 3. 요구사항 -> 인수 테스트 -> 문서화 -> TDD -> API 개발 -> 테스트 리팩토링
테스트 리팩터링
- 인수 테스트 스텝을 나누어 리팩터링
- 인수 테스트 검증되는 부분을 단위 테스트로 분리
- 인수 테스트의 흐름에 따라 하나로 통합하기
테스트 도구
- Spring, Spring Boot
- JUnit5, Mockito
인수 테스트 도구
- RestAssured
- @SpringBootTest + RANDOM_PORT
단위 테스트 도구
- MockitoExtension, SpringExtension
- @Mock, @MockBean
인수 테스트 인증 도구
- RestAssured + auth()
문서화 테스트 도구
- Spring Rest Docs
- Asciidoctor
- RestAssuredMockMvc
REST API
- REST 기반 API 설계를 인수 테스트로 검증
- RestAssured를 통해 인수 테스트 작성하기
- HTTP 표준을 기반으로 REST의 Uniform Interface 제약 지키기
- HTTP Cache를 통해 Cache 제약 조건 지키기
- JWT를 활용한 OAuth 2.0 규약을 통해 Stateless 제약 조건 지키기
강의 목표 다시보기
- 인수 테스트 기반으로 TDD를 할 수 있다.
- 테스트를 효과적으로 리팩터링하여 유지보수를 잘할 수 있다.
- 새로운 프로젝트뿐만 아니라 레거시 코드에서도 TDD를 할 수 있다.
- 남들에게 TDD와 ATDD가 실무에서 가능하다고 설명하고 할 수 있다.
후기
드디어 5주간의 교육이 마무리되었다. (이전 주차별 후기글을 작성해서 마땅히 쓸 내용이 많지는 않다.)
이 교육은 ATDD뿐만 아니라 다양한 것도 학습해서 좋았는데 다양한 테스트 도구와 사용으로 테스트 숙련도가 올랐다고 느껴진다.
Mockito, RestAssured, @SpringBootTest 등 다양한 도구를 배우고 사용하면서 시야가 넓어졌다.
또한, 프로덕션 코드처럼 커지는 테스트 코드의 복잡성을 어떻게 관리할지 고민도 해봤다.
가장 큰 배움은 실무에 어떻게 적용할지 접근 방법을 알 수 있는 거다.
TDD, 클린 코드를 통해서 단위 테스트를 배웠지만 과연 내가 예전에 다녔던 회사나 프로젝트에 그대로 적용할 수 있을까? 아무리 고민해봐도 그 환경과 복잡한 레거시에 적용을 못했을 거란 생각이 압도적으로 높았다.
제가 진행하는 강의인 '클린코드를 위한 TDD, 리팩토링' 의 수강자들 대부분이 '배운 내용을 어디서부터 적용해야 할지 막막하고, 실무에 바로 적용하기가 어렵다'는 아쉬움을 표하는 것을 많이 보았습니다. - 박재성(자바지기)
추천사만 봐도 얼마나 어려운 일인지 알 수 있는데, 이 교육을 통해 강사님이 예전 회사와 현재 회사에 ATDD를 어떻게 적용했는지 그 과정을 엿볼 수 있어서 좋았다.
놀라운 건 교육을 통해 배웠던 내용과 거의 흡사하다는 점이다.
강사님의 실제 경험을 수강생이 그대로 느낄 수 있도록 교육으로 최대한 경험해볼 수 있게 짜인 커리큘럼을 다시 보면 대단하다는 생각이 든다. (교육비 70만원도 싸다고 느껴진다)
후기부터 작성하다보니 정리되지 않은 배운 내용이 많다.
배운 거 잊기 전에 잘 정리해서 나중에 써먹어야겠다.
'교육 및 인강 > ATDD, 클린 코드 with Spring' 카테고리의 다른 글
ATDD 4주차 - 테스트 기반 문서화 (0) | 2022.07.25 |
---|---|
ATDD 3주차 - ATDD 기반 리팩토링 (0) | 2022.07.09 |
ATDD 2주차 - ATDD + TDD 후기 (0) | 2022.06.24 |
ATDD 1주차 - 인수테스트 후기📖 (0) | 2022.06.21 |
ATDD 시작하면서... (0) | 2022.06.09 |