장애 터지면 나 말고 고칠 사람이 없다: 휴가는 언제?

장애 터지면 나 말고 고칠 사람이 없다: 휴가는 언제?

장애 터지면 나 말고 고칠 사람이 없다: 휴가는 언제?

휴가 신청서를 쓸 수가 없다

휴가 신청 화면을 3개월째 켜놓고 있다. 날짜만 선택하면 된다. 근데 못 누른다.

작년 여름. 부산 가려고 KTX 표 예매했다. 출발 2시간 전에 장애 알림. 새벽 4시에 터진 DB 락. 결국 환불했다. 수수료 2만원.

추석 때도 마찬가지였다. 고향 가는 전날 밤에 AWS 비용 폭증 알림. 누군가 무한루프 API 호출 중. 명절 내내 노트북 들고 다녔다. 어머니가 “밥이라도 먹고 해라” 하셨다. 밥 먹으면서도 모니터링 대시보드 켜놓고 있었다.

올해는 아예 신청을 안 했다. 어차피 못 가니까.

대표님은 “휴가 쓰세요” 라고 한다. 근데 내가 없으면 서비스가 멈춘다. 대표님도 안다. 그래서 더 미안해한다. 근데 채용은 안 한다. 예산이 없대.

지난주 금요일. 동기가 제주도 사진 보냈다. “3박4일 힐링 중ㅋ”. 나는 그 시각 배포 중이었다. 힐링이 뭔지 기억이 안 난다.

주말이 주말이 아니다

토요일 오전 11시. 침대에서 일어나려는데 슬랙 알림.

“서비스 느린 것 같은데요?”

대표님이다. 주말에도 서비스 쓰시나 보다.

노트북 켰다. CloudWatch 확인. CPU 사용률 92%. RDS 커넥션 풀 다 찬 상태. 어제 배포한 기능에서 커넥션 릭.

30분 만에 핫픽스 배포. 다시 침대로. 근데 잠이 안 온다. 혹시 또 터질까봐.

일요일은 더하다. 사람들이 오후에 서비스를 제일 많이 쓴다. 그래서 장애도 일요일 오후에 제일 많이 터진다.

지난 일요일. 친구들이 등산 가자고 했다. 오랜만에 나갔다. 북한산 중턱쯤 올라갔을 때 알림. API 타임아웃 증가. 결국 하산했다. 친구들은 정상 찍고 왔다. 나는 스타벅스에서 노트북 펴고 있었다.

“야 너 진짜 언제까지 그러고 살래?”

친구 말이 맞다. 근데 어쩌나. 나 말고 고칠 사람이 없는데.

주말에 쉬어본 게 언제였나 생각해봤다. 3개월 전? 아니다. 그때도 Terraform 작업했다. 6개월 전? 그때는 DB 마이그레이션 했다.

주말이 주말이 아니다. 그냥 출근 안 하는 평일이다.

명절도 예외는 아니다

설날이었다. 가족들 모였다. 사촌동생이 취업 준비 중이래.

“형 회사 괜찮아?”

괜찮냐고? 글쎄.

“개발자 뽑아?”

우리는 계속 뽑고 있다. 6개월째. 근데 안 온다. 오는 사람은 스타트업 경험자들인데 면접에서 “개발자 몇 명이에요?” 물어보면 대답 못 하겠다. “저요” 라고 하면 바로 표정 굳는다.

밥 먹는데 폰이 울렸다. Sentry 알림. Uncaught Exception. 500에러 스파이크.

“잠깐만요.”

화장실 들어갔다. 노트북 가져왔으면 좋았을 걸. 폰으로 SSH 접속. 로그 확인. Redis 연결 끊김. 재시작 명령어 입력.

10분 뒤에 나왔다. 아버지가 걱정스럽게 보셨다.

“배탈났냐?”

“아니요. 괜찮아요.”

배탈도 아니고 마음탈이다.

추석 때는 더 심했다. 고향 가는 버스에서 배포했다. 4시간 동안 테더링 켜놓고. 데이터 20GB 썼다. 배포 끝나니까 배터리 8%. 도착했을 때는 껐다.

“휴대폰도 못 쓰게 생겼네.”

어머니가 충전기 주셨다. 근데 사실은 의도적으로 다 쓴 거다. 알림 안 받으려고. 진짜 쉬고 싶어서.

2시간 뒤에 다시 켰다. 슬랙 메시지 47개. 카톡 32개. 부재중 전화 3통. 다 대표님.

