CHashtag

로그가 중요한 이유 본문

개발 발자취

로그가 중요한 이유

HyoSeong 2022. 3. 3. 22:26
반응형

안녕하세요.

 

개발과 버그는 땔래야 땔수가 없는 영혼의 단짝입니다.

 

이런 버그들 속에서 내 프로그램을 보완하고 유지보수 하기 위해서 꼭 필요한 시스템이 로깅 시스템입니다.

 

제가 생각하기에 로그는 프로그램이 남기는 다잉 메세지, 혹은 프로그램의 주마등과도 같다고 할 수 있습니다.

 

 

로그가 없는 프로그램을 상상해봅니다.

 

============

어느날 전화가 한통 옵니다.

 

지금껏 잘 사용하던 기능이 하루아침에 동작을 안한답니다.

그래서 해당 오류를 재현해보려 동일한 동작을 수행합니다.

 

그러나 현상이 발견되지 않습니다.

 

당황하기 시작합니다.

 

다시 전화를 걸어 더 상세한 재현 상황을 찾기 시작합니다.

 

계정은 어떤 계정을 사용하였는지, 하루사이에 클라이언트 단에서 변경된 사항은 없는지,

PC사양은 어떤지, 네트워크 상태는 어떤지,, 꼬리에 꼬리를 무는 질문들이 오가지만 특별한 단서를 찾지 못합니다.

 

결국 재현되는 PC에 팀뷰어를 붙어 원격 지원을 하기로 합니다.

 

그렇게 개발자 A는 2시간을 소모하였습니다.

============

 

 

그렇다면 로그가 있는 프로그램은 어떨까요?

============

어느날 전화가 한통 옵니다.

 

지금껏 잘 사용하던 기능이 하루아침에 동작을 안한답니다.

클라이언트 로그와 서버 로그를 각각 확인합니다.

(클라이언트 로그 위치는 정해진 매뉴얼을 전달하여 로그 파일을 인계받습니다.)

 

로그를 분석해보니 콘텐츠 제목이 200자가 넘어서 발생하는 오류였다고 로그에 찍혀 있습니다.

(에러가 발생한 시간대와 Error로그로 필터를 걸어 약 3분만에 찾아냅니다.)

 

우선 고객에게 제목을 줄여 다시 등록하라고 가이드를 전달합니다.

 

추후 개선사항으로 등록합니다.

 

그렇게 개발자 A는 20분을 소모하였습니다.

============

 

조금 극단적인? 예시이지만 이런 일은 실제로 일어납니다.

 

내가 짠 프로그램에는 오류가 없을거란 믿음, 이정도 규모의 프로젝트에는 로그가 필요없을것이란 불찰이 결국 소중한 시간을 버리게 되는 것이죠.

 

작은 프로그램이더라도, 오류가 없다고 확신하더라도 로그를 기록하는것은 정말 중요합니다.

 

로그를 기록하면 얻을 수 있는 이점은 대략 아래와 같습니다.

  • 법적인 문제를 피할 수도 있고요
  • 이슈 트래킹 시간을 줄일 수도 있죠
  • 실행시간등을 측정하여 추후 개선하기도 용이하고요,
  • 무엇보다 심신의 안정이,,ㅋㅋ

 

그렇기에 로그를 기록하는 습관을 들이는것이 중요하고,

손쉽게 로그를 기록할 수 있는 라이브러리를 제작해두거나, 이미 만들어져있는 오픈소스 기반 로깅 라이브러리의 사용법을 미리 숙지해두는것이 중요합니다.

 

그래서 앞으로 저는 로그에 대한 게시글을 작성해 보려 합니다.

 

.NET에서 로그 기록을 도와주는 라이브러리 소개와, 어떤 지점에서 로그를 작성하면 좋은지에 대한 정보를 말이죠.

반응형