LumoMate
LumoMate/용어집/SubstrateInfra / DevOps

로깅

로깅(Logging)은 시스템이 무엇을 언제 했는지, 그리고 무엇이 잘못됐는지를 글로 남겨 두는 일입니다. 사고가 났을 때 '무엇이 일어났는가'를 답해 주는 1차 자료입니다.
로깅의 개념을 표현한 편집형 일러스트.

쉬운 설명

운영 시스템에는 매초 수많은 일이 벌어집니다. 사용자가 로그인했고, API가 응답했고, DB 쿼리가 실패했고, 결제가 들어왔습니다. 그 흐름이 시간 순서대로 기록되어 있어야, 나중에 '어제 새벽 3시에 결제 오류가 왜 났나'를 답할 수 있습니다. 로그는 그 기록입니다.

좋은 로그는 단순한 텍스트가 아니라 구조화돼 있습니다. JSON 형태로 'timestamp·level·user_id·request_id·event·error_code' 같은 필드가 일관되게 들어 있어야, 도구가 검색·필터·집계할 수 있습니다. 또 모든 요청에 고유 ID(trace ID·correlation ID)를 붙여 두면, 한 사용자의 한 요청이 여러 서비스를 지나가는 흐름을 끝까지 따라갈 수 있습니다.

로그 레벨은 보통 다섯 단계입니다. DEBUG(개발 시 자세한 정보), INFO(정상 동작 기록), WARN(주의해야 할 일), ERROR(에러 발생), FATAL(즉시 대응 필요). 운영 환경에선 보통 INFO 이상만 남기고, 디버깅이 필요하면 DEBUG를 잠시 켭니다. 너무 많은 로그는 보관 비용이 늘 뿐 아니라 진짜 중요한 신호를 묻어 버립니다.

도구: 로컬에선 stdout에 출력, 운영에선 Fluentd·Logstash가 수집해 ELK(Elasticsearch·Logstash·Kibana)·Loki·Splunk·Datadog 같은 중앙 시스템에 보냅니다. 클라우드에선 AWS CloudWatch·GCP Cloud Logging이 매니지드로 제공됩니다. 어느 도구든 핵심은 '검색이 빠르고 보관 정책이 합리적인가'입니다.

주의: 로그에는 비밀번호·결제 번호·주민등록번호 같은 민감 정보를 절대 그대로 남기지 않습니다. 로그가 유출되면 그게 곧 사용자 정보 유출입니다. 마스킹·해싱·필드 제외 같은 정책을 처음부터 정해 두는 것이 안전합니다. 또 로그 보관 기간이 너무 짧으면 사고 추적이 어렵고, 너무 길면 GDPR 같은 규정 위반·비용 증가가 될 수 있어 균형이 필요합니다.

로깅의 개념을 본문 안에서 다른 각도로 비춰 보는 편집형 일러스트.
FIG. 1로깅을 다른 각도에서 다시 봅니다.

비유로 보면

로깅은 비행기의 블랙박스와 같습니다. 평소엔 그저 기록만 쌓이지만, 사고가 났을 때 그 안의 정보가 사고 원인 규명의 거의 전부가 됩니다. 잘 만든 블랙박스는 무엇을, 언제, 어떤 순서로 기록할지가 명확하게 정해져 있고, 보관 기간과 보안도 함께 고려돼 있습니다.

어디에서 만나나

모든 운영 시스템의 필수 인프라. 디버깅·사고 분석·감사 추적·보안 모니터링·성능 분석에 두루 쓰입니다. 마이크로서비스에서는 분산 트레이싱(OpenTelemetry)과 결합해, 여러 서비스를 거치는 한 요청의 흐름을 한꺼번에 볼 수 있게 합니다.

작은 예시

결제 실패 신고가 들어왔을 때, 운영팀이 'request_id=abc123' 한 줄로 로그를 검색하면 그 요청이 게이트웨이 → 결제 서비스 → 외부 PG → 알림 서비스를 거치며 남긴 모든 흔적이 시간 순서대로 따라옵니다. 어디서 5초 지연됐는지, 어느 응답이 500을 반환했는지가 1분 안에 보입니다.

자주 하는 오해

오해
흔한 오해 셋. ① '많이 남길수록 좋다' — 너무 많으면 비용·노이즈가 늘고 정작 중요한 신호가 묻힙니다. ② '로그를 텍스트로 적으면 된다' — 구조화된 형태가 검색·분석에 압도적으로 유리합니다. ③ '로그 자체로 사고 대응이 끝난다' — 메트릭(알람)·트레이스(흐름)와 같이 봐야 진짜 원인을 빨리 찾습니다.

한 줄 정리

로그의 진짜 가치는 '사고가 났을 때의 1차 자료'에 있습니다. 평소엔 보이지 않다가 사고 5분 안에 답을 줘야 하기에, 잘 만든 로그 한 줄이 운영 비용을 크게 줄여 줍니다.
매주 월요일 오전 8시

한 주에 한 통,
오래 남는 이해를 보냅니다.

흘려보내지 않는 글만 골라 보내드립니다. 광고와 추적, 외부로 빠지는 미끼 링크 없이 메일 안에서 끝나는 한 통입니다.

언제든 한 번의 클릭으로 해지할 수 있습니다. 스팸은 보내지 않습니다.