이 과정을 시작한 이유
작년 11월에 자바지기님의 TDD, 클린코드 with Java 17기를 수강했었다.
해당 과정은 토이 프로젝트부터 맨 마지막 레거시 코드에 이르기까지 점진적으로 TDD, 클린코드에 대해 학습을 할 수 있도록 해준다. TDD에 대한 지식 혹은 경험이 없다면 이 과정부터 시작하는 것을 추천한다.
(ATDD 학습 안내에도 이 커리큘럼을 추천한다)
TDD 코스는 정말 고통스러우면서도 얻은 것이 많은 과정이었지만, 한 가지 걱정되는 점이 있었다.
'웹 애플리케이션 환경에서는 TDD를 어떻게 적용시킬 수 있을까?'
물론 TDD 과정의 맨 마지막은 레거시 코드를 TDD로 리팩터링 하는 단계가 있지만 그전까지는 모두 순수 Java의 토이 프로젝트로 연습을 하기 때문에 부족한 감이 없지 않다.
그런데 마침! 1월부터 ATDD, 클린코드 with Spring 강의가 준비중인 것이 아닌가!
사실, TDD 강의를 들으면서 나의 부족함을 많이 느꼈었다.
(그럼에도 불구하고, 주니어 Java 백엔드 개발자 분들께 TDD과정을 정말 강력 추천합니다.)
초반에는 리뷰어 분들의 조언을 이해하지도 못했고, 내가 이런것도 몰랐구나..? 하는 시간의 연속이었다.
그래서 ATDD 코스도 걱정이 앞섰지만, 분명히 배운 것이 있었고 성장했다고 느꼈기에 다음 단계의 배움을 위해 도전하게 되었다.
TDD 때에는 코스의 리뷰 사이클과 그 자체의 내용을 따라가기 벅찼지만, 이번엔 한 번 겪었으니 더 나아졌을 것이라 믿고 그 과정을 블로그에 기록하면서 성장하려고 한다.
강의 시작 전 준비한 것
적지 않은 강의료 지불과 의지 불태우기
강의료는 800,000원으로 적지 않은 금액이다.
그럼에도 불구하고 완주율이 높지는 않다고 알고있고, 실제로 중간중간 포기하고 싶은 순간도 있다.
다만 TDD 과정에서 알게된 점은, 내가 포기하지만 않으면 리뷰어 분들과 강사님은 분명히 끝까지 도와주시고 결국 해낼 수 있다는 점이다.
이전 과정에서 보면 회사 지원을 받아서 오신 분도 계셨지만 나는 내 사비로 지출한 만큼, 이번에도 끝까지 열심히 하겠다는 의지를 불태웠다!!
스팸 메일함 확인
이건 이전 TDD를 들을 때 겪은 일인데, 수강을 신청할 때 한 번, 수업 시작 전 한 번 안내 메일이 오게 된다.
그런데 메일이 오지 않은 것 같아 확인해 보니 스팸 메일함으로 가있었다...
카카오 메일에서 넥스트 스텝의 도메인 주소가 스팸 메일로 걸러지는 듯했다. 안내 메일에 다양한 내용이 있으니 꼭 확인해 보시길!
사전 미션 (0단계 미션)
TDD, ATDD 강의는 깃헙의 PR 시스템을 기반으로 이루어진다. 처음 강의를 듣는다면 리뷰 사이클에 따라 git으로 하는 작업이 다양하게 있는데, 이 사전 미션을 통해 리뷰 사이클을 미리 체험하고 해당 강의의 맛보기 미션을 진행할 수 있다.
이번 과정에서는 ATDD에서 이용되는 라이브러리인 RestAssured에 대한 간단한 미션과 리뷰 요청에 대한 내용이 있었다.
RestAssured를 사용해서 https://google.com으로 GET 요청을 보내고 응답 코드 200을 받는 테스트 작성하기
먼저 진행한 것은 RestAssured의 사용법 찾기!
https://github.com/rest-assured/rest-assured
GitHub - rest-assured/rest-assured: Java DSL for easy testing of REST services
Java DSL for easy testing of REST services. Contribute to rest-assured/rest-assured development by creating an account on GitHub.
github.com
그리고 Usage Guide 문서의 5. Getting Response Data
부분과 7.Verifying Response Data
부분을 참고하여 미션을 진행했다.
@DisplayName("응답 객체로 구글 페이지 접근 테스트")
@Test
void accessGoogle_response() {
// TODO: 구글 페이지 요청 구현
// Response 반환 (extract method 사용)
ExtractableResponse<Response> response = when()
.get("https://google.com")
.then()
.extract();
assertThat(response.statusCode()).isEqualTo(HttpStatus.OK.value());
}
@DisplayName("statusCode method로 구글 페이지 접근 테스트")
@Test
void accessGoogle_statusCode() {
// TODO: 구글 페이지 요청 구현
// statusCode method로 검증
when()
.get("https://google.com")
.then()
.statusCode(200);
}
응답 객체를 직접 받아서 테스트하는 방법과, 자체 메서드를 통해 검증하는 방법이 있어 해당 두 가지 방법으로 검증해 보았다.
'생각&경험' 카테고리의 다른 글
취준생이 2024 당근 테크 밋업 다녀온 후기 (Feat. 굿즈👩💻) (0) | 2024.10.08 |
---|---|
공직유관단체(인천공항시설관리) 채용 프로세스, 최종 탈락에 대한 회고 (0) | 2024.09.18 |
원티드 백엔드 프리온보딩 인턴십 과제 회고(ATDD로 개발하기) (0) | 2024.08.21 |
댓글