명절도 예외가 아니다. 사람들은 쉬니까 서비스를 더 쓴다. 그러니까 장애도 더 터진다. 나는 더 일한다.

밤 11시 알림의 공포

요즘 제일 무서운 시간이 밤 11시다.

씻으려고 욕실 들어가는데 알림. 씻다 말고 나왔다. 머리에 샴푸 묻은 채로 노트북 켰다. 물방울이 키보드에 떨어졌다.

API Gateway 타임아웃. Lambda cold start 문제. Provisioned Concurrency 설정 잊어먹었다. 30분 만에 해결. 다시 샤워하러 갔다. 물이 차가워졌다.

새벽 2시 알림도 자주 온다. 잠들었을 때. 꿈에서도 알림음 들리는 것 같아서 깬다. 진짜 알림인지 확인한다. 진짜다. 일어난다.

한 번은 꿈이었다. 근데 일어나서 확인했다. 습관이 됐다. 이제는 알림 없어도 새벽에 깬다. 확인한다. 다행히 알림 없다. 근데 잠이 안 온다. 혹시 모니터링 시스템이 죽은 건 아닐까. 확인한다. 살아있다. 다시 눕는다. 1시간 뒤에 또 깬다.

수면 패턴이 망가졌다. 건강검진에서 의사가 그랬다.

“수면의 질이 안 좋네요. 스트레스 받는 일 하세요?”

“네. 개발자요.”

“음… 일 줄이셔야 할 것 같은데요.”

줄이고 싶다. 근데 어떻게 줄이나. 장애는 내가 정하는 게 아닌데.

알림 끄면 되지 않냐고? 껐다가 큰일 났다. 새벽 3시에 터진 장애. 9시에 출근해서 알았다. 대표님 얼굴이 창백했다. 유저 100명 이탈. 매출 타격. 사과문 올렸다.

그날 이후로 알림은 절대 안 끈다. 진동 켜놓고 잔다. 베개 밑에 폰 넣고 잔다. 언제든 깰 준비.

병원 예약도 못 잡는다

이가 아프다. 3주째다. 치과 가야 한다. 근데 예약을 못 잡는다.

평일 낮에 가려면 반차를 써야 한다. 근데 반차 쓰고 나가면 그 시간에 장애 터지면? 치과에서 노트북 펼 수는 없다. 마취하고 있는데 슬랙 알림 오면? 입 벌리고 있는데 전화 오면?

결국 진통제 먹고 버틴다. 타이레놀 500mg. 하루 3알. 3주째. 위도 아프기 시작했다.

건강검진도 2년째 미뤘다. 작년에 예약했는데 전날 밤에 배포 이슈. 취소했다. 올해도 예약했다. 또 취소했다. DB 마이그레이션 날짜랑 겹쳤다.

병원 갈 시간도 없다. 아프면 그냥 참는다. 약국 가서 약 사먹는다. 약사가 “병원 가보세요” 한다. “네” 하고 나온다. 안 간다. 못 간다.

허리도 아프다. 의자가 안 좋다. 회사 의자는 10만원짜리 사무용 의자. 집 의자는 이케아 5만원짜리. 둘 다 요추 지지 같은 건 없다.

“허리 아프다”고 말했다. 대표님이 “의자 바꿔드릴까요?” 했다. 고마운데 사양했다. 의자 바꾼다고 해결될 문제가 아니다. 앉아있는 시간을 줄여야 하는데 그게 안 된다.

운동도 못 한다. PT 3개월 끊었다. 한 달 다니고 안 갔다. 환불 안 된다. 180만원 날렸다. 트레이너가 연락 왔다. “요즘 바쁘세요?” 바쁘다. 죄송하다.

몸이 망가지고 있다. 안다. 근데 어쩌나. 서비스 안 망가뜨리려고 내 몸이 망가진다.

온콜의 기회비용

온콜이 뭔지 아나. 24시간 대기조. 언제든 투입 가능 상태. 군대 같은 거다. 민간인이 군대 생활 하는 거다.

근데 온콜 수당은 없다. 연봉에 포함이래. 4800만원에 365일 온콜이 포함. 시급으로 계산하면 얼마나 될까. 하지 말자. 계산하면 화난다.

친구가 대기업 다닌다. 온콜 돌면 하루 10만원 받는대. 주말 온콜은 15만원. 부럽다.

우리는 온콜이 기본값이다. 온콜 아닌 날이 없다. 휴가 써도 온콜. 병가 써도 온콜. 퇴사하기 전까지는 온콜.

온콜의 기회비용을 생각해봤다.

