로그(무슨 일이 있었는지 기록)

원인을 물었는데 증거가 없으면 추적이 불가능해요. 서비스가 스스로 적는 영업일지가 로그이고, 남길 것과 남기면 안 될 것을 가르는 일이 절반이에요.

쉽게 말하면

계산대 옆에 두는 영업일지예요. 손님이 사흘 뒤에 전화해서 "그날 카드로 결제했는데 취소가 안 됐어요"라고 하면, 사장님은 기억을 더듬지 않아요. 그날 노트를 펴서 몇 시에 무슨 일이 있었는지 읽어요. 서비스도 똑같아요. 다른 점은 하나예요. 노트를 미리 펴 두지 않으면 그날 페이지가 아예 없다는 것. 지나간 일은 나중에 적을 수 없어요.

로그는 손님 화면에 안 나와요. 서비스가 일하는 동안 자기 손으로 한 줄씩 적어 두는 글이고, 사장님과 개발자만 봐요.

로그를 안 켜 둔 가게
손님: "어제 8시쯤 주문이 안 됐어요" · 그 시각에 무슨 일이 있었는지 자료 없음 · 지금 눌러 보면 잘 됨 · 남는 답: "지금은 되는데요"

고칠 수가 없어요. 원인이 없어서가 아니라 증거가 없어서예요. 이 상태에서는 개발자도 손님도 서로 기억을 두고 다투게 돼요.

로그를 켜 둔 가게
20:04 주문 접수 시도 / 실패 20:04 결제사 응답 없음 12초 20:05 같은 손님 재시도 / 성공

세 줄이면 답이 나와요. 내 잘못이 아니라 결제사가 12초 동안 대답을 안 한 시간대였고, 다음 시도에서 들어갔어요. 손님에게 할 말도 그 자리에서 생겨요.

이름이 비슷한 이웃이 둘 있어서 먼저 갈라 둘게요. 오류 기록 모으기빨간 오류가 났을 때만 모으는 것이고, 누가 무엇을 했는지 남기기값이 바뀔 때 누가 바꿨는지를 따로 적는 장부예요. 이 문서는 그 둘 아래에 깔린 평상시 일지예요. 아무 일도 안 일어난 시간대도 적혀 있어야 "그때는 멀쩡했다"를 말할 수 있어요.

적는 것보다 안 적는 것이 어려워요

처음 로그를 붙이면 대개 다 적어 두자로 시작해요. 그게 가장 위험한 선택이에요. 로그는 개발자와 외주 업체가 함께 보는 글이고, 화면보다 보안이 약한 곳에 쌓이는 경우가 많거든요.

항목적어도 되나이유
시각과 요청 종류적어요언제 무엇을 하려 했는지가 없으면 나머지 줄이 다 쓸모없어요
손님 번호(주문번호·회원번호)적어요누구 일인지 찾을 수 있어야 해요. 이름 대신 번호면 충분해요
성공인지 실패인지, 걸린 시간적어요느려진 구간을 이 두 가지로 찾아요. 사고의 절반이 여기서 보여요
비밀번호절대 안 돼요저장할 때 되돌릴 수 없게 만들어 두는데, 로그에 원문이 남으면 그 노력이 통째로 무너져요
카드번호와 결제 승인 정보절대 안 돼요결제사에 넘기는 값이지 내가 보관할 값이 아니에요. 남기면 사고 한 번에 책임 범위가 달라져요
주민등록번호와 연락처 전체안 돼요필요하면 뒤 네 자리만 남기거나 아예 번호로 바꿔서 적어요
로그인 유지에 쓰는 토큰과 API 키절대 안 돼요그 한 줄을 본 사람이 손님 계정으로 그대로 들어갈 수 있어요
손님이 쓴 문의 내용 전문가려서요길이만 적거나 앞 몇 글자만 남겨요. 상담 내용은 상담 화면에 있어야지 로그에 있을 자리가 아니에요

로그도 개인정보가 쌓이는 곳이에요

손님 정보를 적어 두면 그 순간부터 로그도 개인정보를 담은 창고가 돼요. 보관 기간과 파기 규칙이 화면 데이터와 똑같이 적용돼요. 그래서 가장 안전한 기본값은 번호로 적고 내용은 안 적는 것이에요. 나중에 필요하면 번호로 화면에서 찾으면 되니까요.

