1년을 되짚어 봤다 — 잘한 결정 하나, 후회한 결정 하나
2026년 연말, 지난 1년 결정들을 솔직하게 따져본 운영 회고
지난번에 다르게 하기로 한 그것, 진짜 했나
안 했다. 사후 보고서를 사건 24시간 안에 쓰기로 했는데, 올해도 평균 72시간 걸렸다. 세 번의 인시던트 중 두 번은 5일 뒤에 썼다. 핑계는 언제나 같다 — “일단 복구 먼저.” 복구가 끝나면 긴장이 풀리고, 긴장이 풀리면 글이 안 써진다. 이건 의지 문제가 아니라 구조 문제라는 걸 이제는 알면서도 구조를 안 바꿨다.
다음 섹션으로 넘어가기 전에 적어둔다. 1년 후 이 글을 다시 읽을 때 또 같은 문장을 쓰고 싶지 않아서.
가장 잘한 결정 — 온콜 로테이션을 강제로 문서화한 것
3월 초, 팀원 한 명이 갑자기 병가를 냈다. 평소 온콜 담당이었는데, 그 사람 머릿속에만 있던 에스컬레이션 경로가 통째로 사라진 셈이었다. 새벽 2시에 알람이 울렸고, 나는 20분 동안 “이걸 누구한테 연락하지”를 구글 채팅 히스토리에서 역추적했다.
그 주에 바로 작업했다.
-
README 첫 줄을 “1차 온콜: @누구 / 백업: @누구 / 에스컬레이션: 슬랙 #incident-bridge”로 고정했다. 누가 받고, 누가 백업인지 클릭 한 번에 보이게. 이후 6개월간 “누구한테 연락해요?” 슬랙 DM이 0건이었다. 사소해 보이지만 새벽 2시 기준으로는 사소하지 않다.
-
로테이션 시트를 구글 시트 한 탭으로 옮기고, 매주 월요일 cron 으로 슬랙에 자동 공지되게 했다. 이전엔 누군가 수동으로 메시지를 보냈는데, 그 누군가가 바쁘면 공지가 빠졌다. 자동화하니 빠진 적이 없었다.
-
문서 자체보다 “문서 오너”를 지정한 게 더 컸다. 처음엔 내가 고쳤는데, 6월부터 담당자를 로테이션 참여자로 넘겼다. 오너가 없으면 문서는 두 달이면 썩는다.
막상 해보니 하루가 걸리지 않았다. 2시간짜리 작업을 3월 이전까지 계속 미뤘다는 게 지금 생각해도 황당하다.
가장 후회한 결정 — LLM 프롬프트를 하드코딩으로 배포한 것
4월에 내부 요약 파이프라인에 Claude API를 붙였다. 빠르게 붙이고 싶었고, 프롬프트는 “나중에 분리하지 뭐” 하고 코드 안에 그냥 박았다. 그게 8월까지 그 상태로 갔다.
문제는 두 가지였다.
-
프롬프트를 한 줄 바꿀 때마다 배포를 해야 했다. QA 통과, 스테이징 확인, 머지, 배포 — 30분짜리 절차를 프롬프트 실험 한 번에 다 밟아야 했다. 실험 속도가 안 나오니 개선이 멈췄다. 8월까지 프롬프트가 딱 두 번 바뀌었다.
-
첫날
cache_control안 붙인 것도 뼈아팠다. 같은 시스템 프롬프트가 매 요청마다 토큰을 태웠다. 요청이 하루 1,200건쯤 됐는데, 캐싱 없이 달리니 입력 토큰 비용이 예상의 2.3배로 나왔다. 8월에 캐싱 붙이고 다음 달 청구서가 바로 37% 줄었다. 처음부터 했으면 4개월치 차액을 아꼈을 텐데. -
max_retries도 마찬가지였다. 기본값 믿고 넘어갔다가 5월에 API 일시 장애 때 파이프라인이 통째로 멈췄다. 재시도 로직이 없었으니 에러가 그냥 쌓였다. 그날 새벽 1시에 수동으로 재처리했다.
“빠르게 붙이기” 결정이 나중에 훨씬 느리게 만들었다. 전형적인 패턴인데 또 당했다.
의외로 효과 있었던 것 — cron 을 UTC 로 통일한 것
사실 이건 작년 회고에서 “변한 것”에 적었던 항목이다. 올해는 그 효과를 온전히 누렸다.
이전엔 서버 타임존이 KST, 배치 cron 이 KST 기준, 모니터링 대시보드가 UTC, 로그가 UTC+9 오프셋 없이 찍히는 식으로 세 곳이 제각각이었다. 인시던트 타임라인 맞출 때마다 9시간 더하기 빼기를 손으로 했다.
-
전부 UTC 로 통일하고 나서 타임존 혼선으로 인한 사건이 0건이었다. 숫자가 단순해서 별로 안 대단해 보이지만, 작년에는 이 문제로만 두 번 새벽에 깼다.
-
팀 신규 합류자가 5월에 들어왔는데, 온보딩 때 타임존 설명이 딱 한 줄이었다 — “모든 시간은 UTC.” 이전엔 세 페이지짜리 타임존 주의사항 문서가 있었다.
-
로그 분석 쿼리가 눈에 띄게 짧아졌다.
AT TIME ZONE 'Asia/Seoul'변환을 매 쿼리마다 붙이던 게 사라졌다.
작은 표준 하나가 인지 부하를 꽤 많이 줄여준다는 걸 이번 해에 다시 실감했다.
말만 하고 못 한 것 — 도구 정리
분기마다 “사용하지 않는 SaaS 끊기” 회의를 하기로 했다. 1분기엔 했다. 2분기엔 “다음 달에”, 3분기엔 “연말에 몰아서”로 밀렸고, 지금 이 글을 쓰는 시점에 아직 안 했다.
비용 리뷰를 억지로 해보니 사용량 0인 도구가 3개였다. 월 합산 약 14만 원. 연간으로 따지면 168만 원. 아깝다기보다 이걸 알면서 4개월을 넘긴 것 자체가 불편하다.
변명을 굳이 하자면 — 이런 종류의 작업은 긴급하지 않으니 계속 밀린다. 긴급하지 않은 걸 실행하려면 의지가 아니라 캘린더 블록이 필요하다. 내년엔 분기 첫날 2시간짜리 블록을 미리 박아두는 방식으로 바꿔볼 생각이다. 회의 이름도 바꾼다 — “도구 정리”가 아니라 “비용 리뷰 + 삭제 실행.” 이름 안에 행동이 있어야 그날 뭔가가 실제로 끊어진다.
다음 한 가지
다음 글을 쓸 때 “LLM 파이프라인 프롬프트, 외부 설정 파일로 분리했나” 한 줄 먼저 적는다.
🛒 이 글과 어울리는 추천 상품
위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.