온콜

On-call

관행

정해진 기간 동안 장애 연락을 받아 가장 먼저 움직이기로 약속한 당번과 그 당번을 돌리는 방식입니다.

등장 배경

서비스는 근무 시간에만 고장 나지 않습니다. 새벽 세 시에 결제가 막히고 일요일 아침에 로그인이 안 되는데, 회사 안에서는 그 사실을 아무도 모르는 상태가 몇 시간씩 이어졌습니다.

당번을 정하지 않았을 때 더 흔한 장면은 따로 있었습니다. 알림을 모두에게 보내 두면 아무도 자기 일로 여기지 않습니다. 열 명이 있는 대화방에 경보가 울리면 열 명이 각자 다른 누군가 보고 있겠거니 하고 넘기고, 30분 뒤에 한 사람이 "이거 누가 보고 있나요" 라고 물을 때까지 아무 일도 일어나지 않습니다. 반대로 책임감이 강한 한두 사람만 매번 나서면 그 사람들이 반년 안에 지쳐 나가고, 그때부터는 아무도 보지 않는 상태로 돌아갑니다.

온콜은 이 두 가지를 한꺼번에 막으려고 만든 약속입니다. 지금 이 순간 누가 받는지를 한 사람으로 못 박고, 그 자리를 팀 전체가 돌아가며 맡습니다. 누가 받을지를 사고가 난 뒤에 정하지 않고 미리 정해 두는 것이 핵심 장치입니다.

진행 순서

알림이 울린 순간부터 기록을 남기는 순간까지 여섯 단계로 흘러갑니다. 단계를 글로 박아 두는 이유는 새벽에 잠에서 깬 사람이 판단을 적게 해도 되게 만들기 위해서입니다.

  1. 알림이 옵니다. 정해진 조건을 넘으면 담당자에게 연락하는 장치를 알림이라고 하고, 온콜 당번의 휴대폰으로 전화나 진동을 보냅니다. 메신저 메시지 하나로는 자고 있는 사람을 깨우지 못하므로 소리가 나는 수단을 씁니다.
  2. 받았다고 표시합니다. 보통 몇 분 안에 응답하기로 약속하고, 이 표시가 없으면 다음 사람에게 자동으로 넘어갑니다. 당번이 지하철 안이거나 전화를 못 받는 상황을 사고가 피해 가지는 않습니다.
  3. 영향 범위를 봅니다. 사용자가 하려던 일을 실제로 못 하게 된 사고를 인시던트라고 하는데, 먼저 이것이 인시던트인지 아닌지를 가릅니다. 전체 사용자가 저장을 못 하는 것과 특정 브라우저에서 글자가 깨지는 것은 같은 밤에 일어나도 다르게 다룹니다. 이 판단의 기준이 심각도이고, 등급이 그다음 단계의 속도를 정합니다.
  4. 되돌립니다. 원인을 찾는 것보다 서비스를 돌려놓는 것이 먼저입니다. 방금 나간 배포가 의심되면 롤백으로 이전 버전으로 되돌리고 원인은 아침에 찾습니다. 새벽에 원인을 추적하다 두 시간을 보내는 것이 가장 흔한 실수입니다.
  5. 막히면 넘깁니다. 정해진 시간 안에 풀리지 않으면 다음 사람을 부릅니다. 이 절차가 에스컬레이션입니다.
  6. 기록을 남깁니다. 복구된 뒤에는 무슨 일이 있었는지를 포스트모템으로 정리합니다. 당번이 새벽에 무엇을 보고 무엇을 눌렀는지가 여기 들어가야 다음 당번이 같은 증상에서 헤매지 않습니다.

참여자와 시점

한 번에 당번을 서는 사람은 보통 두 명입니다. 1차 당번이 알림을 먼저 받고, 1차가 정해진 시간 안에 응답하지 않으면 2차 당번에게 자동으로 넘어갑니다. 2차는 예비가 아니라 필수입니다. 한 사람에게만 걸어 두면 그 사람의 휴대폰이 꺼진 밤에 알림 체계 전체가 멈춥니다.

여기에 큰 사고에서만 등장하는 자리가 둘 더 있습니다. 하나는 그 시스템을 가장 잘 아는 담당자로, 4단계에서 되돌리기만으로 안 될 때 불려 나옵니다. 다른 하나는 사고 전체를 지휘하는 사람입니다. 이 자리가 필요한 이유는 규모가 커지면 고치는 일과 알리는 일이 동시에 굴러가야 하기 때문입니다. 고객에게 공지를 올리고 경영진에게 상황을 전하는 일을 손을 움직이는 사람이 같이 하면 양쪽 다 늦어집니다.

