Showing Posts From

온콜

전 직장 동기: '너 아직 거기야?' 그 한 마디

전 직장 동기: '너 아직 거기야?' 그 한 마디

카톡이 왔다 전 직장 동기 단톡방에 메시지가 떴다. "다들 연말 회식 언제야? 우리 것도 12월 20일로 잡혔는데" 누군가 답했다. "우리는 15일. 팀장님이 예약하셨대." 팀장. 그 단어가 눈에 들어왔다. 나는 에너지 드링크를 마시며 터미널을 봤다. 빌드 에러. 또. "민준아, 너는?" 이름이 호명됐다. 3초 고민했다. "우리는 아직. 12명이라 언제든지 가능할 듯ㅋ" ㅋ을 붙였다. 안 웃긴데.3년 전 우리는 같았다 신입 동기 5명. 모두 같은 SI 회사 입사. 우리는 똑같이 야근했다. 똑같이 불만 있었다. 똑같이 "여기서 배우고 나가자"고 했다. 2년 차 되자 하나둘 떠났다. 재훈이는 네이버. "이제 좀 숨통 트인다." 수진이는 카카오. "복지 미쳤어. 진짜." 동욱이는 삼성전자. "연봉이... 어, 많이 올랐어." 나도 이력서 넣었다. 면접도 몇 개 봤다. 근데 스타트업 대표가 연락 왔다. "민준씨 포트폴리오 봤는데, 우리 초기 멤버로 어때요?" 스톡옵션 0.5%. "상장하면 억 단위예요." 그때는 믿었다. 진짜로. 지금 그들은 재훈이 인스타 스토리. 팀 회식 사진. "우리 팀 최고👍" 팀이 있다는 게 부러웠다. 수진이 링크드인 업데이트. "Promoted to Senior Engineer" 3년 만에 시니어. 나는 여전히 주니어도 시니어도 아닌 '개발자'. 동욱이는 결혼 준비 중이래. "연봉도 올랐고, 이제 좀 안정됐어." 안정. 그 단어가 낯설다. 나는? AWS 콘솔 보다가 비용 알림 받고 식겁했다. "이번 달 $2,300 넘었습니다." 대표님께 슬랙 보냈다. "AWS 비용 최적화 필요합니다." 답장. "급한가요? 일단 기능 개발 먼저..."너 아직 거기야 추석 때 만났다. 동기 5명 중 4명. 재훈이가 물었다. "민준아, 너 그 스타트업 아직 있어?" "응. 아직." "거기 몇 명이라고 했지?" "12명." "아직도 12명이야?" "...응." 침묵. 짧았지만 길었다. 수진이가 끼어들었다. "근데 거기 재밌잖아. 네가 다 만드는 거." 고마웠다. 근데 위로는 아니었다. 동욱이가 말했다. "우리 회사 개발자 채용 중인데, 관심 있으면..." "아, 괜찮아. 지금 프로젝트 마무리 중이라." 거짓말이었다. 프로젝트는 언제나 진행 중이다. 마무리는 없다. 집에 와서 맥주 마셨다. 혼자. '너 아직 거기야?' 그 말이 계속 맴돌았다. 아직. 그 단어가 칼처럼 박혔다. 우리는 다른 길을 간다 그들은 팀이 있다. 나는 혼자다. 그들은 온보딩 받은 신입을 가르친다. 나는 스택오버플로우가 선배다. 그들은 장애 나면 시스템팀 부른다. 나는 내가 시스템팀이다. 그들은 코드리뷰 받는다. 나는 머지 버튼 누를 때 스스로에게 묻는다. "이거 맞나?" 그들은 연차 쓴다. 나는 연차 써도 슬랙 확인한다. 그들은 퇴근한다. 나는 '오늘은 일찍'이 10시다. 다른 건 당연하다. 대기업이랑 스타트업은 다르니까. 근데 가끔 생각한다. '나는 뭘 얻고 있는 거지?'그래도 나한테 있는 것 전체 서비스 아키텍처를 안다. 다. 프론트 어디서 API 호출하는지. 백엔드 어떻게 처리하는지. DB 스키마 왜 이렇게 설계했는지. 모른다. 내가 설계했으니까. 장애 나면 10분 안에 원인 찾는다. 로그 어디 찍히는지 다 알아서. AWS 인프라 구조도 머릿속에 있다. CloudFormation 템플릿 내가 짰으니까. 배포 파이프라인도 내가 만들었다. CI/CD 전부. 이게 3년 치 경험이다. 대기업 동기들은? 레거시 코드 일부만 본다. 담당 모듈만. "전체 서비스 구조요? 저도 잘..." 팀장한테 물어보래. 나는? 물어볼 사람이 없다. 내가 다 안다. 어쩔 수 없이. 이게 강점이다. 분명히. 근데 왜 자신이 없지? 이력서를 열었다 새벽 2시. 배포 끝났다. 이력서 파일을 열었다. 1년 전 작성한 거. 경력기술서 쓰기 시작했다. "풀스택 개발자로서 서비스 전체를 담당..." 지웠다. 너무 포괄적이다. "React, Node.js, PostgreSQL, AWS..." 기술스택만 나열하면 뭐하나. "사용자 10만 명 규모 서비스 단독 개발 및 운영..." 이건 좀 괜찮다. 근데 증명할 수 있나? 대표님께 추천서 부탁하면? "지금은 안 돼요. 프로젝트 끝나고..." 동료 추천은? 동료가 없는데. 시니어 검증은? 시니어가 없는데. 이력서 창을 닫았다. 모니터에 슬랙 알림. 대표님. "민준씨, 내일 오전에 급한 기능 하나만..." "네. 확인했습니다." 이력서는 다음에. 단톡방 메시지 "민준아 요즘 어때?" 수진이가 물었다. "응 그냥. 바빠." "너 진짜 혼자 다 해? 아직도?" "ㅇㅇ 곧 개발자 뽑는대." 6개월째 같은 말. "너 이직 생각은?" "있긴 한데, 지금은..." "지금은?" "프로젝트 마무리해야 돼서." 또 같은 핑계. 재훈이가 끼어들었다. "야 근데 솔직히 너 그 회사 떠나면 서비스 터지는 거 아니야?" "...ㅋㅋ 그럴 수도." "그럼 연봉협상 제대로 해야지. 너 없으면 안 되는 거잖아." 해봤다. 작년에. "민준씨 지금 급여도 스타트업 치고 적지 않아요." 적다. 대기업 동기들 연봉 들으면. "나중에 상장하면..." 나중은 언제인데. 메시지 입력창에 커서만 깜빡였다. 지웠다. 보내지 않았다. 장애가 터졌다 토요일 오후 3시. 친구들이랑 약속 있었다. 슬랙 알림 20개. 전화 5통. "서비스 안 돼요!" "결제 오류 나요!" "DB 연결 끊겼어요!" 옷 입다 말고 노트북 켰다. 로그 확인. DB 커넥션 풀 초과. 쿼리 하나가 테이블 전체를 스캔하고 있었다. 누가 배포했지? 나다. 어제 새벽에. "30분이면 됩니다." 친구들한테 카톡. "미안 좀 늦을 것 같아." 1시간 걸렸다. 쿼리 수정, 배포, 모니터링. 도착했을 때 다들 식사 끝나고 있었다. "야 미안. 장애가..." "괜찮아. 근데 너 진짜 힘들겠다." 힘든 게 아니다. 익숙한 거다. 더 무섭다. 이게 성장인가 대표님이 말했다. "민준씨 정말 많이 성장했어요." 뭐가 성장했지? 기술스택은 늘었다. React, Vue, Svelte 다 해봤다. 필요하니까. AWS 서비스도 20개 넘게 만져봤다. 비용 줄이려고. 모니터링 시스템도 구축했다. 장애 빨리 찾으려고. CI/CD 파이프라인도 3번 갈아엎었다. 배포 시간 줄이려고. 근데 이게 성장인가? 아니면 생존인가? 대기업 동기들은 '이번 분기 OKR'을 얘기한다. 나는 '오늘 할 일'도 못 끝낸다. 그들은 '커리어 패스'를 고민한다. 나는 '내일 출근'을 고민한다. 성장과 생존의 경계가 흐릿하다. 링크드인을 켰다 채용 공고가 떴다. "시니어 백엔드 개발자 모집 - 네이버" 자격요건 봤다. "5년 이상 경력..." 나는 3년. 탈락. 근데 실무 경험은? 혼자 다 했는데? "대규모 트래픽 처리 경험..." 우리 서비스 DAU 5만. 대규모는 아니다. "MSA 아키텍처 설계 및 운영..." 모놀리식이다. 쪼갤 인력이 없어서. "코드리뷰 및 주니어 멘토링..." 코드리뷰 받아본 적도 없는데 어떻게 하나. 창 닫았다. 내 경험은 독특하다. 깊이는 있는데 폭이 좁다. 아니, 폭은 넓은데 검증이 없다. 시장이 원하는 건 '검증된 전문성'. 나한테 있는 건 '검증 안 된 올라운더'. 그래도 못 떠난다 이력서 넣을까. 진지하게 고민했다. 근데 머릿속에 떠오르는 것들. 결제 모듈. 내가 짰다. 나만 안다. 배포 스크립트. 주석도 없다. 나만 돌릴 수 있다. DB 마이그레이션. 순서 틀리면 터진다. 나만 순서 안다. 모니터링 대시보드. 알람 기준 내가 정했다. 내가 떠나면? 서비스 터진다. 100%. 대표님이 새 개발자 뽑으면? 인수인계 3개월 걸린다. 최소. 그 사이에 장애 나면? 대표님이 고친다고? 불가능. 책임감? 아니다. 죄책감이다. 여기까지 만든 게 나니까. 무너지는 거 보기 싫어서. 그게 날 붙잡는다. 동기 모임에서 연말 모임. 4명 모였다. 재훈이가 말했다. "나 내년에 팀장 달 것 같아." "오 축하해." 수진이도. "나도 승진 심사 들어갔어." "대박." 동욱이는. "우리 팀 신입이 두 명 들어와. 가르치느라 바빠." "좋겠다." 내 차례. "민준이 너는?" "나? 음..." 뭐라고 하지. "연봉 조금 올랐어." 200만원. 4800에서 5000. "그래도 혼자 하는 거 힘들지 않아?" "힘들긴 한데... 뭐." 말을 흐렸다. "근데 거기 상장은 언제 해?" "...모르겠어. 대표님은 내년에 시리즈B 받는다는데." 작년에도 들었던 말. "민준아." 재훈이가 진지하게 말했다. "너 거기서 배울 건 다 배운 것 같은데." 배울 건 다 배웠나? 아니다. 아직 모르는 게 많다. 근데 배울 '사람'이 없다. 새벽 3시의 생각 배포 끝났다. 모니터링 확인. 정상. 침대에 누웠다. 천장을 봤다. '나는 잘하고 있는 걸까?' 3년. 길다면 길고 짧다면 짧다. 동기들은 조직 안에서 성장했다. 나는 혼자서 버텼다. 누가 더 나은가? 모르겠다. 확실한 건. 그들은 '우리 팀'이라고 말한다. 나는 '우리 회사'라고 말한다. 근데 속으론 '내 서비스'라고 생각한다. 이게 자부심인가, 집착인가. 경계가 없다. 눈 감았다. 슬랙 알림 소리가 환청처럼 들렸다. 없는데도. 내일도 출근한다 알람. 10시. 일어났다. 샤워하고 커피 내렸다. 노트북 켰다. 슬랙 확인. 대표님 메시지. "민준씨 오늘 회의 있어요. 11시." "네." 터미널 열었다. git pull 쳤다. 어제 내가 푸시한 코드. 나만 본다. 이게 일상이다. '너 아직 거기야?' 아직. 아직이다. 언제까지? 모른다. 떠날 수 있나? 아마도. 떠날 건가? ...모르겠다. 에너지 드링크 캔 땄다. 오늘도 시작이다. 혼자서.여전히 원맨밴드다. 근데 이 곡은 나만 연주할 수 있다. 그게 자랑인지 한계인지, 아직 모르겠다.

