개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
언제나 테스트 코드는 필수!
외부 코드와의 경계를 인식하자!
깨끗한 코드는 깨끗한 테스트코드로 부터!
TIL (Today I Learned) 날짜
2022.03.06
오늘 읽은 범위
8장 경계
9장 단위 테스트
책에서 기억하고 싶은 내용을 써보세요.
<경계>
어떤 식으로든 이 외부 코드를 우리 코드에 깔끔하게 통합해야만 한다
학습 테스트는 공짜 이상이다. 투자하는 노력보다 얻는 성과가 더 크다. 패키지 새 버전이 나온다면 학습 테스트를 돌려 차이가 있는지 확인한다.
<단위 테스트>
애자일과 TDD 덕택에 단위 테스트를 자동화하는 프로그래머들이 이미 많아졌으며 점점 더 늘어나는 추세다. 하지만 우리 분야에 테스트 케이스를 추가하려고 급하게 서두르는 와중에 많은 프로그래머들이 제대로 된 테스트 케이스를 작성해야 한다는 좀 더 미묘한 (그리고 더욱 중요한) 사실을 놓쳐버렸다.
문제는 실제 코드가 진화하면 테스트 코드도 변해야 한다는데 있다. 그런데 테스트 코드가 지저분할 수록 변경하기 어려워진다. 테스트 코드가 복잡할수록 실제 코드를 짜는 시간보다 테스트 케이스를 추가하는 시간이 더 걸리기 십상이다.
테스트 코드는 실제 코드 못지 않게 중요하다. 테스트 코드는 이류 시민이 아니다. 테스트 코드는 사고와 설계와 주의가 필요하다. 실제 코드 못지 않게 깨끗하게 짜야 한다.
깨끗한 테스트 코드를 만들려면? 세 가지가 필요하다. 가독성, 가독성, 가독성.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
경계를 읽고, 아직까지 팀 단위로 소스코드를 사용해본적은 없다. 다만 외부 API를 사용하거나 구글 에서 다른 사람의 코드를 그대로 가져와서 사용한적은 있었다. 그럴때마다 오류가 발생했고 오류가 나는 부분을 하나씩 제거하면서 기존 코드에 사용했었다. 지금 생각해보면 학습테스트를 사용하거나 별도의 테스트 케이스를 만들었어야 했는데 그냥 지나쳤던 부분이였다. 아니 생각조차 하지 못했다. 나중에 코드를 돌이켜보면 외부에서 가져온 코드에서 내가 사용할 부분은 매우 작은 일부 코드이었지만 외부 코드 전체를 읽어보면서 이해를 해야하는 번거로움이 발생했다. 외부 코드를 가져와서 사용할 일은 혼자하는 프로젝트일지라도 빈번하게 발생할 수 있는 경우다. 앞으로는 현재 코드에 잘 녹아들 수 있도록 학습 테스트와 테스트 케이스를 사용해야겠다.
단위 테스트를 읽고, 처음 테스트 코드라는 개념을 접했을 때 느낀점은 불필요한 작업으로 느껴졌다. 실행되는 코드 이외에 똑같은 동작을 하지만 범위로 보면 매우 좁은 범위의 코드를 별도로 만들어서 테스트를 진행하고 다음 단계를 진행한다는 점이 불필요하게 느껴졌다. 또한 테스트 코드를 작성하기 위해서 시간을 부가적으로 더 사용해야 한다는 점이 테스트 코드가 꼭 필요한가 의문을 갖게 만들었다. 하지만 결과적으로 깨끗한 코드를 얻기 위해서는 깨끗한 테스트 코드는 필수이며 깨끗한 테스트 코드를 통해 만들어진 깨끗한 코드는 유지보수도 쉽고 새로운것을 추가하기도 쉬우며 재 사용하기에도 쉽다는 점을 책을 통해 알 수 있었다. 앞으로는 귀찮더라도 깨끗한 코드를 위해 테스트 코드를 만드는 것을 실천해야 겠다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.