쓸모 있는 한 줄의 모양

로그가 있는데도 못 쓰는 경우가 흔해요. 대개 한 줄에 "오류 발생"만 적혀 있어서예요. 그 줄로는 언제 누구 일인지 알 수 없어요.

  1. 1언제. 초 단위까지 있어야 해요. 손님은 "8시쯤"이라고 말하니까, 그 앞뒤 몇 분을 훑을 수 있어야 해요.
  2. 2무슨 일을 하려 했나. 주문 접수인지 로그인인지 사진 올리기인지예요. 화면 이름이 아니라 동작 이름으로 적어요.
  3. 3누구 일인가. 이름이 아니라 주문번호나 회원번호예요. 번호만 있어도 화면에서 찾아갈 수 있어요.
  4. 4결과가 무엇인가. 성공인지 실패인지, 실패면 어디서 막혔는지예요. 여기가 비면 나머지가 다 무의미해요.
  5. 5얼마나 걸렸나. 초 단위 숫자 하나예요. 느려졌다는 막연한 느낌을 숫자로 바꿔 주는 유일한 칸이에요.

여기에 하나만 더 붙이면 값이 크게 올라가요. 요청 하나마다 붙는 번호예요. 손님이 결제 버튼을 한 번 누르면 서비스 안에서는 여러 곳을 거치는데, 같은 번호를 달아 두면 그 한 번의 여정이 한 줄로 꿰여요. 택배 송장 번호로 창고에서 문 앞까지를 따라가는 것과 같은 방식이에요.

이 번호는 손님에게도 써요

문의 답장에 "확인 번호 A-4821로 확인해 드렸어요"처럼 적어 두면, 나중에 같은 건으로 다시 연락이 와도 처음부터 다시 찾지 않아요. 로그가 사장님의 응대 속도로 바뀌는 지점이에요.

등급을 나누면 안 읽어도 되는 줄이 생겨요

로그를 켜 두면 하루에도 수천 줄이 쌓여요. 전부 읽는 사람은 없어요. 그래서 줄마다 등급을 달아 두고, 평소에는 위쪽 등급만 봐요.

등급무엇을 적나언제 보나
정보주문이 들어왔다, 메일을 보냈다처럼 정상적으로 일어난 일사고가 났을 때 시간대를 훑을 때만 봐요. 평소에는 안 봐요
경고실패는 아니지만 이상한 것. 응답이 평소보다 오래 걸렸다거나 재시도로 겨우 성공한 것주마다 한 번 훑어요. 다음 달 사고가 여기 미리 적혀 있는 경우가 많아요
오류손님이 하려던 일이 실제로 실패한 것바로 봐요. 여기 줄이 늘면 장애가 났을 때 순서로 넘어가요
치명서비스 전체가 못 도는 상태. 데이터베이스 연결 끊김 같은 것폰이 울려야 하는 등급이에요. 이건 읽는 게 아니라 알림을 받아요

확인해 보세요

결제가 한 번 실패했다가 손님이 다시 눌러서 성공했어요. 이 줄은 어느 등급이 맞을까요?

얼마나 오래 두고, 얼마가 드나

로그는 쌓이는 만큼 돈이 돼요. 저장 공간을 쓰고, 로그를 모아 주는 서비스는 대개 하루에 들어오는 양으로 요금을 매겨요. 그래서 "영원히 다 보관"은 선택지가 아니에요.

종류보통 얼마나 두나판단 기준
평상시 정보 줄며칠에서 2주사고는 대개 며칠 안에 신고돼요. 그 뒤로는 볼 일이 거의 없어요
경고와 오류 줄한 달에서 석 달월말에 한 번 도는 일까지 한 바퀴 돌아 본 뒤에 지워요
돈이 오간 기록길게분쟁과 정산 대조에 쓰여요. 이건 로그가 아니라 장부로 다뤄야 하는 값이에요
손님 정보가 섞인 줄짧게오래 쥘수록 위험만 커져요. 보관 기간과 파기 규칙을 그대로 따라요

요금이 조용히 늘어나는 자리예요

