개발자의 당직, On-call에 대해서
개발하는 분야에 따라 다르지만, 서비스를 24시간 365일 돌리는 회사들은 보통 비상시를 위한 대기조(On-call), 당직 같은 게 있습니다. 왜냐하면, 어느 때라도 서비스에는 문제가 생길 수 있으며, 누군가는 빠르게 대처를 해야 하기 때문입니다.
당직 주기는 회사나 팀마다 다르지만, 제가 경험했던 바로는 한 번 당직을 맡으면 보통 일주일 동안 합니다. 당직이 되면, 그 기간 동안은 자기가 하던 일은 우선순위가 뒤로 밀리며, 당직이 최우선이 됩니다.
당직 시 하는 일은 스마트폰으로 자신의 팀이 맡은 부분에 어떤 문제가 생기면 알람이 옵니다. 이때 이 문제를 받았다고 응답하고, 초동 대처를 해야 합니다. 당직에도 순서가 있으며, 내가 혹시라도 응답을 못하고 처리를 못하면, 내 다음 당직인 사람이 받습니다. 왜냐하면 사람이 하는 일인 지라, 혹시라도 알람을 못 받았을 때도 있어서 이를 막기 위해서 4중 5중으로 안전장치를 마련해 놓았습니다. 한데 이 순위가 뒤로 갈수록 조직도상에서는 점점 위로 올라가는 편이라, 가급적 일차나 이차 때 응답을 하고 문제를 처리하려고 합니다. 3차 때부터는 보통 팀장급으로 올라갑니다.
초동 대처는 대부분 매뉴얼화되어 있어서, 문제 알람을 처음 받더라도 매뉴얼 보고 따라 할 수 있게끔 자세히 적혀 있습니다. 이로써, 누구나 당직일 때 문제를 대처할 수 있게 합니다. 가끔 이 매뉴얼에 없는 문제나 매뉴얼이 오래돼서 현재 상황과 안 맞을 때는 문제를 최대한 스스로 먼저 처리하고 안되면 그 문제와 직접 관련 있는 서비스의 담당자를 호출하면서 문제를 우선 해결합니다. 그리고 나중에 후속 대처로 발생했던 문제에 대하여 어떻게 초동 대처하면 좋을지 매뉴얼에 새로 추가합니다.
알람 오는 시간은 대중없습니다. 일반적으로는 낮에 주로 오나, 가끔은 새벽에도 알람이 와서 깨기도 합니다. 그러면 새벽에 눈 비비며 컴퓨터를 켜고 문제를 봅니다. 그리고 장소도 가리지 않기 때문에, 당직 기간에는 스마트폰과 노트북을 항시 들고 다닙니다.
여러분들이 쓰는 24시간 돌아가는 서비스, 포털, 쇼핑몰, SNS는 대부분 이런 당직을 가지고 있다고 보시면 되며, 그 당직들에 의해서 사용자들은 잘 모르게 서비스가 유지되고 있습니다.