데이트 못 한다. 약속 잡으면 취소한다. 3번 취소하면 끝이다. 그래서 약속 안 잡는다.

취미생활 못 한다. 등산, 헬스, 영화, 게임. 다 중간에 끊긴다. 롤 게임 중에 알림 오면? 팀원들한테 욕먹는다. 그래서 게임도 안 한다.

자기계발 못 한다. 책 읽으려고 하면 알림. 온라인 강의 들으려고 하면 알림. 결국 기술 블로그만 본다. 그나마 짧으니까. 근데 그것도 집중 안 된다.

사람들 만날 수가 없다. 약속 잡으면 “혹시 급한 일 생기면 못 갈 수도 있어” 라고 미리 말한다. 그러면 “그럼 다음에 하자” 한다. 다음은 안 온다.

고립된다. 집-회사-집. 가끔 카페. 근데 카페도 일하러 간다. 노트북 들고 간다. 쉬러 가는 게 아니다.

온콜의 기회비용. 내 인생이다.

대체자가 없는 시스템

Single Point of Failure. SPOF. 시스템 설계에서 제일 피해야 할 거.

근데 나는 SPOF다. 나 하나 없으면 서비스가 멈춘다.

프론트엔드 나. 백엔드 나. 인프라 나. DB 나. 배포 나. 모니터링 나. 장애대응 나. 코드리뷰? 그런 거 없다. 나한테 리뷰할 사람이 없으니까.

버스팩터가 1이다. 내가 버스에 치이면 서비스 끝. 대표님도 안다. 그래서 “조심히 다니세요” 한다. 진담인지 농담인지 모르겠다.

인수인계 문서 써놨다. 100페이지. Notion에. 근데 이걸 누가 읽나. 누가 이해하나. 3년간 쌓인 컨텍스트를 어떻게 글로 전달하나.

“왜 이렇게 짰어요?” 라고 물어볼 사람이 없다. 3개월 뒤에 내가 내 코드 보고 “왜 이렇게 짰지?” 한다. 주석이 없다. 당시엔 급했으니까.

채용 공고 올렸다. “시니어 풀스택 개발자 구함”. 6개월째 안 뽑힌다. 지원자는 온다. 근데 조건이 안 맞는다.

“연봉 7000 이상이요.”

우리는 5500까지 준다고 했다. 대표님이 “협의 가능” 하셨다. 근데 진짜 협의 가능한가? 내 연봉 깎아서 주나?

“주 5일 근무죠?”

그렇다고 했다. 근데 온콜 얘기하니까 표정이 굳었다.

“회사에 개발자가 몇 명이죠?”

“저요.”

그 뒤로 연락 없다.

대체자가 없다. 나를 대체할 사람을 뽑지 못한다. 그래서 나는 계속 여기 있다. 못 떠난다. 떠나면 서비스가 죽으니까.

책임감이라는 족쇄

솔직히 이직하고 싶다. 매일 생각한다.

이력서 업데이트했다. 링크드인 프로필 손봤다. 포트폴리오 정리했다. 원서도 넣어봤다. 몇 군데 면접도 봤다.

면접에서 물어봤다. “온콜 있나요?”

“네, 있는데 로테이션 돌아요. 일주일씩.”

일주일씩? 그것도 돌아간다고? 천국이다.

“팀이 몇 명이에요?”

“백엔드가 5명이고요. 프론트가 3명이고.”

8명? 8명이나? 부럽다.

오퍼 받았다. 연봉 6500. 지금보다 1700 많다. 스톡옵션도 더 많다. 팀도 있다. 온콜도 돌아간다.

근데 못 갔다.

대표님한테 말씀드렸다. “이직 제안 받았습니다.”

대표님이 당황하셨다. “연봉 맞춰드릴게요.”

“연봉 문제가 아니에요.”

“그럼 뭐예요?”

“혼자는 못 하겠어요.”

“개발자 뽑을게요. 진짜로.”

이미 6개월째 못 뽑고 있는데. 그 말 믿을 수 있나.

“생각해보세요. 제발.”

대표님 표정을 봤다. 진짜 힘들어 보였다. 나만 힘든 게 아니구나.

결국 안 갔다. 제안 거절했다. 이유는? 책임감.

서비스에 유저가 5천 명 있다. 유료 결제 유저가 300명 있다. 내가 떠나면 이 사람들은? 서비스 못 쓴다. 환불 받는다. 회사 망한다.

