개발 일정이 밀렸을 때, 나는 코더가 된다

개발 일정이 밀렸을 때, 나는 코더가 된다

개발 일정이 밀렸을 때, 나는 코더가 된다

목요일 오후 4시, 슬랙 알림

“창업님, 이번 주 배포 어려울 것 같습니다.”

심장이 멈췄다.

클라이언트한테는 이미 말했다. 이번 주 금요일 배포한다고. 데모 일정도 잡혔다. 월요일 오전 10시.

“어느 정도 밀릴 것 같아요?”

“최소 3일은요. API 연동에서 예상 못 한 이슈가…”

3일이면 월요일이다. 데모 당일 아침에 배포한다는 소리다. 미친 짓이다.

하지만 연기는 불가능하다. 이 클라이언트가 우리 분기 목표의 40%다. 이게 무산되면 투자 미팅에서 할 말이 없다.

“알았어요. 제가 도울게요.”

개발팀장 민수가 당황한다.

“아니, 창업님이 직접요?”

“네. 어차피 전 PM 출신이잖아요.”

거짓말이다. 도울 수 있어서가 아니다. 도와야만 해서다.

5년 만에 다시 연 IDE

마지막으로 코드 짠 게 언제였나. 네이버 퇴사하기 직전이니까 3년 전쯤?

IDE 열었다. VS Code. 익숙하면서도 낯설다.

Git 클론 받고 로컬 환경 세팅하는데 30분 걸렸다. 옛날엔 10분이면 했는데.

민수가 브랜치 따주고 태스크 할당해줬다.

“이 부분 API 응답값 파싱하는 로직이요. 단순 작업인데 손이 부족해서…”

단순 작업. 고맙다. 그래도 나한테 할 수 있는 걸 준 거다.

오후 6시. 팀원들 퇴근 시작한다.

“창업님 먼저 들어가세요.”

“아니, 나 좀 더 있을게.”

“그럼 저희도…”

“아니야. 너희는 내일 아침 일찍 와. 새벽에 내가 푸시 올려놓을게.”

거짓말 반이다. 새벽에 올릴 수 있을지 모르겠다. 하지만 팀원들까지 야근시킬 순 없다.

월급은 내가 주는데, 야근은 같이 하면 뭔가 미안하다.

밤 11시, 디버깅 지옥

에러가 안 잡힌다.

API는 200을 뱉는다. 근데 프론트에서 undefined가 뜬다. 뭐가 문제인가.

콘솔 찍어봤다. 네트워크 탭 열어봤다. 데이터는 온다. 근데 파싱이 안 된다.

30분 째 같은 코드만 본다.

const data = response.data.results

뭐가 문제야. results는 배열이다. 분명히.

그런데.

console.log(typeof response.data.results)
// undefined

아.

results가 아니라 result였다. 끝에 s가 없었다.

API 문서를 잘못 봤다. 30분을 날렸다.

예전엔 이런 실수 안 했는데. 감이 무뎌졌다.

대표 하면서 코드 안 짜니까, 이제 junior 개발자만도 못하다.

자괴감이 온다.

새벽 2시, 푸시 완료

git push origin feature/api-parsing-fix

떨리는 손으로 슬랙에 메시지 남긴다.

“민수님, 푸시 올렸습니다. 내일 아침에 확인 부탁드려요.”

읽음 표시는 안 뜬다. 당연하다. 자고 있을 시간이다.

사무실을 나선다. 성수역은 텅 비었다.

택시를 탄다. 기사님이 말을 건다.

“야근하셨어요?”

“네.”

“요즘 회사들이 왜 이렇게 직원을 갈아요.”

대답을 못 했다. 나는 직원이 아니라 대표라서.

그리고 아무도 날 갈지 않았다. 내가 스스로 간 거다.

금요일 오후 3시, 배포 완료

“배포 성공했습니다.”

민수의 메시지에 안도한다.

클라이언트한테 연락한다.

“금요일 배포 완료했습니다. 월요일 데모 문제없습니다.”

“고생하셨습니다. 그럼 월요일에 뵙죠.”

끊고 나니 허무하다.

내가 짠 코드는 전체의 5%도 안 된다. 그것도 단순 작업이었다.

그런데 왜 이렇게 지쳐있나.

대표가 코딩하는 이유

팀원들은 모른다.

내가 목요일 밤에 코딩한 걸.

민수만 안다. 커밋 로그에 남아있으니까.

그런데 민수는 아무 말 안 한다. 그냥 “확인했습니다” 한 줄만 보냈다.

고맙다. 괜히 부담 주고 싶지 않았다.

대표가 왜 코딩을 하나.

개발팀장이 있는데. 개발자가 4명이나 있는데.

이유는 간단하다.

책임이 내 거니까.

클라이언트한테 약속한 건 나다. 투자자한테 보고할 것도 나다. 직원들 월급 주는 것도 나다.

일정이 밀리면, 손해는 회사가 본다. 그 회사는 내 거다.

그러니까 내가 움직인다.

할 수 있는 게 있으면 한다. 없어도 만든다.

코딩이든, 디자인이든, 영업이든.

잘하지 못해도

코드는 형편없었다.

변수명도 일관성 없고, 주석도 없고, 리팩토링 여지 많고.

민수가 다음날 내 코드 고쳤을 거다. 분명히.

그래도 괜찮다.

내 코드가 좋아서 한 게 아니니까.

일정을 맞추려고 한 거니까.

팀원들한테 “대표도 같이 고생한다”는 걸 보여주려고 한 거니까.

PM 출신 대표라서 코딩 할 줄 안다고 자랑하려는 거 아니다.

그냥.

내가 할 수 있는 걸 해야 직성이 풀린다.

안 하고 기다리는 게 더 힘들다.

다음 주 또 밀리면

이번 주도 일정 빡빡하다.

또 밀릴 수도 있다.

그럼 또 코딩할 거다.

새벽에 사무실 나와서, 민수가 준 태스크 할 거다.

팀원들은 또 모를 거다.

그게 더 편하다. 괜히 미안해하니까.

대표가 코딩하면 이상하다고 생각할 수도 있다.

“대표는 비전 제시하고, 투자 받고, 전략 짜는 게 일 아닌가요?”

맞다.

근데 그건 회사가 잘 돌아갈 때 얘기다.

지금은 아니다.

지금은 일정 지키는 게 전략이다.

클라이언트 놓치지 않는 게 비전이다.

그러니까 코딩한다.


월요일 데모는 성공했다. 계약 이어진다. 다행이다. 민수한테 커피 쿠폰 보냈다. 고맙다고. 그는 ”?” 만 보냈다. 괜찮다. 알 필요 없다.