로그 메시지는 크게 개발 도중 중간중간 값을 찍어 보는 용도로 사용되는 것과, 오류가 발생했을 때 나중에 확인하기 위해 사용하는 것으로 크게 구별된다.
전자에 있어서는 또한 릴리즈 이후까지 남겨 둘만한 것과 릴리즈가 되면 제거해야하는 것으로 구별할 수 도 있다. 프로젝트를 여럿진행하면서 가장 큰 것이 로그에 대한 것이다. 로그에 대한 체계가 제대로 잡혀있지 않은 설계에 의한 개발은 추후에 로그 때문에 카운트 펀치를 맞게 되는 경우가 많다.

로그의 중요성은 강조해도 지나치지 않지만, 여기에 제시하고자하는 것은 그 로그를 이용해서 통합 테스트를 하는데 도움이 되게 하려면, 꽤 정형화된 방식으로 남겨야한다. 테스트 관점에서 보면 출력되는 로그는 일종의 테스트의 이후 결과 판정에 대한 입력값이 된다.

이 입력값은 정해진 방식대로 나타나야하며, 어떤 때는 사람보다 기계가 이해하기 쉬운 방식으로 나와야한다. 테스트가 잘되고 있는 지를 로그를 통해 절차를 이해한다면, 프로세스의 흐름을 제대로 추적할 수 있고, 그것에 따라서 진행되는 과정을 관리할 수 있게 된다.

가져야할 습관은
1. 분기가 일어나는 곳에서 충분한 정보를 외부에 알릴 수 있는가
2. 오류에 대한 자세한 정보가 다른 것과 묻혀서 일반화 되어 남겨지지 않는가.
3. 사용하는 라이브러리의 오류와 내가 작성한 오류가 섞여서 희석되지 않는가.
4. 과연 이 로그들이 일련의 과정을 거친 뒤 자동화된 분석 툴에 의해 정상 작동/오작동을 판별할 수 있는가.

정도로 정리할 수 있겠다.

+ Recent posts