우테코 프리코스 FE 2주차 회고록

BangDori·2023년 11월 2일

우아한 테크코스

목록 보기
2/4
post-thumbnail

test text image

지금까지 테스트 코드 작성에 대해 크게 공감하지 못해, 테스트 코드를 작성하지 않은 저에게 이번 미션은 굉장히 힘들지만 값진 경험이였습니다.

이번 포스팅에서는 지금까지 테스트 코드를 작성하지 않았던 이유와 테스트 코드를 작성하며 어떻게 저의 생각이 변했는지에 대해 알아보는 시간을 가져보겠습니다!

🙄 기존의 테스트에 대한 나의 생각

테스트는 왜 하는 걸까?

이전까지 테스트 코드를 작성하지 않은 이유에 대해 먼저 생각해 보았습니다.

  1. TDD 방법론에 대해 크게 와닿지 않는다.
  2. 기능이 변경되면, 테스트도 변경될 수 있기 때문에 시간이 2배로 소요될 것 같다.
  3. 통합 테스트와 단위 테스트의 장점에 공감이 되지 않는다.

지금까지 이러한 이유들 때문에 중요성과 필요성을 크게 느끼지 못하고 테스트 주도 개발을 진행하지 않았습니다. 이번 미션 테스트 코드를 작성하기에 앞서 우선 테스트 코드 작성에 대한 다른 개발자분들의 의견이 궁금해 구글링을 통해 찾아보게 되었고, gregor77님이 작성하신 Unit Test (단위 테스트) 에 관한 생각이라는 글을 찾을 수 있었습니다.

해당 게시글에서 작성해준 위 장점을 보며 테스트 코드 작성의 장점에 대해 조금은 와닿기 시작했습니다. 저는 테스트 코드 작성에 대한 장점을 스스로가 더욱 크게 느끼게 하기 위해 그림을 아래와 같이 그렸습니다.

네비게이션을 문서화라고 생각하고, 보험을 테스트라고 생각한다면 지금까지는 위 사진처럼 보험도, 네비게이션도 없이 최종 목적지를 향해 나아가는 느낌이였습니다. 이러한 여정은 개발 과정에서 사고를 일으키고, 개발 시간을 증대시켰습니다.

하지만 1주차 미션을 진행하며 문서화는 아래 이미지처럼 최종목적지까지 빠르게 안내해주는 역할을 톡톡히 해준다는 것을 알 수 있었습니다.

위 그림을 만들며 저는 스스로에게 이런 질문을 던질 수 있었습니다.

네비게이션의 역할이 이렇게나 컸는데, 만약 보험까지 들었다면?
즉, 문서화에 테스트까지 더해진다면 목적지까지 안전하고 빠르게 갈 수 있지 않을까?

위 생각은 기존에 가지고 있던 테스트에 부정적인 인식에서 벗어날 수 있게 도와주었고, 테스트에 대해 다시금 생각할 수 있게 도와주었습니다.

😊 현재 테스트에 대한 나의 생각

사실 테스트 코드를 작성하는 도중에도 테스트의 중요성에 대해 크게 공감되지는 않았습니다. 하지만 리팩토링 과정을 거치며 테스트의 중요성에 대해 크게 공감할 수 있었습니다.

자동차 경주 게임의 단위 테스트 코드를 다 작성했을 때는 아래 사진과 같이 모든 테스트가 정상적으로 수행되는 것을 확인할 수 있었습니다.

테스트 코드를 작성한 후 코드를 다시 살피며 리팩토링할 부분을 찾던 도중, RacingController의 생성자 부분을 리팩토링해야겠다는 생각이 들어 리팩토링을 하고 테스트를 다시 하니 아래와 같은 에러가 뜬 것을 확인할 수 있었습니다.

엥 에러 떳네? 어디서 에러가 발생한거지?

아! 최대 전진 거리가 정상적으로 갱신되지 않았구나!

테스트를 통해 최대 전진 거리를 저장하는 변수명을 확인하였고, 생성자에서 최대 전진 거리를 저장하는 변수인 maxDistance에 오타가 있는 것을 곧바로 확인할 수 있었고, 빠르게 해결할 수 있었습니다.

만일 테스트 코드를 작성해두지 않았더라면, 위 에러를 해결하기 위해 많은 시간이 소요되었을 것입니다.

사실 이전까지는 테스트에 대한 부정적인 시선을 가지고 꺼려했지만, 리팩토링 과정에서 테스트 코드가 끼치는 영향력에 대해 몸소 느끼고 테스트 코드의 중요성에 대해 느낄 수 있었습니다.

🎉 마치며

문서화와 테스트 코드가 코드의 품질을 높여줌을 알고 있으면서도, 단순히 귀찮음과 공감 형성이 안된다는 이유만으로 접하지 않은 저는 "어쩌면 사용자를 진정으로 생각하지 못하는 개발자였을수도 있겠구나" 라는 생각을 가지게 되었습니다.

이번 기회를 토대로 다가오는 3주차 미션에서는 TDD 개발 방법론을 접목해, 사용자에게 높은 품질의 코드를 제공할 수 있도록 노력해 보아야 겠습니다!

지금까지 긴 글 읽어주셔서 감사합니다. 🔥

참고 자료

profile
Happy Day 😊❣️ >> bangdori.kr

0개의 댓글