코드리뷰가 없으면 생기는 일: 내 코드가 정말 맞나?

코드리뷰가 없으면 생기는 일: 내 코드가 정말 맞나?

코드리뷰가 없으면 생기는 일: 내 코드가 정말 맞나? 아무도 내 코드를 안 본다 회사에 개발자가 나 혼자다. 대표는 "풀스택이시니까"라고 했지만, 실제론 온스택이다. 프론트, 백엔드, DB, 인프라, 디자인 피드백까지. 코드리뷰? 없다. 내가 짠 코드는 내가 보고, 내가 머지하고, 내가 배포한다. PR 올리면 자동으로 머지되는 설정. 누가 볼 사람이 없으니까. 처음엔 자유로웠다. "이렇게 짜도 아무도 뭐라 안 하네?" 근데 6개월 지나니까 불안하다. 이게 맞나? 정말로?3개월 전 내 코드가 이해 안 됨 어제 버그 수정하려고 3개월 전 코드 봤다. 뭔 생각으로 이렇게 짰지? const processData = (d) => { const r = d.map(x => x.value) const f = r.filter(y => y > 0) return f.reduce((a, b) => a + b, 0) }변수명이 d, r, f, a, b다. 주석은 없다. 함수명은 processData. 뭘 process하는지 모른다. 그때는 급했다. 대표가 "오늘 중으로"라고 했다. 일단 돌아가게 짜고 배포했다. 리팩토링은 나중에 하려고 했는데, 나중은 안 왔다. 코드리뷰가 있었다면? "이거 변수명 좀 명확하게 바꾸면 안 될까요?" 한 마디면 됐다. 근데 그 한 마디 해줄 사람이 없다. 지금은 30분 걸려서 이해했다. 원래 5분이면 될 코드를. 혼자 짠 코드를 혼자 해석하는데 30분. 보안은 구글링이 전부 지난주에 JWT 구현했다. 검색해서 코드 복사하고, 약간 수정하고, 테스트하고, 배포했다. 작동한다. 로그인되고, 토큰 발급되고, 인증된다. 끝? 아니다. 며칠 뒤에 우연히 다른 글 보다가 알았다. 내 코드는 refresh token이 없다. 만료 시간도 24시간이다. 보안 헤더 설정도 빠졌다. 당장 서비스가 터지진 않는다. 근데 제대로 된 건 아니다. 그리고 나는 그걸 며칠 동안 몰랐다. 코드리뷰가 있었다면? "refresh token 구현 안 하셨네요?" "만료 시간 24시간은 좀 긴 것 같은데요?" 이런 피드백 받았을 거다. 지금은? 구글링으로 배운다. 스택오버플로우, 미디엄 글, GPT. 근데 이것도 맞는지 확인해줄 사람이 없다. 그냥 믿고 쓴다.성능 최적화는 터지고 나서 서비스 느려졌다. 페이지 로딩이 3초 넘게 걸린다. 대표한테 컴플레인 들어왔다. 원인 찾는데 반나절 걸렸다. DB 쿼리였다. N+1 문제. 반복문 안에서 쿼리 100번 날리고 있었다. for (let user of users) { const posts = await db.query('SELECT * FROM posts WHERE user_id = ?', [user.id]) user.posts = posts }이거 배포한 지 2달 됐다. 유저 적을 땐 괜찮았다. 지금은 유저 500명이다. 느리다. JOIN으로 한 방에 가져오면 됐다. 근데 나는 2달 동안 몰랐다. 코드리뷰가 있었다면? "이거 N+1 아닌가요?" 배포 전에 잡았을 거다. 근데 없었다. 그래서 2달 동안 느린 서비스 운영했다. 최적화는 항상 터지고 나서 한다. 미리 못 잡는다. 혼자니까. 컨벤션은 내 기분 어제는 camelCase 썼다. 오늘은 snake_case 쓴다. 함수명도 일관성 없다. getUserData, fetch_user, loadUserInfo. 다 같은 기능이다. eslint 설정? 했다. 근데 급하면 // eslint-disable-line 박는다. 고칠 시간 없으니까. 코드 스타일 가이드? 없다. 내가 만들까 생각은 했다. 근데 나 혼자 지킬 가이드를 왜 만들지? 결과는 코드베이스가 난장판이다. 파일마다 스타일이 다르다. 내가 쓴 코드인데 통일성이 없다. 코드리뷰가 있으면? "컨벤션 맞춰주세요" 한 마디면 된다. 그럼 고친다. 근데 그 한 마디가 없으니까 계속 제멋대로 쓴다.틀린 줄도 모르고 배포 지난달에 결제 로직 짰다. 테스트했다. 잘 됐다. 배포했다. 일주일 뒤에 CS 들어왔다. "결제는 됐는데 포인트가 안 쌓여요." 코드 봤다. 로직 순서가 틀렸다. 결제 완료 후에 포인트 적립해야 하는데, 결제 전에 체크하고 있었다. 그래서 실패하면 포인트가 안 쌓였다. 버그다. 명백한 버그. 근데 나는 일주일 동안 몰랐다. 테스트할 때는 성공 케이스만 봤으니까. 코드리뷰가 있었으면? "실패 케이스는 어떻게 처리하나요?" 물어봤을 거다. 그럼 고쳤다. 배포 전에. 지금은? 버그 터지고 나서 안다. CS 들어오고 나서 고친다. 그 전까지는 모른다. 기술 부채는 계속 쌓임 리팩토링 해야 할 코드 리스트가 notion에 20개 있다. 3개월 전부터 있다. 하나도 안 건드렸다. 왜? 시간이 없어서. 항상 급한 게 먼저다. 신규 기능, 버그 수정, 장애 대응. 리팩토링은 우선순위가 제일 낮다. 근데 코드는 점점 복잡해진다. 임시방편 코드가 쌓인다. "나중에 고쳐야지" 주석이 10개 넘는다. 코드리뷰가 있으면? "이거 지금 고치는 게 나중에 편할 것 같은데요?" 누가 말해준다. 그럼 우선순위가 올라간다. 혼자면? 내가 판단한다. 그리고 항상 미룬다. 급한 게 먼저니까. 그래서 기술 부채만 쌓인다. 6개월 전 코드베이스보다 지금이 더 복잡하다. 기능은 많아졌는데 품질은 떨어졌다. 혼자라서 막을 수가 없다. 배울 기회가 없음 전 직장에선 시니어가 코드리뷰 해줬다. "이렇게 짜면 메모리 누수 생겨요." "이 라이브러리 쓰면 더 간단해요." 배웠다. 지금은? 배울 사람이 없다. 구글링으로 배운다. GPT한테 물어본다. 근데 이게 실무에서 맞는 방법인지 모른다. 예를 들어 상태관리. Redux 쓸까, Zustand 쓸까, Context API로 충분할까? 모른다. 그냥 내가 아는 거 쓴다. 근데 이게 최선인지는 모른다. 코드리뷰가 있으면 배운다. "이 경우엔 이게 더 나아요" 실무 경험이 쌓인 사람이 알려준다. 혼자면? 시행착오로 배운다. 틀려봐야 안다. 효율이 떨어진다. 3년 차인데 실력은 2년 차 같다. 성장이 더디다. 혼자라서. 책임은 오롯이 혼자 장애 터지면? 내 책임이다. 버그 나면? 내 책임이다. 느리면? 내 책임이다. 코드리뷰가 있었다면? 책임이 나뉜다. "이 부분은 제가 못 봤네요" 리뷰어도 일부 책임진다. 혼자면? 전부 내 책임이다. 내가 짜고, 내가 리뷰하고, 내가 배포했다. 틀리면 내 잘못이다. 심리적 압박이 크다. 배포할 때마다 불안하다. "이거 괜찮나?" 확신이 없다. 근데 배포해야 한다. 일정이 있으니까. 그래서 주말에도 모니터링 본다. 슬랙 알림 켜놓는다. 장애 나면 내가 고쳐야 하니까. 도와줄 사람이 없으니까. 휴가도 못 간다. 작년에 3박 4일 갔다가 2일 차에 장애 알림 와서 노트북 열었다. 해결하는데 4시간 걸렸다. 휴가가 아니었다. 그래도 돌아가긴 함 이렇게 써놓고 보니 암울하다. 근데 서비스는 돌아간다. 유저도 늘고 있다. 매출도 난다. 코드가 완벽하지 않아도 비즈니스는 굴러간다. 버그 있어도 고치면 된다. 느려도 최적화하면 된다. 완벽한 코드보다 빠른 실행이 중요할 때가 있다. 스타트업이 그렇다. 일단 만들어야 한다. 근데 불안하다. 내 코드가 정말 맞나? 더 나은 방법이 있는 거 아닌가? 확인할 방법이 없다. 코드리뷰는 완벽을 위한 게 아니다. 확신을 위한 거다. "이 정도면 괜찮아" 누군가 말해주는 거. 혼자서는 그 확신이 없다. 채용 공고는 6개월째 회사는 개발자 뽑으려고 한다. 채용 공고 올렸다. 6개월 됐다. 지원자는 3명 왔다. 면접 봤다. 안 뽑았다. 왜? 연봉이 낮아서. 우리는 4500 제시했다. 지원자는 6000 원했다. 안 맞았다. 대표는 "조금만 더 버텨줘요" 한다. 근데 조금이 6개월이다. 언제까지 버텨야 하나? 다음 개발자 오면? 코드리뷰 해줄 수 있다. 서로 봐줄 수 있다. 책임도 나눌 수 있다. 휴가도 갈 수 있다. 근데 안 온다. 그래서 계속 혼자다. 이직은 고민 중 요즘 이직 생각 많이 한다. 중견 기업이나 좀 큰 스타트업. 개발팀이 있는 곳. 코드리뷰 받고 싶다. 시니어한테 배우고 싶다. 혼자 떠안지 않고 싶다. 근데 망설여진다. 내가 떠나면 이 서비스는? 대표는? 유저들은? 책임감이 발목을 잡는다. 그리고 불안하다. 밖에 나가면 내 실력이 얼마나 되나? 3년 차인데 2년 차 실력이면? 떨어지면 어쩌지? 코드리뷰 없이 3년 일했다. 내 코드가 시장에서 통할까? 확신이 없다. 이력서는 썼다. 아직 안 넣었다. 조금만 더 버티면? 개발자 오면? 그러다 또 6개월 간다.코드리뷰는 사치가 아니다. 혼자라서 느낀다. 더 나은 코드보다, 확신이 필요하다. "이거 맞아" 한 마디가.

