Why We Should Use Logger

최완식·2022년 11월 11일
1

Tech Talks

목록 보기
20/23
post-thumbnail

특정 값을 찍을 때 print를 찍기 일수다. 쉬우니까. 하지만 이 습관은 좋지 않다. 왜 인지 알아보자.

핵심 요약

  1. 이슈 트래킹 시간 감소
  2. print 대비 성능 높음 (multi thread)
  3. 코드 동작의 속도 파악
  4. 코드의 위치 파악
  5. 코드의 스레드 파악

문제가 되지 않는다고 생각하는 이유

  • 어차피 출력 결과보는 건데, 굳이 사용해야 하는가?
  • 개발 이후에 확인하기 위한 용도도 아니고, 개발 과정중 사용할 때 출력 비교용이라면 똑같은 용도아닌가?
  • 많은 정보가 추가적으로 나오는 건 알겠는데, 왜 써야하는지에 대해서는 모르겠다.

즉, 단순 출력용으로 사용할 경우 크게 필요성을 못느낄 수 있다. 그리고 나중을 위해 Logger를 심어놓는 용도가 아니라면 둘의 차이를 모를 수 있다.

하지만, 어느 경우에 Logger를 사용하면 좋은지에 대해 명확히 알고, 단순 출력 용으로 선택하여 print문을 선택하는 것과는 차이가 있다.

Logger의 장점

  1. 시간에 대한 정보를 함께 준다.
    • 해당 라인의 속도가 오래 걸리는지 직관적으로 파악 가능하다.
  2. 위치에 대한 정보를 알 수 있다.
    • 어디 파일의 라인에서 해당 코드가 삽입되어 있는지 알 수 있다.
  3. 보통 Multi Thread 지원하여 속도가 빠르다.
    • print의 경우 Lock이 걸려서 속도에 지장을 준다.

Logger를 사용하는 것이 좋은 경우

  1. 콘솔로 해당 코드의 실행 및 값을 주기적으로 파악하는 것이 유용한 경우
  2. 문제가 생길 소지가 있어, 추후 빠르게 로그만 보고 문제를 파악할 수 있도록 해야한다고 판단한 경우
    • 로그가 없다면 어디서 문제가 발생했는지 파악하기 어렵다.
  3. 스레드도 같이 표기하면 좋은 경우

주의할 점

  • 남발하지 말 것.
  • 무의미한 로그는 오히려 단점이다.
  • I/O
  • 이에 로그 레벨을 따로 두어 관리하는 경우도 있다.
    • 심각도 수준: ERROR > WARN > INFO > DEBUG > TRACE
profile
Goal, Plan, Execute.

0개의 댓글