배를 타고 가던 선원들이 배의 속도를 측정하기 위해 밧줄을 묶은 통나무(Log)를 바다에 던졌던 것에서 유래
일정 시간 풀려나간 밧줄의 길이를 재서 속도를 계산하고, 그걸 항해 일지(Logbook)에 기록함
배가 망망대해에서 길을 잃지 않고 ‘어디서부터 어떻게 왔는지’ 기록하던 습관이 지금의 IT 세계로 넘어옴
✅ 2. 로그는 대체 어떤걸 기록해야 할까?
무작정 다 남기면 쓰레기 데이터가 돼서 서버 용량만 차지함
너무 안 남기면 장애가 났을 때 원인을 쉽게 찾을 수 없다.
언제, 어디서, 누가, 무엇을 하다가 에러가 났는지 ‘추적 가능하게’ 남겨야 함
즉, 트러블 슈팅에 도움이 되는 로그들로 남겨야 한다.
상황에 따라서는, 법적으로 꼭 남겨야 하는 로그들도 있다.
✅ 3. 요청/응답(Request/Response) 로그
목적 : 사용자가 어떤 요청을 보냈고, 시스템이 어떻게 응답했는지를 기록
내부 서비스가 아닌, 외부에 있는 서비스에서는 특히 중요함.(커뮤니케이션 비용 절감)
✅ 4. 오류 및 예외(Exception/Error) 로그
목적 : 시스템에서 발생한 오류와 예외 상황을 기록하여 디버깅에 활용
트러블 슈팅에 있어서 가장 중요한 로그
시스템의 정상 작동 여부를 확인할 수 있음
✅ 5. 사용자 활동(Audit) 로그
목적 : 사용자 행동 기록을 통한 서비스 이용 흐름 및 보안 감사 추적
법적으로 남겨야 하는 로그들이 이에 해당함.
실무에서는 로그를 직접 남기거나, 로그 양이 많아지면 해당 로그를 모니터링 하는 툴을 사용
✅ 6. 디버깅(Debug) 로그
목적 : 상세한 정보를 기록하여 복잡한 문제를 디버깅
주로 개발 단계나 로컬 환경에서 많이 사용하는 로그
👩💼
그 외에도 다양한 로그들이 있지만, 각자의 프로젝트나 팀 상황에 맞게 적절하게 선택하여 사용하면 됩니다. 꼭 이런 로그를 남겨야 한다는 정답은 없어요! 다양한 에러 로그를 참고해서 남겨보시면 됩니다! 실제 실무에서는 어떤 로그를 남겨야 하는지도 중요하지만, 남기면 안 되는 로그들도 있으니 이 점도 주의하시기 바랍니다.