NEXT STEP/회고록

[TIL] 일일 회고 2022/07/20

샤아이인 2022. 7. 20.

 

요즘 한 일

1. ATDD 학습 정리하기

https://blogshine.tistory.com/473

 

[ATDD] 인수 테스트 격리하기

이번 시간 들었던 재미있었던 내용 중 하나로 인수 테스트의 격리 에 대한 내용이 있었다. 재미있었던 내용이기에 간략하게 정리해본다. 1. 인수 테스트의 격리 1-1) Transactional 의 사용? 사실 내가

blogshine.tistory.com

https://blogshine.tistory.com/474

 

[ATDD] 단위 테스트

이번 글에서는 단위 테스트에 대하여 고민해보는 시간이다. 1. 단위 테스트 보통 단위 테스트라는 단어를 들으면 다음과 같은 그림이 떠오른다. 각각의 테스트가 Production Code의 부분 부분들을 검

blogshine.tistory.com

이번 수업시간에서 배운 내용 중 가장 흥미 있었던 내용은 "단위 테스트"에 대한 2가지 관점이다.

 

각각 Mockist, Classist 로 관점이 나뉘는데,

단위 테스트의 격리된 방식에서, 이 격리된 방식의 의미에 따라 나뉘게 된다.

 

나 같은 사람처럼, 의존 객체로부터의 격리를 생각할 수도 있고, 아니면 테스트 케이스마다의 격리를 생각할 수 도 있다.

이러한 과점이 있다는 것을 처음 알게되어 기뻤다!

 

또한 Test Double에 대하여 학습하였는데, 그간 내가 잘못 알고 있었던 부분이 많음을 알게 되었다...

stub과 mock의 개념을 알고 있다 생각했었는데... 나의 착각이었다...

이에 대하여도 학습할 수 있어 좋았다!

 

NextStep에서의 과제 또한 정말 재미있고, 배워갈 점이 많은 것 같다.

리뷰어님들도 리뷰를 거의 무제한으로 받아주셔서 마음껏 질문할 수 있다.

 

또한 리더이신 류성현 님의 지도하에 재미있는 주제로 의논을 할 수도 있어 매우 좋았다.

https://github.com/next-step/atdd-subway-map/discussions/489

 

Service에서 다른 Service를 의존하기 vs Repository를 의존하기 · Discussion #489 · next-step/atdd-subway-map

아마 다들 아시다시피 정답은 없는 문제이기도 하며 어떤 부분을 중요하게 여기느냐 혹은 어떤 아키텍처의 영향을 많이 받았는가에 따라서 구현이 달라질 것 으로 보입니다. 미션을 진행하시면

github.com

나 또한 항상 고민하던 Service에서 다른 Service를 의존하기에 대한 많은 고민과 생각을 나눌 수 있어 좋았다!

 

2. JPA에서의 일급 컬렉션 정리

기존에도 일급 컬렉션의 개념은 알고 있었지만, 이를 JPA에서 적용은 처음 해보게 되어 이를 정리하였다.

https://blogshine.tistory.com/475

 

[JPA] 일급 컬렉션

1. 일급 컬렉션? 일급 컬렉션은 Collection객체를 감싸면서 다른 필드가 없는 클래스를 의미합니다. 특정 클래스에 List나 Set 같은 Collection 필드로 가지고 있을 때, 이들을 하나의 클래스로 만들어

blogshine.tistory.com

또한 나의 리뷰어와 일급 컬렉션을 주제로 진짜 많은 의견을 주고받았는데 답변해주셔서 정말 감사하고 고맙다!

이에 대한 고민사항과 의논했던 내용을 다음 3번 리뷰 정리에서 확인 가능하다.

 

3. 리뷰 정리

https://blogshine.tistory.com/477

 

[Review] ATDD 2주차 1차 PR

권승청 리뷰어 님께 감사의 말을 전하고 싶다!! https://github.com/next-step/atdd-subway-path/pull/290 1단계 - 단위 테스트 작성 by zbqmgldjfh · Pull Request #290 · next-step/atdd-subway-path 안녕하..

blogshine.tistory.com

 

 

👍  Good

NextStep의 과정을 즐겁게 수강하고 있다.

과제가 정말 재미있는 주제로 되어 있어 TDD 하는 맛이 난다. 인수 테스트를 작성해보려 노력하는 점에서 발전이 큰 것 같다.

 

또한 인수 테스트 작체에 대하여 관심이 많아져서 다음 책을 한권 구입하였다.

인수테스트 관련 바이블에 가깝다고 추천하여서 구입하게 되었다.

지금 읽고 있는 켄트 백의 TDD가 약 50 페이지 정도 남았는데, 금방 읽고 나서 위 책을 읽어야겠다.

 

👎 Bad

일단 기술적으로 부족했던 점이 있다.

TDD에서 한 사이클의 크기를 얼마나 가져갈지는 개발자의 몫이다.

나는 이번 TDD에서 "구간을 추가하는 기능"을 구현하던 도중, 너무 큰 보폭으로 사이클을 가져가서 오랜 시간 동안 초록 막대를 확인하지 못하는 상황이 발생하였다.

 

TDD는 적당한 시간 안에 초록 막대를 확인하는 것 또한 중요한데, 이를 위해서는 개발자 스스로 자신의 구현 가능한 범위,

더 나아가 자신의 한 보폭 크기를 알아야 한다.

 

난 처음에 해당 기능 구현의 단위 테스트를 하나 작성했을 때까지만 해도, 한 보폭으로 끝낼 수 있을 줄 알았다.

 

하지만 해당 메서드 안에 추가적으로 필요한 구현들이 많았다.

생각보다 테스트의 보폭이 길어져버렸고.... 결국 빨간 막대 상황에서 오랜 시간 지속되어 버렸다...

TDD의 호흡이 깨진 것이다...

 

나름의 해결 대안:

다음부터는 해당 기능을 구현할 때, 단순하게 input, output만 생각할 것이 아니라, 내부 구현부에서 필요한 값들 또한 함께 고민해야 할 것 같다.

 

너무 input, output만 간단하게 생가해서 그런지, 내부 구현이 복합한 메서드 일지라도 쉬워 보이게 된것 같다.

이는 자연스럽게 큰 보폭의 테스트 주기를 가져가려 하였다.

 

중간에 필요한 값들까지 고민하다 보면 테스트의 크기를 얼마나 크게 또는 적게 가져갈지 감이 올 것 같다.

'NEXT STEP > 회고록' 카테고리의 다른 글

[TIL] 일일 회고 2022/08/06  (0) 2022.08.06
[TIL] 일일 회고 2022/08/01  (0) 2022.08.01
[TIL] 일일 회고 2022/07/25  (0) 2022.07.25
[TIL] 일일 회고 2022/07/15  (0) 2022.07.15
[TIL] 일일 회고 2022/07/10  (2) 2022.07.10

댓글