- YouTube
www.youtube.com
로그는 애플리케이션의 문제를 파악하고 해결하는 데 필수적입니다. 하지만 비효율적이고 구조화되지 않은 로깅은 문제를 더 복잡하게 만들 수 있습니다. 이 영상에서는 효율적이고 효과적인 로깅을 위한 12가지 베스트 프랙티스를 다룹니다.
목표를 가진 로깅
무작위로 로그를 남기기보다는, 애플리케이션의 목표, 중요 작업, KPI를 기준으로 로그를 작성해야 합니다.
예: 단순히 "에러 발생"이 아닌, 충분한 컨텍스트를 포함한 메시지를 남깁니다.
로깅 레벨 사용
Info: 일반적인 상태(성공적인 로그인, 트랜잭션 완료).
Warning: 경고 상태(지연된 프로세스).
Error: 주요 문제(데이터베이스 연결 실패).
Fatal: 치명적인 문제(시스템 다운).
구조화된 로깅
단순 텍스트 로그 대신 JSON 형식과 같은 구조화된 형식을 사용합니다.
구조화된 로그는 검색, 필터링, 분석에 더 효과적입니다.
유용한 정보 포함
로그에는 누가, 무엇을, 어디서, 왜를 포함합니다.
예: 사용자 ID, 요청 ID, 시스템 상태, 에러 스택 트레이스.
로그 샘플링
높은 트래픽 시스템에서는 모든 로그를 저장하지 말고 샘플링을 통해 비용을 절감합니다.
예: 성공 로그는 20%만 저장하고, 에러 로그는 모두 저장.
Canonical 로그라인 사용
단일 로그에 모든 주요 정보를 요약하여 기록합니다.
예: 요청 시작부터 종료까지의 흐름을 한 줄로 요약.
중앙집중형 로깅
로그를 한 곳으로 집계하여, 여러 서비스의 로그를 한눈에 볼 수 있도록 설정합니다.
문제의 상호 영향을 빠르게 파악 가능.
로그 보존 정책 설정
최근 로그는 빠르게 접근할 수 있도록 유지하고, 오래된 로그는 저비용 스토리지로 이전합니다.
예: 디버그 로그는 7일, 에러 로그는 90일, 보안 로그는 1년 보관.
보안 유지
로그에는 민감한 정보(비밀번호, 신용카드 번호 등)를 남기지 않도록 필터링과 암호화를 적용합니다.
암호화: 전송 중 및 저장 시.
접근 제어: 권한에 따라 로그 접근 제한.
효율적인 로그 관리
성능에 영향을 최소화하려면 효율적인 로깅 라이브러리 사용, 샘플링, 별도 디스크에 로그 저장 등을 고려합니다.
예: 최신 로깅 도구를 사용해 성능 저하를 줄임.
로그와 메트릭 구분
로그는 디버깅용, 메트릭은 실시간 모니터링용으로 사용합니다.
메트릭을 통해 에러 발생 빈도를 파악하고 알림을 설정.
정기적 검토와 개선
로그 전략은 고정적이지 않습니다. 애플리케이션과 팀의 변화에 따라 로깅 방식을 주기적으로 검토하고 개선해야 합니다.
https://www.youtube.com/watch?v=I2mWnh66Bkg
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 12월 30일 오후 1:22
당신이 지금 있는 자리에서 앞으로 한 발자국 걸었다고 생각해 보자. 당신은 한 발자국만큼 ‘나아간’ 것인가? 그런데, 만약 당신이 가야 하는 곳이 당신의 등 뒤에 있다면 어떨까? 그렇다면 당신은 한 발자국만큼 ‘물러선’ 것이 아닌가?
... 더 보기