ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코드숨 스프링 3기 4주차 회고
    회고 2021. 9. 6. 21:35

    코드숨 훈련 과정 4주차 회고입니다.

    평소보다 유독 열심히 한 이번주..

    https://github.com/CodeSoom/spring-week4-assignment-1/pull/32

     

    4주차 과제 진행 - pangnem by PangNem · Pull Request #32 · CodeSoom/spring-week4-assignment-1

    4주차 과제 진행하겠습니다. 이번주도 잘 부탁드립니다. 화이팅!

    github.com

    이번주는 클린 아키텍처, JPA를 활용한 repository 적용 등을 적용하여 REST API를 만드는 작업을 하였습니다.


    테스트는 논리가 가장 중요하다.

    테스트 코드를 처음 작성하면서, 상품 id가 존재하지 않음을 생성한 id+1로 작업을 하기도 했었습니다. 하지만 이는 논리적으로 부족한 증명이고, 테스트 코드를 디버그 모드로 멈추고 수동으로 상품 생성 후 테스트를 진행하면 테스트가 실패하기도 하였습니다. 

    하지만 리뷰해주신 종립님께서 상품을 삭제한다면 그 id는 존재할까요? 라는 힌트를 주셨고, id가 실패하는 Context에 대해서는 메서드 실행 전 상품을 삭제하는식으로 접근하니 테스트 코드를 작성하기 더 수월해 졌습니다. 상품이 삭제되었으므로, 해당 id는 존재하지 않는 것이 보장되는 것이였습니다.

    테스트에서 강조하시던 논리를 꼭 기억하겠습니다.

     

    테스트의 본질을 잘 파악해야 한다.

    테스트 코드를 왜 작성할까요? 테스트는 내가 작성한 코드가 올바르게 동작하고, 충분하게 검증이 되었는지가 중요합니다.

    과제 중간에 테스트에서 의존성에 관련된 질문을 하기도 하였습니다.


    하지만 이는 테스트의 본질을 충족시킬 수 있고, 더 나은 테스트를 만드는 것이 우선순위 라는 것을 알게 되었습니다. 그게 먼저 충족이 된다면, 의존성은 그 다음에 고민해도 된다는 것이죠. 그렇기 때문에 다음에는 이런 검증에 관한 작업을 먼저 빠르게 작성하여 테스트 구조를 미리 잡을 수 있을 것 같습니다.

    어노테이션 사용은 적당히

    과정 중반쯤 작성된 도메인 모델의 코드

    클래스에 어노테이션이 많을수록 해당 클래스에 대해 파악하기 힘들어집니다. 사용이 권장되지 않는 어노테이션은 되도록 사용을 자제하고, 짧게 작성할 수 있는 코드는 어노테이션보다 실제 코드로 작성하는 게 더 낫다는 것을 깨닫게 되었습니다.


    이번주는 테스트 코드를 작성하는 데에 거의 대부분의 시간을 썼던 것 같습니다. 좋은 테스트를 만들기 위해 많이 고민하였고, 그만큼 많은 의견을 나누고 고칠 수 있어서 좋았습니다.

    이번주는 공을 많이 들여서인지, 마지막날에 모든 테스트를 통과시키면서 제출할 때의 뿌듯함은 아직도 잊을 수 없습니다.

    테스트 코드에서 논리에 관한 내용은 아직도 기억이 잘 남습니다. 오랫동안 기억해야 될 것 같네요.

    댓글

Designed by Tistory.