-
코드숨 스프링 3기 4주차 회고회고 2021. 9. 6. 21:35
코드숨 훈련 과정 4주차 회고입니다.
https://github.com/CodeSoom/spring-week4-assignment-1/pull/32
이번주는 클린 아키텍처, JPA를 활용한 repository 적용 등을 적용하여 REST API를 만드는 작업을 하였습니다.
테스트는 논리가 가장 중요하다.
테스트 코드를 처음 작성하면서, 상품 id가 존재하지 않음을 생성한 id+1로 작업을 하기도 했었습니다. 하지만 이는 논리적으로 부족한 증명이고, 테스트 코드를 디버그 모드로 멈추고 수동으로 상품 생성 후 테스트를 진행하면 테스트가 실패하기도 하였습니다.
하지만 리뷰해주신 종립님께서 상품을 삭제한다면 그 id는 존재할까요? 라는 힌트를 주셨고, id가 실패하는 Context에 대해서는 메서드 실행 전 상품을 삭제하는식으로 접근하니 테스트 코드를 작성하기 더 수월해 졌습니다. 상품이 삭제되었으므로, 해당 id는 존재하지 않는 것이 보장되는 것이였습니다.
테스트에서 강조하시던 논리를 꼭 기억하겠습니다.
테스트의 본질을 잘 파악해야 한다.
테스트 코드를 왜 작성할까요? 테스트는 내가 작성한 코드가 올바르게 동작하고, 충분하게 검증이 되었는지가 중요합니다.
과제 중간에 테스트에서 의존성에 관련된 질문을 하기도 하였습니다.
하지만 이는 테스트의 본질을 충족시킬 수 있고, 더 나은 테스트를 만드는 것이 우선순위 라는 것을 알게 되었습니다. 그게 먼저 충족이 된다면, 의존성은 그 다음에 고민해도 된다는 것이죠. 그렇기 때문에 다음에는 이런 검증에 관한 작업을 먼저 빠르게 작성하여 테스트 구조를 미리 잡을 수 있을 것 같습니다.어노테이션 사용은 적당히
클래스에 어노테이션이 많을수록 해당 클래스에 대해 파악하기 힘들어집니다. 사용이 권장되지 않는 어노테이션은 되도록 사용을 자제하고, 짧게 작성할 수 있는 코드는 어노테이션보다 실제 코드로 작성하는 게 더 낫다는 것을 깨닫게 되었습니다.
이번주는 테스트 코드를 작성하는 데에 거의 대부분의 시간을 썼던 것 같습니다. 좋은 테스트를 만들기 위해 많이 고민하였고, 그만큼 많은 의견을 나누고 고칠 수 있어서 좋았습니다.
이번주는 공을 많이 들여서인지, 마지막날에 모든 테스트를 통과시키면서 제출할 때의 뿌듯함은 아직도 잊을 수 없습니다.
테스트 코드에서 논리에 관한 내용은 아직도 기억이 잘 남습니다. 오랫동안 기억해야 될 것 같네요.'회고' 카테고리의 다른 글
코드숨 스프링 3기 6주차 회고 (0) 2021.09.22 코드숨 스프링 3기 5주차 회고 (0) 2021.09.13 코드숨 스프링 3기 3주차 회고 (0) 2021.08.29 코드숨 스프링 3기 2주차 회고 (0) 2021.08.23 코드숨 스프링 3기 1주차 회고 (0) 2021.08.15