Showing Posts From

출근

밤 11시 출근, 새벽 4시 장애 알림: 나는 왜 이 회사를 못 떠나는가

밤 11시 출근, 새벽 4시 장애 알림: 나는 왜 이 회사를 못 떠나는가

밤 11시 출근, 새벽 4시 장애 알림: 나는 왜 이 회사를 못 떠나는가 새벽 4시의 손가락 슬랙 알림음이 울린다. 그 소리를 들은 지 벌써 2년째다. 처음엔 한 번 깬다. 일어난다. 노트북을 켠다. 이제는 그 과정이 생략된다. 알림음이 울리는 순간 손가락이 이미 키보드를 두드리고 있다. 뇌는 아직 자고 있는데 손은 docker ps 명령어를 입력한다. 몸이 먼저 움직인다. 반사다. 조건 반사. "서버 에러율 60% 이상입니다." 문자가 온다. 대표님은 안 자고 있나? 날짜를 확인한다. 목요일 새벽 4시 17분. 내가 새벽 2시에 배포한 버전 때문일 거다. 자꾸만 그렇다. 로그를 확인한다. 20줄 읽다가 문제를 찾는다. 쿼리 타임아웃. 또 PostgreSQL이다. 어제 마이그레이션한 테이블에 인덱스를 안 깔았다. 내가 깔았어야 했다. 하지만 배포 시간이 없었다. 그래서 날림으로 올렸다. 이 과정을 매주 반복한다. 롤백한다. 15초 걸린다. 에러율이 떨어진다. 슬랙에 Rolled back to v2.4.8이라고 쓴다. 대표님이 바로 답한다. "고마. 원인 찾아봐." 알겠다고 한다. 하지만 알겠다는 게 뭔지 모르겠다. 내가 뭘 찾아야 하는 건지 모른다는 뜻이고, 그것도 알아야 할 나의 책임이라는 뜻이다. 침대로 돌아간다. 시간은 4시 47분. 6시에 일어나야 한다. 아니, 4시 47분에 눈을 감았으니 6시에 또 일어나면 1시간 13분을 자는 건가. 계산하다가 잠든다.11시 출근의 미학 "오늘 안에 좀 돼?" "네, 제가 봐볼게요." 항상 이 대사다. 대표님이 기획서도 없이 요청한다. '오늘 안에'는 사실 '지금 당장' 이라는 뜻이다. 그리고 '제가 봐볼게요'는 '제가 다 하겠습니다'라는 뜻이다. 10시에 일어난다. 샤워한다. 밥을 먹을 시간이 없다. 회사에서 먹자고 생각한다. 회사에 가면 먹을 시간이 없다. 매번 이 사이클이다. 11시 5분, 책상에 앉는다. 슬랙을 열어본다. 밤에 온 메시지 정리. 기획팀(2명)이 각각 2번, 3번 씩 요청했다. 영업팀(3명)도 고객 피드백을 전달했다. 개발자는 나 하나다. 그들은 그것을 알고 있다. 하지만 요청은 멈추지 않는다. 우선순위를 정한다. 세 번째로 온 요청부터 한다. 왜냐하면 첫 번째 요청자가 먼저 물어볼 가능성이 높으니까. 시간을 벌기 위해 순서를 바꾼다. 11시 15분, 코드를 본다. '이거 간단하죠?'라고 했던 기능은 간단하지 않다. 간단한 기능이란 세상에 없다. 있는 건 '당신이 이미 알고 있는 기능'과 '당신이 모르는 기능'뿐이다. 대표님은 내가 알아야 할 것들만 남겨놓고 간다. React 컴포넌트를 수정한다. 버튼 하나 추가. 텍스트 색 변경. 간단한 일이다. 근데 그 버튼은 데이터베이스에서 정보를 받아와야 한다. 그럼 API를 수정해야 한다. API를 수정하려면 데이터 구조를 봐야 한다. 데이터 구조가 복잡하다. 이미 꼬여 있다. 내가 3개월 전에 해놓은 구조다. 그때는 왜 이렇게 만들었는지 모르겠다. 주석을 찾아본다. 주석이 없다. 왜냐하면 내가 주석을 쓸 시간이 없었기 때문이다. 두 시간 반을 쓴다. 완료했다고 슬랙에 쓴다. "확인해봤어. 좋아. 이거 배포해도 돼?" "네 바로 배포할게요." 배포한다. 1분 걸린다. 배포하는 동안 두 번째 요청을 본다. 이거는 더 복잡하다. 백엔드를 수정해야 하고, 프론트도 수정해야 한다. Node.js와 React를 왔다갔다해야 한다. 점심시간이다. 혼자 밥을 먹는다. AWS 콘솔을 본다. 이 달 요금이 지난 달보다 30% 올랐다. 왜일까. 뭘 낭비했을까. 로그를 확인한다. 누군가 S3 버킷에 동영상을 4TB 올렸다. 우리 서비스에 영상 기능이 없다. 왜 4TB가 있는 거야. 기획팀에 물어본다. "어? 그거 테스트하다가 지운 줄 알았는데?" 테스트가 뭔지 모르겠다. 그냥 지워버린다. 이달은 못 돌릴 거고, 다음달부터 줄겠지.휴가를 계획한 적이 없다 휴가라는 단어는 이 회사에서 금지어다. 나뿐 아니라. 대표님도 안 간다. 직원 12명인데 누구도 길게 휴가를 못 본다. 1박 2일이 최대다. 그것도 긴장 풀린 상태에서. 이전 직장에선 여름에 1주일 휴가를 갔다. 회사에서 강제했다. 잠금 장치처럼. 깔끔했다. 여기서 휴가는 다르다. 지난 달 추석. 3일을 쉬고 싶었다. 9월 25일부터 27일까지. 미리 말했다. 8월에. "추석 안 나와도 되나?" "그럼... 누가 서버를 봐?" 12명이 있다. 그중 개발자는 나뿐이다. 그래서 나의 휴가는 항상 조건부다. "혹시 모르니까 폰은 켜놔. 뭐 있으면 한 번씩만 봐줘." 그렇게 추석 연휴를 보냈다. 25일: 실시간 쿼리 에러. 1시간에 한 번씩 확인. 고칠 수 없다. 일단 알았다고만 하고 26일에 한다고 했다. 26일: 아침 8시에 데이터베이스 마이그레이션 시작. 오후 5시에 끝. 명절 음식을 못 먹었다. 냉장고에 남겨진 음식을 야식으로 먹었다. 27일: 괜찮았다. 아무도 안 건드렸다. 대신 불안했다. 조용하면 더 불안하다. 뭔가 잘못됐을 가능성이 높으니까. 28일: 출근해서 로그를 본다. 25일에 에러가 20만 건 쌓였다. 근데 아무도 안 알려줬다. 슬랙에서 기다리고 있었단 거다. 내가 연휴를 끝내고 들어올 때까지. 휴가 신청은 이제 안 한다. 책상에 계속 앉는다. 그게 낫다. 내 몸은 내 것이 아니다 건강검진을 받았다. 회사 규정상 1년에 한 번. 이번 회차 검사 결과가 나왔다. 혈압: 높음 수면 패턴: 불규칙 스트레스 수치: 최상 의사가 물었다. "스트레스 관리를 하세요?" "네, 해봅니다." 뭘 해봤다는 건지 모르겠다. 에너지 드링크를 덜 마신다? 한 다섯 잔 덜 마신다. 원래 하루 2캔인데. 요즘은... 다시 2캔이다. 수면 시간. 어제는 3시간 45분. 그 전날은 2시간. 그 전전날은 5시간인데 새벽 4시 이후라서 숫자 의미 없다. "최소 6시간은 주무세요." 알겠다고 했다. 할 수 없을 줄 알면서. 밤 11시. 11시 30분. 밤 12시에 잤다고 해서 아침 6시에 일어나면 6시간이다. 하지만 밤 12시에는 못 잔다. 점검을 해야 한다. 배포를 해야 한다. 커밋 메시지를 정리해야 한다. 그래서 새벽 1시에 잔다. 6시간을 자려면 새벽 1시에 자서 아침 7시에 일어나야 한다. 하지만 아침 7시에 일어나도 11시에 출근하지 않는다. 10시 55분에 출근한다. 그 사이에 뭐하는 건지 모르겠다. 시간이 증발한다. 몸이 말을 듣지 않는다. 새벽 3시쯤에 한 번 깬다. 슬랙을 본다. 아무것도 없다. 다시 자려고 하는데 못 잔다. 뭔가 잘못될 수 있다는 생각이 든다. 노트북을 켠다. 코드를 본다. 버그 같은 게 있을까봐. 없다. 그래도 마음이 놓이지 않는다.왜 못 떠나는가 면접이 있다. 10시간 차이 나는 시간대의 회사. 연봉도 40% 올려준다고 했다. 근데 내가 가면 여기 서비스가 터질 것 같다. 터질 리가 있나. 우리 사용자는 5만 명이다. 누군가는 와서 대체할 거다. 누군가는. 근데 6개월을 뽑지 못했다. 왜일까. 연봉이 낮아서? 아니다. 성과급 때문에 연봉 인상이 안 된다고 들었다. 그럼 회사 돈이 없다는 뜻이다. 그럼 내가 떠나면 누가 와? 그리고 대체 누가? 내가 여기서 하는 일들을 정리해본다.프론트엔드 개발 및 유지보수 백엔드 개발 및 운영 데이터베이스 설계 및 마이그레이션 AWS 인프라 관리 배포 및 모니터링 긴급 장애 처리 기술 채용 면접 (하지만 시간이 없음) 개발팀 리드 (팀이 나뿐) 신입 온보딩 (신입이 없음)한 사람이 열 가지를 한다. 이걸 두 명이 한다는 보장도 없다. 세 명이 나눠야 정상이다. 근데 세 명을 뽑을 돈이 없다. 그럼 계속 내가 한다. 대표님이 밥을 사줄 때도 있다. 그럼 일 얘기를 한다. "너 아직 버티고 있네. 고마워." "네." "이 정도면 잘 하고 있는 거야. 나도 알아. 힘들겠지." "괜찮습니다." 뭐가 괜찮은지 모르겠다. 하지만 그 말이 마음에 남는다. 이 사람이 알아준다. 내가 뭘 하는지. 다른 회사에서는 이렇게 못할 거다. 수십 명이 있는 회사에선 내가 투명인간이 될 거다. 여기선 내가 필요하다. 내가 없으면 회사가 안 돈다. 근데 그게 이유가 되나. 이직 제의를 받았을 때 나 말고 누군가에게 물었다. 전직 동기들에게. '그냥 가면 안 되나?'라고. "너 아직도 책임감 갖고 있네." 그 동기는 이미 3번을 이직했다고 했다. 매번 '이 회사가 망할까봐'라고 생각했단다. 어디든. 근데 다 멀쩡히 돈다고 했다. "회사는 하나의 생명체야. 너 하나 없어도 돈다. 다만 회사 주인이 다시 고민해야 할 뿐." 그 말이 맞는 것 같은데도 가슴이 철렁한다. 손가락은 여전히 움직인다 지금도 슬랙 알림음에 귀가 쫑긋하다. 밤 11시 30분. 키보드를 두드린다. 커밋 메시지를 정리한다. 주석을 추가한다. 버전을 업그레이드한다. 이 모든 게 배포 전 세팅이다. 미드나잇을 넘긴다. 새벽 1시. 배포한다. 테스트한다. 에러가 없다. 좋다. 오늘은 괜찮겠다. 침대로 간다. 새벽 4시 17분. 알림음. 손이 움직인다.내일은 면접을 안 가기로 했다.