로그를 모아 주는 서비스는 무료 구간이 있고 그 위로는 양에 따라 올라가요. 기능을 늘리면 로그 양도 같이 늘어서, 어느 달 청구서에서 처음 발견하게 돼요. 운영비 점검과 구독 정리를 돌 때 로그 요금도 같은 칸에 넣어 두세요.

사고가 났을 때 읽는 순서

로그를 처음 여는 사람은 대개 맨 아래부터 위로 훑다가 지쳐요. 순서가 있어요. 시간부터 좁히고, 그다음에 번호로 꿰요.

  1. 1손님에게 시각을 물어요. "몇 시쯤이었나요" 한 마디가 수천 줄을 몇십 줄로 줄여요.
  2. 2그 앞뒤 5분만 봐요. 넓게 보면 못 찾아요. 좁게 보고 없으면 그때 넓혀요.
  3. 3오류 등급 줄부터 읽어요. 정보 줄은 배경이고, 답은 대개 오류 줄 한두 개에 있어요.
  4. 4그 줄의 요청 번호로 다시 훑어요. 같은 번호가 붙은 줄만 모으면 그 손님의 여정 하나가 통째로 나와요.
  5. 5내 쪽인지 남의 쪽인지 가려요. 결제사나 문자 발송처럼 밖에 맡긴 곳의 응답이 없었다면 내가 고칠 것이 아니에요.
  6. 6찾은 내용을 문의 답장에 한 줄로 적어요. 원인을 모르면 시각만이라도 적어요. "확인 중"보다 훨씬 강한 답이에요.

장면 · 외주 개발자가 문의를 받고 말했다

그 시간대 로그를 안 남기고 있어서 확인이 어렵습니다.

화를 낼 자리가 아니라 지금 켜 둘 자리예요. 물을 건 두 가지예요. "지금부터 남기려면 무엇을 켜야 하나요." 그리고 "손님 번호와 걸린 시간이 한 줄에 같이 남나요." 이 둘이 되면 다음에 같은 문의가 왔을 때는 답이 나와요. 이미 지나간 일은 못 되살리니 그 손님에게는 화면에서 확인 가능한 것까지만 안내해요.

그대로 옮겨 쓸 문장

직접 만드는 중이면 아래 문장을 그대로 보내면 돼요. 전문어를 몰라도 돼요. 중요한 건 무엇을 남기고 무엇을 안 남길지를 내가 정한다는 사실이에요.

내 상황그대로 보낼 문장
이제부터 기록을 남기고 싶어요"주문·결제·로그인에서 성공과 실패를 각각 한 줄씩 남겨 주세요. 시각, 주문번호, 걸린 시간을 같이 적어 주세요."
손님 정보가 새는 게 걱정돼요"비밀번호, 카드번호, 로그인 토큰은 기록에 절대 남기지 말아 주세요. 연락처는 뒤 네 자리만 남겨 주세요."
한 손님의 여정을 따라가고 싶어요"요청마다 번호를 하나 붙이고, 그 요청이 거쳐 가는 모든 줄에 같은 번호를 넣어 주세요."
다 볼 시간이 없어요"정상 동작은 정보, 실패는 오류로 등급을 나눠 주세요. 평소에는 오류만 보고 싶어요."
요금이 걱정돼요"정보 등급은 2주 뒤 자동으로 지워지게 하고, 오류는 석 달 두게 해 주세요."
밖에 맡긴 곳이 문제인지 알고 싶어요"결제사와 문자 발송처럼 외부에 요청하는 부분은 응답 시간과 응답 여부를 따로 남겨 주세요."

직접 해보기

두 번째 문장부터 붙여 보세요

여섯 줄 중 하나만 쓴다면 "비밀번호, 카드번호, 로그인 토큰은 기록에 절대 남기지 말아 주세요" 예요. 나머지는 나중에 붙일 수 있지만 이건 나중에 지우기가 어려워요. 이미 쌓인 줄은 되돌릴 수 없거든요. 스튜디오에서 만드는 중인 것이 있으면 지금 그 자리에 그대로 붙여 보세요.

스튜디오에서 적어 보기

자주 묻는 것

