생각정리

[반성문] 테스트 코드의 중요성

wonin 2024. 2. 26. 21:40

🟩 현장 폐쇠망에서 일을 하다가 테스트 코드의 중요성을 느꼈습니다.

nestjs로 서버를 개발했는데 이 전에는 postman으로 한땀한땀 input 값을 넣고 output을 검사했습니다. 로깅도 console.log로 찍어서 하나하나 씩 봤습니다.

데이터가 쌓이면서 순간 순간 지나가는 데이터를 재현해 내는 것이 불가능 해졌습니다. 재현이 불가능해지면서 디버깅이 어려워지고 그래서 시간이 많이 걸려게 되었습니다.

 

그래서 느낀 바로는 내 로직에 input, output값을 정해두는 테스트코드를 작성해 놓는 것이 중요하다고 생각했습니다. 어떤 값이 들어왔을 때 로직이 올바른지, 어떤 부분을 고쳐야하는지 세세하게 고민을 합니다. 정답지 안에서 디버깅을 하는 것이 중요하다고 느꼈습니다. 내가 천재가 아니니 예상 결과를 기억하기가 너무 어려웠습니다. 

 

제가 원하는건 거창한 테스트 코드가 아닙니다. service 로직을 통할 때 input, output을 주면 정확성을 체크할 수 있는 코드레벨의 장치가 필요했던 것입니다. 중요한건 코드레벨 입니다. postman, swagger를 통하지 않고 컴파일러, 인터프리터를 통해 검증이 가능한 수준이면 훨씬 더 빠른 디버깅이 될 거라고 예상이 됩니다.

 

🟩 또 하나 느낀건 로깅이 정말 중요하다고 느꼈습니다. 

nest에서 winston으로 모든 log로 찍히는 것을 저장하는데요. 이렇게 쌓이다 보니 어떤 api에 어떤 input이 들어갔고 output이 나왔는지 찾을 수 가 없었습니다. 이렇게 만든 스스로를 벌하면서 반성하게됩니다.

 

 

요약을 하자면

  • 데이터 검증은 마우스를 쓰지 않고 코드레벨에서 해결해보자!
  • 디버깅도 실력이다. 다음번엔 섬세하게 로그를 다뤄보자.

 

728x90