팀원들 있다. 기획자 2명, 디자이너 1명, 마케터 1명. 개발 쪽은 나 혼자지만 다른 팀원들은 있다. 내가 떠나면 이 사람들은? 다 실직자 된다.

대표님도 있다. 3년간 같이 일했다. 믿고 맡겨주셨다. 내가 떠나면? 대표님이 개발 배워야 하나?

책임감이다. 이게 나를 붙잡는다. 족쇄다. 금색 족쇄. 포기할 수 없는 것들이 너무 많다.

근데 이게 맞나? 내 인생을 포기하면서 서비스를 지키는 게? 모르겠다.

언제까지 버틸 수 있을까

요즘 생각한다. 내가 언제까지 버틸 수 있을까.

체력이 예전 같지 않다. 29살인데 벌써 이러면 안 되는데. 새벽 작업하면 다음 날 못 일어난다. 에너지 드링크 효과가 점점 짧아진다. 2시간 버티던 게 이제 30분.

정신적으로도 한계다. 알림음만 들어도 심장이 뛴다. 조건반사. 파블로프의 개. 슬랙 알림음이 공포다.

집중력도 떨어진다. 코드 짜다가 멍 때린다. 뭐 하려고 했더라? 커밋 메시지 뭐였지? 방금 전까지 생각했는데. 사라졌다.

번아웃 증상 찾아봤다. 다 해당된다.

  • 만성 피로? 체크
  • 수면 장애? 체크
  • 집중력 저하? 체크
  • 냉소적 태도? 체크
  • 성취감 감소? 체크
  • 사회적 고립? 체크

상담 받아보라고 한다. 근데 상담 받을 시간이 없다. 상담 예약하려면 평일 낮에 가야 하는데 그 시간에 장애 터지면?

악순환이다. 힘들어서 쉬어야 하는데 쉬면 서비스가 망한다. 서비스 지키려고 버티는데 내가 망한다.

동기들 만났다. 전부 이직했다. 대기업, 외국계, 스타트업. 다들 잘 다닌다.

“너 아직 거기야?”

“응.”

“채용 안 해?”

“하는데 안 뽑혀.”

“그럼 너 언제 나와?”

“모르겠어.”

진짜 모르겠다. 탈출구가 안 보인다. 개발자 뽑히기 전까지는 못 나간다. 근데 개발자가 안 뽑힌다. 그럼 영원히 못 나가나?

1년 더? 버틸 수 있을까. 체력적으로. 정신적으로. 모르겠다.

근데 버텨야 한다. 나 말고 할 사람이 없으니까.

그래도 버티는 이유

퇴사 고민하면서도 출근한다. 왜?

월급 때문? 아니다. 6500 오퍼 거절했으니까.

성장 때문? 글쎄. 혼자 하니까 성장도 한계다. 피드백 없다. 방향도 모른다.

그럼 뭐 때문?

유저들 때문인 것 같다. 어제 앱 리뷰 봤다. 별 5개.

“덕분에 업무 효율 10배 올랐어요. 감사합니다!”

이런 리뷰 보면 기분이 좋다. 내가 만든 거 누가 쓴다. 그것도 좋아한다. 도움이 된다.

팀원들 때문이기도 하다. 기획자가 그랬다.

“덕분에 제 기획이 세상에 나왔어요. 고마워요.”

디자이너는 “내 디자인이 진짜로 움직이네요” 하면서 좋아했다. 마케터는 “전환율 올랐어요!” 하면서 기뻐했다.

내가 있어야 이 사람들 일이 결과로 나온다. 그게 의미 있다.

대표님은 가끔 말한다.

“너 없으면 여기 못 돌아가. 고마워.”

고맙긴 한데 그 말이 때로는 무겁다. 부담이다. 책임이다.

그래도 버틴다. 완전히 의미 없는 건 아니니까. 누군가에게 도움이 되니까. 내가 필요한 곳이니까.

근데 이게 언제까지 버틸 이유가 될까. 모르겠다.

휴가는 결국 언제?

제목으로 돌아왔다. 휴가는 언제?

답은 없다. 정확히는 모른다.

개발자 뽑히면? 그때 휴가 갈 수 있다. 근데 언제 뽑힐지 모른다. 6개월째 못 뽑고 있다.

서비스가 안정화되면? 언제 안정화될까. 기능은 계속 추가된다. 유저는 계속 늘어난다. 장애는 계속 터진다.

회사가 커지면? 시리즈 A 투자 받으면 개발팀 꾸릴 수 있다. 근데 투자는 언제? 모른다.

현실적으로 생각해보자