Q. 손님이 적은 게 아니면 로그를 안 켜도 되지 않나요?
손님이 적을수록 더 값이 나가요. 하루 주문이 다섯 건이면 로그도 몇십 줄이라 사장님이 직접 읽을 수 있거든요. 손님이 늘고 나서 켜면 그 전에 있었던 일은 영영 못 봐요. 켜는 데 드는 값이 가장 싼 시기가 지금이에요.
Q. 로그는 어디에 쌓이나요?
사이트를 올려 둔 곳이 기본으로 얼마간 보관해 줘요. 다만 대개 며칠 치만 남고 검색도 불편해요. 문의가 늘기 시작하면 로그를 모아 보여 주는 별도 서비스를 붙이는데, 그때부터는 요금이 따라와요.
Q. 오류만 모으면 되지 평상시 기록까지 필요한가요?
"그때는 멀쩡했다"를 증명하려면 필요해요. 오류만 모으면 손님이 말한 시각에 아무 줄도 없을 때 두 가지를 구분 못 해요. 아무 일도 안 일어난 것인지, 손님 요청이 아예 도착도 못 한 것인지요. 정보 줄이 있으면 이게 갈려요.
Q. 로그를 제가 직접 봐야 하나요?
평소에는 아니에요. 오류 등급 줄이 갑자기 늘 때 알림을 받는 쪽이 맞아요. 사장님이 직접 여는 건 문의가 들어와서 시각을 확인할 때 정도예요. 그것만 할 줄 알아도 응대 품질이 달라져요.
Q. 개발자에게 로그를 보여 달라고 하면 되나요?
돼요. 다만 파일 전체를 통째로 받지는 마세요. 손님 정보가 섞여 있을 수 있어요. "그 시각 앞뒤 5분치만, 이 주문번호가 들어간 줄만" 처럼 범위를 정해서 받으세요.

더 깊이 (안 읽어도 괜찮아요)

로그가 서비스를 느리게 만들 수 있어요 · 줄을 적는 것도 일이에요. 요청 하나마다 수십 줄을 적으면 그만큼 느려지고, 저장하는 곳이 잠깐 막히면 손님 요청까지 같이 기다려요. 그래서 실제 서비스에서는 로그를 곧바로 저장하지 않고 잠깐 모아 두었다가 한꺼번에 내보내는 방식을 써요. 사장님이 이걸 직접 다룰 일은 없지만, "기록을 늘렸더니 느려졌어요"라는 말이 실제로 있을 수 있는 말이라는 건 알아 두면 좋아요.

글로 적을까 정해진 칸에 적을까 · 사람이 읽기 좋은 문장으로 적는 방식과, 항목마다 칸을 정해 두고 값만 채우는 방식이 있어요. 문장은 눈으로 읽기 편하고, 칸으로 적으면 "실패한 줄만", "3초 넘게 걸린 줄만" 처럼 골라 세기가 쉬워요. 문의가 늘어 세어 보고 싶어지는 시점이 오면 뒤쪽으로 옮기게 돼요. 처음부터 뒤쪽으로 시작해도 손해는 없어요.

이 문서와 이웃 둘의 경계 · 셋 다 기록이지만 목적이 달라요. 이 문서의 로그는 무슨 일이 있었나를 답하고, 오류 기록 모으기무엇부터 고칠까에 순위를 매기고, 누가 무엇을 했는지 남기기누가 바꿨나를 증명해요. 마지막 것만 분쟁에서 증거로 쓰여요. 환불 금액이나 권한 변경처럼 다투게 될 값은 로그가 아니라 그쪽에 남겨야 해요.

이것만 기억하세요

  • ·로그는 서비스가 스스로 적는 영업일지예요. 미리 켜 두지 않으면 지나간 날의 페이지는 영영 없어요
  • ·한 줄에 시각, 무슨 동작, 손님 번호, 성공 여부, 걸린 시간이 있으면 쓸 만한 줄이에요
  • ·비밀번호와 카드번호와 로그인 토큰은 어떤 이유로도 남기지 않아요. 이미 쌓인 줄은 되돌리기 어려워요
  • ·등급을 나눠야 평소에 안 읽어도 되는 줄이 생겨요. 다 중요하게 만들면 아무도 안 봐요
  • ·사고 때는 시각으로 좁히고 요청 번호로 꿰요. 이 두 걸음이 추측을 증거로 바꿔요
VibeCampus新建作品