교대 주기는 보통 일주일입니다. 하루씩 끊으면 인수인계가 잦아 진행 중인 사고가 자꾸 끊기고, 한 달씩 맡기면 그 사람이 한 달을 통째로 긴장한 채 보냅니다. 주 단위로 넘길 때는 아직 안 끝난 일과 지난주에 울린 알림 가운데 무시하기로 한 것을 다음 당번에게 말로 넘깁니다.

시점을 나누는 방식도 회사마다 다릅니다. 사람이 여러 나라에 있으면 각자 자기 낮 시간만 맡아 아무도 새벽에 깨지 않게 짤 수 있습니다. 한 나라에만 있으면 밤과 주말을 나눠 맡을 수밖에 없고, 이때는 밤에 깬 사람이 다음 날 늦게 출근하거나 쉬는 규칙을 함께 둡니다. 이 규칙이 없으면 당번 주간이 그냥 근무 시간이 늘어난 주간이 됩니다.

실무 용례

"이번 주 온콜 누구예요?"

지금 이 시간에 장애 연락을 받기로 한 사람이 누구인지 묻는 말입니다.

"새벽에 두 번 깼는데 둘 다 무시해도 되는 알림이었어요."

알림 조건이 느슨해서 사람을 깨울 필요가 없는 것까지 전화를 걸고 있다는 신고입니다.

"일단 롤백하고 원인은 내일 봅시다."

지금은 복구가 먼저이니 새벽에 원인 추적을 시작하지 말자는 제안입니다.

페이지덱은 개발자가 여덟 명이라 태오를 포함한 여섯 명이 일주일씩 돌아가며 당번을 섭니다. 당번 주간이 끝나는 월요일 아침에 15분짜리 인수인계 자리를 두고, 지난주에 울린 알림을 한 줄씩 훑으면서 무시해도 됐던 것을 찾아 조건을 고칩니다. 이 자리를 만든 뒤로 새벽에 울리는 알림이 절반 아래로 줄었습니다.

태오가 당번일 때 지현은 그 주에 태오에게 새 기능 일정을 잡지 않습니다. 당번은 대기만 하는 자리가 아니라 사고가 나면 하루가 통째로 없어지는 자리라서, 그 주에 잡아 둔 일정은 대개 밀립니다.

흔한 오해

온콜을 24시간 책상 앞에 앉아 있는 대기 근무로 읽는 경우가 많습니다. 연락을 받기로 했다는 말이 자리를 지키라는 말처럼 들리니 그렇게 오해하기 쉽습니다. 실제 약속은 자리가 아니라 응답 시간입니다. 알림을 받고 정해진 분 안에 반응할 수 있으면 장을 보든 영화를 보든 상관없고, 제약은 전화가 터지고 노트북을 열 수 있는 곳에 있어야 한다는 것 정도입니다. 이 둘을 구분하지 않으면 당번을 아무도 맡으려 하지 않게 되고, 결국 돌아가며 맡는 구조가 깨져 몇 사람에게 몰립니다.

당번이 모든 문제를 직접 고쳐야 한다고 보는 것도 흔합니다. 당번의 일은 상태를 파악하고 복구를 시작하고 필요한 사람을 부르는 데까지입니다. 그래서 다른 팀 코드를 모르는 사람도 당번을 설 수 있고, 그러라고 5단계를 절차로 만들어 둔 것입니다. 이 오해가 남아 있으면 당번은 자기가 못 고치는 문제 앞에서 남을 깨우기를 망설이고, 망설인 시간만큼 복구가 늦어집니다.

자주 헷갈리는 용어

용어무엇을 정하는가온콜과의 차이
에스컬레이션해결이 안 될 때 누구에게 언제 넘길지당번이 막힌 뒤에 작동하는 절차입니다. 온콜이 첫 사람을 정해 두는 일이라면 에스컬레이션은 그다음 사람을 정해 두는 일이고, 둘이 같이 있어야 연락이 끊기지 않습니다

같이 보면 좋은 페이지

  • 장애 대응

    당번이 맡는 일이 전체 흐름의 어느 자리인지 봅니다

  • 에스컬레이션

    당번 혼자 감당하지 못할 때 이어지는 절차입니다

연관 용어

마지막 업데이트 2026-09-16