![[워밍업 클럽 4기 - 백엔드] 마지막 발자국](https://cdn.inflearn.com/public/files/blogs/e52147ab-ba26-4ba4-aeb5-2f155def01bb/image (7).png)
[워밍업 클럽 4기 - 백엔드] 마지막 발자국
마지막 회고
[Day 16] Presentation Layer(2)
여섯 번째 섹션 중에서 제일 재밌게 학습한 날이 아닌가 싶다. 백엔드 개발자가 아니다보니 혼자 간단한 프로젝트를 만들어보고자.. 챗GPT를 스승삼아 개발했었는데 챗GPT가 항상 그렇듯 한 번에 완벽한 대답을 내주진 않는다. 챗 GPT가 HTTP 응답 메세지를 구조화하라고 알려줬지만, 정확한 답변은 주지 못한 상태에서 혼자 이것저것 찾아보다가 흉내만 내도록 구현했던 것 같은데 이번 챕터에서 ApiResponse를 마주하다니! 뜻밖의 이득이었다. 또한 Exception 처리도 @ControllerAdvice도 나름 혼자 사용해봤는데 만족할만한 결과물이 나오지 않았다. 사실 어떻게 하는지 개념이 잡히지가 않고, 눈으로 관련 코드를 본 적도 없어서 제대로 잘 적용할 수가 없었는데 이번 강의가 마치 나에게는 완벽한 정답처럼 다가왔다. 그래서 이번 강의는 엄청나게 눈을 반짝이면서 봤다.
그 외에 제일 기억에 남았던 건 spring-validation이다. Reqeust Dto에서는 해당 필드의 타입이 유효한 값인가를 검증하게하고, 그 외에 도메인과 관련된 유효성 검사들은 좀 더 안쪽 내부에서 진행해야 된다, 즉 책임을 분리해야 한다는 지식이었다.
[Day 17] Mock을 마주하는 자세
Mock을 처음 접해봤는데 제대로 된 개념이 잡혀있지 않아 Mock과 Stub을 정확히 구분하고, 언제 써야하고, 어떻게 써야하는지 감이 잡히지 않았다. 조금 더 공부해봐야할 것 같은 주제다.
그리고 Classicist와 Mockist 얘기를 듣고 나도 내 기준을 생각해 봤는데 Classicist가 맞는 것 같다고 결론을 내렸다. 완벽한 프로그램은 없는 것처럼 완벽한 Mocking도 없을 것이다. 그래서 Mocking 위주로 대부분의 테스트로 짠 프로그램이 진짜 객체를 마주했을때 과연 완벽하게 동작할 수 있을 것인가?를 생각해보면 아닐 확률이 더 크다고 생각한다.
아무튼 Mock에 대한 건 좀 더 공부해보자.
[Day 18] 더 나은 테스트를 작성하기 위한 구체적 조언
되게 많은 주제들을 짤막하게 다루었다. 집중력이 그리 좋지 않은 나로서는 좋은 챕터였다. 그리고 꿀팁과 실무적인 관점을 배울 수 있었다. 이번 강의 전에 테스트 코드를 직접 짜보는 미션을 진행했었는데 직접 코드를 짰었을때 어려운 부분이나 '이게 맞나' 싶은 부분을 긁어주는 강의었다.
여러 개의 타입을 가진 Enum에 관련된 테스트를 진행했는데 한 가지 타입만 테스트하면 안 될 것 같아서.. 타입 검사하는 한 테스트에 모든 타입에 대한 given, when, then을 적었었는데 @ParameterizedTest라는 좋은,, 방법이 있어서 다음에는 고민만 하지말고 더 나은 대안을 찾을 수 있도록 구글에 한 번 검색해보자고 생각했다. 약간 부끄
[Day 19] 학습 테스트 | REST Docs
테스트를 학습용으로 쓰다니! 내 입장에서는 놀라운 발상이었다. 앞으로 궁금한 라이브러리들은 마음놓고 테스트하면서 공부할 수 있게 됐다!
REST Docs는 처음해봤다. 예전에 한 번 써본건 Swagger였는데 Swagger 쓰다가 REST Docs를 쓰니까 약간 어색하면서, UI가 뭔가 부족한거같으면서, 어렵다는 느낌을 받았다.
그래도 Swagger는 프로덕션 코드에 직접적으로 추가해줘야하는 코드들이 많았던 걸로 기억하는데 REST Docs는 테스트 코드 기반으로 만들어진다니 더 깔끔한 관리가 될 것 같다고 생각했따.
[Day 20] 중간 점검
마지막 중간 점검이다! 너무 아쉬워. 테스트 코드를 본격적으로 공부해본게 처음이라서 혹시나 내 질문이 이상한 질문일까봐, 너무 쉬울까봐 하지 말까했는데 내가 올리기 전까지 아무도 질문을 안올려서 나라도 일단 냅다 올리자 하고 올렸다.
용기내서 올린 질문은 나에게 100배의 좋은 지식으로 돌아왔다. 다음에는 더 용기가 생긴다면 코드 리뷰도 한 번 받아보고 싶다고 생각했다.
다른 분들의 코드리뷰를 보면서 도대체 어떻게 저렇게 생각하고 저렇게 구현하지?라는 생각을 많이했다. 나도 우리 회사에서 나름 잘하는 사람 중에 하난데 여기 오니까 우물 안 개구리라 생각됐다. 더 많이 공부하고 나보다 더 잘난 사람들을 많이 접해야 내가 성장하는 것 같다.
마지막 회고
워밍업 클럽은 되게 충동적으로 신청했다. 0기를 수료했었는데도 신청한 이유는 0기와는 전혀 다른 주제여서 뭔가싶어 쓰윽 봤는데 여태 한번도 배우지 않았던 주제지만 궁금은 했었던 주제여서 할인 코드도 주는 김에 신청했던 것 같다. 되게 가벼운 마음으로 신청했지만 무거운 뇌를 갖고 돌아가는 강의다. 추상화도 이렇게 본격적으로 코드에 녹여 본 것도 처음이고 테스트 코드도 작성은 해봤지만 그저 강의의 일부정도라 깊게 배우진 않았다. 게다가 내가 직접 내 머리로 생각해서 작성했던 건 아예 처음이었다.
처음인만큼 난이도가 초급이지만 나에게는 중급 정도의 난이도였으며, 솔직히 워밍업 클럽이 아니었다면 도중에 듣고 탈주했을 것만 같았다. 매일매일 힘내라고 말씀해주시면서 공지사항에 메세지를 보내주신 박우빈님 덕에 완주할 수 있었던 것 같다. 언젠가 백엔드로 직무 전환에 성공한다면 이번에 획득한 지식들을 가지고 실무에 적용해볼 수 있는 날이 왔으면 좋겠다. 그럼 우빈님한테 배웠다고 자랑해야지 ㅎㅎ
다들 고생많으셨고 감사합니다!
댓글을 작성해보세요.