스톡옵션 0.5%, 의미가 있을까? 1년 차 온콜 개발자의 현실

스톡옵션 0.5%, 의미가 있을까? 1년 차 온콜 개발자의 현실

스톡옵션 0.5%, 의미가 있을까? 1년 차 온콜 개발자의 현실 연봉 계산기 켜놨다가 다시 끈다 4800만원. 월급 400만원. 월급통장에 떨어진 숫자는 400만이다. 세금 떼지만 일단 그게 맨손으로 만질 수 있는 돈이다. 스톡옵션은 뭐가 떨어지나. 아무것도 떨어지지 않는다. 계약서에 적혀 있었다. 0.5%. 회사가 성공하면 언젠가 현금이 될 수도 있는 종이다. IPO나 인수합병 때. 근데 "언젠가"는 언제인가. 대표님은 회의할 때 자주 말한다. "2년 안에 시리즈 B 라운드 목표예요." 그걸 들을 때마다 생각한다. 정말? 이 회사가? 현재 직원 12명. 개발자는 나 혼자. 기획자 2명. 디자이너 1명. 나머지는 영업이랑 CS. 이게 2년 안에 유니콘이 될 것 같은가. 상관없다. 어쨌든 그 "언젠가"를 기약으로 버틴다.0.5%가 뭔데 스톡옵션 계산기를 켜본다. 인터넷 검색. "스톡옵션 계산 방법". 회사 밸류에이션이 필요하다. 지금 우리 회사 밸류에이션이 뭐라고 생각하나. "글쎄요... 100억? 150억?" 대표님이 그런다. 투자유치 설명회 때 얘기하는 숫자다. 정확하지 않다. 투자자한테 어떻게 말하냐에 따라 달라진다. 0.5% × 150억 = 750만원. 750만원을 기다리고 있다. 언제. 상장까지 몇 년? 3년? 5년? 10년? 그동안 월급 400만원으로 산다. 서울 월세 80만원. 통신비. 식비. 의류비 거의 없다. 옷은 회사 T셔츠다. 남는 게 뭐가 있나. 저축 월 150만원 정도? 스톡옵션이 현금이 되려면 기다려야 하니까 저축을 해야 한다. 자본금 없이 정말 "언젠가"만 바라본다. 친구들은 뭐하냐. 대기업은 기본급 5500만원에 보너스. 비상장 회사는? 스톡옵션 5% 받았다는 친구도 있다. 그 친구 회사는 작년에 시리즈 D 가서 밸류 2조 됐다. 5% × 2조 = 100억. 내가 받는 게 뭐냐고. 계산기를 다시 끈다. 기분 나빠진다. 급여 구조의 악마는 디테일에 있다 "정말 의미 있는 스톡옵션을 원한다면" 스타트업 인턴 출신 선배가 말했다. "최소 2%, 그것도 베스팅 기간 없는 거." 베스팅 기간. 우리 계약서에 뭐라고 되어 있나. 못 봤다. 진입할 때 읽지 않았다. 대표님이 "여기 뭔가 사인해주세요" 하면 사인했다. 계약서가 명확하지 않았다. 마지막 페이지 어딘가에 작은 글씨로 뭔가 있었던 것 같은데. HR이 없다. 인사팀이 없다. 이 회사에서 계약 관리는 회사 대표가 직접 한다. 지금도 한다. 베스팅 기간이 있다면. 4년. 그럼 내가 4년 동안 여기 있어야 내 스톡옵션이 온전히 내 것이 된다는 뜻이다. 지금 2년차 중간. 벌써 여기 있기 싫다. 베스팅 기간이 2년이라면. 아직 절반만 내 것이다. 0.5%의 절반. 0.25%. 아니면 아예 없을 수도 있다. 계약서를 확인한 적 없으니까. "제가 한 번 확인해볼게요." 나는 항상 이렇게 말한다. 확인한다. 이런 건 못 한다. 온콜 비용을 환산하면 밤 11시. 알람이 난다. 슬랙 알림음. "서비스 장애입니다. 즉시 조치 부탁드립니다." CS팀이 쓴 거다. 사용자가 신고했고 CS가 대표에게 보고하고 대표가 나한테 슬랙을 친다. 이 과정이 3분. 3분 안에 노트북을 켜야 한다. 장애 대응. 3시간 걸린다. 새벽 2시까지. 그날 밤은 잤나. 아니다. 자다가 또 알람 난다. 4시. 롤백한 서비스가 뭔가 이상하다. 재배포 필요. 자다가 깬다. 수면의 질이 떨어진다. 그게 월 4~5번 일어난다. 월급을 시간급으로 환산하면. 4800만원 = 월 400만원 = 월 160시간 일 = 시간급 25000원. 장애 대응할 때 시간급은 얼마인가. 새벽 2시다. 인력에이전시라면 새벽 시급은 기본 2배. 50000원? 100000원? 내 경우는 같은 4800만원에 온콜 24/7. 시간급으로 환산하면. 뭐지. 음... 계산이 복잡하다. 포기한다. 내가 번 돈 중 몇 %가 스톡옵션으로 가는가. 아니. 스톡옵션이 내가 버린 시간의 대가인가. 그렇다면 내가 버린 시간의 비용을 청구할 수 있나. 못 한다.밸류에이션이 오르는 건 맞는데 회사 밸류에이션이 올랐다는 소식은 들었다. 작년 시리즈 A. 50억 밸류. 올해 시리즈 A+. 100억 밸류 (그렇다고 대표가 말했다). 100억이라면. 0.5% × 100억 = 5000만원. 와. 5000만원이다. 그건 내 연봉과 같다. 만약 내년에 200억이 되면? 1억. 2년 뒤 500억? 2.5억. 그럼 진짜 의미가 있지 않나. 2.5억이면 집 낼드린다. 근데 그게 된다면. 그 기간 동안 내 건강은? 수면은? 개인 시간은? 내 나이는 30 전후다. 가장 왕성한 시기를 이 회사에서 쓰고 있다. 만약 실패한다면. 시리즈 A+에서 자금이 2년 안에 떨어진다면. 구조조정. 나 포함. 그럼 스톡옵션은 휴지다. "이 부분 리스크가 있지 않냐"고 대표에게 물을 수 있나. 못 한다. 팀이 나 혼자니까. 모두를 기대게 하는 수식 스타트업 생태계가 이 수식을 만들었다. 낮은 급여 + 높은 스톡옵션 = 기대. 희망. 인내심. "조금만 더 버티면"이 몇 년이 될 수 있다는 걸 고용주는 안다. "이 회사가 커지면 너는 부자가 돼"라는 말은 약이면서 독이다. 약일 때가 있다. 정말 회사가 크는 경우. 몇 명이 그렇게 됐다. 강남에 집 샀다는 얘기 들었다. 독일 때가 대부분이다. 회사 망했다. 스톡옵션 종이 조각. 나이는 30을 넘었고 이력서에는 "스타트업" 두 글자만 있다. 경력이 쌓여있나. 아니다. 스타트업은 1인 개발자여서 코드리뷰를 받지 못한다. 기술 트렌드를 놓친다. 새로운 기술을 배울 여유가 없다. 3년 뒤 "이 기술은 너무 구식인데요"라는 말을 듣는다. 그런데도 많은 사람이 스톡옵션을 기다린다. 내 포함. 왜냐면 월급 4800만원은 서울에서 "중간"이기 때문이다. 대기업 신입 월급이 300만원이라면. 스타트업 풀스택 개발자는 400만원이 합리적인가. 월 100만원 더 받는다. 대신 무엇을 포기했나. 1인 개발팀. 온콜 24/7. 코드리뷰 없음. 휴가 갈 수 없음. 공식 업무 시간 외 일(기획, CS 상담, 배포, 모니터링). 이걸 월 100만원의 가치로 계산하는가. 아니다. 스톡옵션으로 보상받는다. 나중에. 언젠가. 그게 말이 되냐. 되지 않는다. 그런데 모두가 이렇게 한다. 재정적 자유의 환상 "5년 안에 exit하면 각각 1~2억씩 가져갈 거예요." 대표님이 회의에서 말했다. 회의실 분위기가 한 번에 좋아졌다. 사람들이 웃는다. 1~2억이면. 서울에서 전세금이 된다. 또는 명동 원룸을 살 수 있다. 5년을 버티면 그게 된다고 약속하는 셈이다. 5년. 나는 지금 29살이다. 5년 뒤면 34살이다. 결혼은? 아이는? 휴가는? 전부 미룬다. "회사가 성공할 때까지." 친구는 27살에 결혼했다. 28살에 아기를 낳았다. 아내는 육아휴직. 대출로 반전세를 샀다. 그래도 그 친구가 나보다 행복해 보인다. 왜냐면 그 친구는 지금을 살고 있고 나는 "나중"을 산다. 재정적 자유를 위해 현재의 자유를 포기한다. 현재의 자유 = 시간. 건강. 관계. 일상. "5년 뒤 1~2억으로 그걸 다 되찾을 수 있나"라는 건 나이에 달려 있다. 39살에 1억이 있어 봐야. 지난 10년은 돌아오지 않는다. 건강도. 20대의 시간도. 현실이 부딪힐 때 계약서를 다시 읽어보기로 한다. 슬랙에서 HR 담당자한테 물어본다. 근데 HR 담당자가 있나. 없다. 대표에게 묻는다. "스톡옵션 베스팅 기간이 몇 년이었더라요?" "아 네. 4년이에요. 그리고 클리프 1년." 클리프? "1년 안에 나가면 스톡옵션 못 받아요." 아. 1년 이내에 나가면 0%. 1년 넘으면 25%. 2년 50%. 3년 75%. 4년 100%. 지금 1년 10개월. 2개월 뒤면 25%가 25%에서 50%가 된다. 그 2개월이 길다. 휴가를 신청하려니 대표가 "지금은 좀 어려워요"라고 한다. "장애 대응이..." 항상 그렇다. "지금은" 어렵다. 내일도 어렵다. 모레도. 다음 달도. 내년도. "지금은"이 4년을 채우나. 그럼 베스팅이 100%가 되는 건 언제냐. 4년 후. 그때까지 내가 여기 있을 수 있나. 모르겠다.대기업과 스타트업의 거울 인턴 때 다니던 대기업 선배와 커피를 마신다. "넌 왜 스타트업 갔어?" "더 배울 수 있을 것 같았어요." 선배가 웃는다. "스톡옵션 때문이지." 맞다. 숨기지 않는다. 선배는 대기업에서 개발자 30명 중 한 명이다. 월급 600만원. 보너스 3개월치. 스톡옵션 없다. 대신 휴가를 간다. 연 20일. 다 쓴다. 여행 가고 친구 만나고 쉰다. 코드리뷰를 받는다. 선임 개발자 4명이 본다. "여기 더 나을 수 있어요" 피드백이 나온다. 기술을 배운다. 장애 터져도 온콜이 아니다. 교대다. 선배 나이가 32살. 결혼했다. 아내는 회사원. 딸이 2살. "너도 결혼해야 해. 우리 대표한테 인사 좀 받고." 웃고 넘긴다. 선배가 정말 의미하는 건 뭔가. "충분히 벌고 충분히 쉬어. 스톡옵션 같은 건 버려. 현재가 최고야." 그런데 내가 그 말을 들을 수 있을까. 현재가 충분한 것처럼 느껴질까. 월급 600만원은 내 월급에 100만원만 더한 거다. 근데 환경이 완전히 다르다. 그 100만원이 가치가 있나. 있다. 지금은 없는데, 나중에 있을 거야. 그 "나중"이라는 게... 선배는 "절대로 안 온다"고 한다. 내가 이걸 쓰는 이유 3년이 흘렀다. 아직 여기 있다. 베스팅은 얼마나 차가 났나. 내년 여름쯤이면 75%. 또 1년 버티면 100%. 그 1년을 버틸 수 있나. 정말 모르겠다. 밤 3시다. 또 알람이 났다. DB 쿼리가 느려져서 서비스가 먹통이라고 한다. 나만 고칠 수 있다. 노트북을 킨다. 우리 회사 밸류가 또 올랐다는 소식을 들었다. 200억이라고. 확인 안 했다. 0.5% × 200억 = 1억. 1억. 아직도 먼 나라 같다. 1년 후에 이 글을 다시 읽으면 뭐라고 생각할까. 또 버텼으면 좋겠다. 버티는 게 맞기를. 근데 정말 그럴까. 쿼리를 최적화하고 배포하고 다시 테스트한다. 시간은 아침 5시. 새벽 공기가 차다. 창밖은 까만데 한두 개 불빛이 켜져 있다. 다른 누군가의 스타트업도 똑같은 시각일 거다. 그들도 스톡옵션을 기다리고 있을 거다. 모두가 "나중"을 기다린다. 정말 그 "나중"이 올까. 와도 좋고 안 와도 진짜 좋을 것 같다.내일도 온콜이고 내일도 기다릴 거다.