Showing Posts From
온콜
- 15 Dec, 2025
프론트-백엔드-DB 동시 문제: 분야 전환의 피로도
프론트-백엔드-DB 동시 문제: 분야 전환의 피로도 오전 10시: React 시작 출근했다. 슬랙 메시지 37개. 프론트 버그부터다. "버튼 안 눌려요" Chrome 개발자 도구 열었다. 콘솔 에러. onClick 이벤트 리스너 문제다. state 업데이트 타이밍이 꼬였다. useEffect 의존성 배열 수정. useEffect(() => { // 뭔가 했던 것 같은데 }, [dependency])React Hooks 문서 다시 봤다. 머릿속은 컴포넌트 라이프사이클. 렌더링 최적화. useMemo, useCallback. 가상 DOM. 30분 지났다. 고쳤다. 테스트. 잘 된다. 다음 메시지. "테이블 정렬 이상해요" CSS 파일 열었다. Flexbox인지 Grid인지. z-index 충돌. padding과 margin 조정. 반응형은 media query로. 머릿속: HTML 구조, CSS 속성, 브라우저 렌더링 방식.정신없다. 근데 이건 시작일 뿐이다. 오후 2시: Node.js로 전환 대표님 슬랙. "API 응답 느린 거 같은데" 백엔드로 넘어간다. VSCode 탭 전환. Express 서버 코드. 로그 확인. 쿼리 실행 시간 3.2초. 느리다. 머릿속이 돌아간다. 아까까지 React Hook이었는데. 지금은 Node.js 비동기 처리. Promise, async/await, 콜백 지옥. app.get('/api/users', async (req, res) => { // 이게 왜 느리지 })미들웨어 체크. 인증 로직. 데이터 가공. N+1 쿼리 문제인가. 30분 전만 해도 CSS 픽셀 단위 계산했다. 지금은 서버 메모리 사용량 본다. 완전히 다른 세계. 뇌가 재부팅하는 느낌. 프론트 문맥 날리고 백엔드 문맥 로딩.문제 찾았다. 쿼리가 문제다. DB로 가야 한다. 오후 5시: PostgreSQL 레이어 pgAdmin 열었다. SQL 쿼리 실행. EXPLAIN ANALYZE SELECT * FROM users WHERE created_at > '2024-01-01'실행 계획 본다. Seq Scan. 인덱스가 없다. 테이블 풀스캔 중. 머릿속이 또 전환된다. 아까: JavaScript 객체, 배열 메서드 지금: 테이블 스키마, 조인 전략, 인덱스 구조 B-Tree 인덱스 생성. 쿼리 최적화. JOIN 순서 변경. WHERE 절 조건 순서. 완전히 다른 사고방식이다. 프론트: 사용자가 뭘 보는가 백엔드: 데이터를 어떻게 처리하는가 DB: 데이터를 어떻게 저장하고 찾는가 하루에 세 번 뇌를 포맷한다. 인덱스 만들었다. 쿼리 0.3초로 줄었다. 좋다. 근데 이제 프론트로 돌아가서 이 데이터 표시해야 한다. 다시 전환.오후 7시: 다시 프론트 API 수정했으니 프론트도 수정. React 컴포넌트로 돌아왔다. 아까 뭐 하고 있었지. 코드 다시 본다. fetch 함수 수정. 응답 데이터 구조 바뀌었다. TypeScript 인터페이스 업데이트. PropTypes 수정. 머릿속: 다시 컴포넌트 상태관리. Redux? Context API? 그냥 props? 뇌가 버벅인다. SQL 쿼리 최적화하다가 갑자기 JSX 문법. interface User { id: number; // 아까 DB 스키마랑 다른데? }타입 맞추고. 렌더링 확인. 잘 된다. 피곤하다. 한 분야만 파도 모자랄 판에. 밤 9시: 또 다른 문제 "배포하면 503 에러나요" AWS 콘솔. EC2 인스턴스 확인. 메모리 90%. 서버 죽어간다. Docker 컨테이너 로그. 메모리 누수. Node.js 프로세스 확인. 이제는 인프라다. 또 전환. 머릿속: Linux 명령어, Docker 컨테이너 관리, nginx 설정, 네트워크. 한 시간 전: React Hook 의존성 배열 지금: top 명령어로 프로세스 모니터링 PM2 재시작. 메모리 정리. 서버 살아났다. 정신이 없다. 하루에 몇 번 뇌를 전환하는지 모른다. 컨텍스트 스위칭 비용 CPU에 컨텍스트 스위칭 비용 있다. 프로세스 전환할 때 레지스터 저장하고 불러오는 비용. 사람 뇌도 마찬가지다. 프론트 작업하다 백엔드 가면: 10분 로딩 백엔드에서 DB 가면: 또 10분 DB에서 인프라 가면: 또 10분 하루에 컨텍스트 스위칭만 몇 시간 쓴다. 전문 프론트 개발자는 하루종일 React만 한다. 깊게 파고든다. 최적화, 디자인 패턴, 성능. 전문 백엔드 개발자는 API 설계, 아키텍처, 스케일링에 집중한다. DBA는 쿼리 최적화, 복제, 백업에 전념한다. 나는 다 조금씩 한다. 깊이가 없다. Jack of all trades, master of none. 실제로 그렇다. 각 분야 70% 수준. 100% 아니다. React 전문가한테 물어보면 "그건 이렇게 하는 게 정석이지" 한다. 나는 몰랐다. DB 튜닝 전문가는 "당연히 파티셔닝 해야지" 한다. 나는 안 했다. 시간이 없어서다. 한 분야 깊게 팔 시간에 세 분야 넓게 판다. 피곤하다. 문서 열기만 몇 개 브라우저 탭:React 공식 문서 Node.js API 레퍼런스 PostgreSQL 매뉴얼 AWS 가이드 Docker 문서 nginx 설정 예제 Stack Overflow 탭 15개검색 기록:"react useEffect cleanup" "node.js memory leak detection" "postgresql index not used" "docker container out of memory"하루종일 문서 읽는다. 근데 기억 안 난다. 너무 많다. 어제 해결한 문제 오늘 또 검색한다. 기억이 안 난다. 컨텍스트가 너무 자주 바뀌어서. 전문가는 한 분야 문서 외운다. 나는 매번 찾는다. 비효율적이다. 안다. 근데 어쩌나. 나 혼자다. 회의도 정신없다 기획자: "이 버튼 위치 옮기면 안 돼요?" → 프론트 모드 대표님: "API 호출 횟수 줄여야 할 것 같은데" → 백엔드 모드 마케터: "이 데이터 뽑을 수 있어요?" → DB 모드 한 회의에서 세 번 뇌 전환. 대답할 때마다 머릿속에서 로딩. 컨텍스트 불러오기. 대답. 다시 저장. 피곤하다. 회의 끝나고 뭐 하려고 했지. 기억 안 난다. 컨텍스트 날아갔다. 디버깅이 제일 힘들다 프론트 버그 같은데 백엔드 문제다. 이런 거 많다. 버튼 안 눌린다 → React 코드 본다 → 문제없다 → API 확인 → 에러 응답 → 서버 로그 → DB 쿼리 실패 → 테이블 락 → 다른 쿼리가 락 잡고 있다 → 그 쿼리 추적 → 배치 작업이 문제 결국 DB 문제였다. 근데 프론트부터 디버깅 시작했다. 풀스택이니까. 어디가 문제인지 모른다. 다 봐야 한다. 한 시간 걸렸다. 전문가 팀이면 10분. 프론트 개발자: "API 문제인 거 같은데요" 백엔드 개발자: 로그 본다 "DB 쿼리 느린데요" DBA: 쿼리 본다 "락 문제네요" 해결. 나는 혼자 다 한다. 시간 10배. 기술 스택 유지보수 프론트:React 18.2 → 18.3 업데이트 나옴 새로운 Hook API 마이그레이션 가이드 읽어야 함백엔드:Node.js 18 → 20 마이그레이션 Express 5.0 베타 브레이킹 체인지 확인DB:PostgreSQL 15 → 16 새로운 기능들 성능 개선사항인프라:Docker 최신 버전 AWS 새 서비스 보안 업데이트매달 뭔가 업데이트된다. 다 따라가야 한다. 전문가는 한 분야만 따라간다. 나는 네 분야. 공부 시간 4배. 근데 시간은 똑같다. 뒤처진다. 최신 기술 못 쓴다. 레거시 쌓인다. 알지만 어쩔 수 없다. 채용 공고가 웃긴 이유 우리 회사 채용 공고: "프론트엔드 개발자 구함React 능숙자 TypeScript 필수 경력 3년 이상 연봉 5000만원~"근데 뽑히면:백엔드도 할 줄 알아야 함 DB도 만져야 함 배포도 해야 함 인프라 장애도 대응면접 올 때는 프론트 전문가. 입사하면 풀스택. 그래서 안 뽑힌다. 6개월째. 전문가는 여기 안 온다. 스타트업 풀스택은 전문성 포기하는 거다. 다들 안다. 올해 면접자 3명. 다 떨어졌다. 1명: "백엔드는 잘 모르는데요" 1명: "프론트만 하고 싶어요" 1명: "여기 개발자 혼자세요? 패스합니다" 솔직하다. 이해한다. 나도 이력서 쓸 때 고민된다. "풀스택 개발자 3년" 근데 실제로는:프론트 70% 백엔드 70% DB 60% 인프라 50%다 중간이다. 어디도 전문가 아니다. 이직할 때 불리하다. 전문성이 없다. 저녁 11시 현재 오늘 한 일:React 컴포넌트 3개 수정 Node.js API 2개 추가 PostgreSQL 쿼리 최적화 5개 Docker 컨테이너 재배포 2번 AWS 비용 확인 nginx 설정 변경 버그 수정 7개 회의 3번많이 했다. 근데 뭔가 이룬 느낌이 없다. 다 쪼개져 있다. 한 분야 깊이 파지 못했다. 프론트 전문가는 오늘 하나 만들었을 것이다. 근데 완벽하게. 나는 일곱 개 만들었다. 근데 다 70%. 피곤하다. 내일도 똑같다. 프론트-백엔드-DB-인프라 돌아가면서. 뇌가 방향을 계속 돌린다. 어지럽다. 그래도 가끔 좋을 때 있다. 프론트 버그가 백엔드 문제고 그게 DB 쿼리 때문이고 그걸 인프라로 해결할 수 있을 때. 전체를 본다. 연결고리를 안다. 전문가들은 자기 영역만 본다. 나는 전체를 본다. 빠르게 원인 찾는다. 어디가 문제인지 감이 온다. 프론트 개발자한테 물어보면 "백엔드 문제 같은데요" 한다. 맞다. 백엔드 개발자한테 물어보면 "DB 문제 같은데요" 한다. 맞다. 나는 바로 안다. 다 해봤으니까. 장점이다. 유일한. 근데 이것만으로는 부족하다. 피곤하다.오늘도 뇌를 돌렸다. 내일도 돌릴 것이다. 언제까지 돌릴 수 있을까.
- 13 Dec, 2025
온콜 알림음의 심리학: 반사 행동이 된 노트북 오픈
온콜 알림음의 심리학: 반사 행동이 된 노트북 오픈 어제 영화 보다가 또 했다. 슬랙 알림음. 손이 먼저 움직였다. 영화 일시정지도 안 했다. 노트북 열면서 봤다. 주인공이 뭐라고 하는지 하나도 안 들렸다. 화면엔 대시보드가 떠 있었다. "서버 응답 느린데요?" 기획자 메시지였다. 새벽 11시 47분. 파블로프의 개가 된 날 3년 전엔 아니었다. 첫 스타트업 입사했을 때. 슬랙은 그냥 메신저였다. 알림음도 귀여웠다. "띵" 하면 웃으면서 확인했다. 지금은 다르다. "띵" 심장이 먼저 반응한다. 노트북 어디 있지? 손이 가방을 뒤진다. 머리는 생각한다. 뭐가 터졌지?카페에서도 그렇다. 친구 만나서도 그렇다. 화장실에서도 그렇다. 알림음이 울리면 세상이 멈춘다. 나만 움직인다. 파블로프가 개한테 종 울리고 밥 줬다더라. 나중엔 종만 울려도 침 흘렸다고. 나는? 슬랙만 울려도 노트북 연다. 밥 주는 것도 아닌데. 벌 주는 건데. 알림음 종류별 심박수 변화 슬랙 알림음: 보통. 80~90bpm. 확인하면 된다. PagerDuty 알림음: 빠름. 110~120bpm. 장애다. 전화벨: 최고. 130bpm 찍는다. 심각한 거다. Apple Watch로 확인했다. 궁금해서.재미있는 건 이거다. 알림 내용 보기 전에 이미 심박수가 오른다. 소리만으로. "띵" - 아 뭐지 "띠리링" - 아 큰일났다 전화벨 - 진짜 큰일났다 내용은 중요하지 않다. 소리가 전부다. 지난주 있었던 일. 새벽 3시. 자고 있었다. PagerDuty 울렸다. 5초 만에 일어났다. 노트북 켰다. 로그인했다. AWS 콘솔 열었다. 10분 뒤 확인했다. 오알람이었다. 모니터링 임계값 설정 실수. 다시 못 잤다. 심장은 아직도 뛰고 있었다. 조건 반사의 일상화 점심 먹는다. 된장찌개 먹는다. "띵" 젓가락 놓는다. 폰 본다. "괜찮은데요?" 메시지. 기획자가 새 기능 확인했다. 다시 먹는다. 식었다. "띵" 또 본다. "근데 이거 색깔 바꿀 수 있나요?" 답장 친다. "네 가능합니다." 찌개는 차갑다. 밥은 식었다. 배는 안 고프다.친구 만났다. 2년 만이다. 대학 동기. "야 오랜만이다" "응 오랜만" "띵" 폰 본다. "서버 로그 좀 봐주세요." 본다. 에러 로그다. 심각하진 않다. "미안 일 때문에" "괜찮아 답장 해" 3분 뒤. "띵" 또 본다. 또 답장한다. 친구가 말했다. "너 그냥 일하러 가" 웃었다. 미안했다. 어쩔 수 없었다. 꺼도 켜지는 알림 알림 끈 적 있다. 작년에. 휴가 갔다. 부산. 3일. "방해 금지 모드 켭니다" 대표한테 말했다. "급하면 전화 주세요." 첫날은 좋았다. 바다 봤다. 횟집 갔다. 소주 마셨다. 둘째 날 새벽 2시. 전화 왔다. 대표다. "서버 다운됐어요" 노트북 가져왔다. 혹시 몰라서. 호텔 와이파이로 접속했다. 새벽 5시까지 고쳤다. 다음 날 집 갔다. 방해 금지 모드. 의미 없다. 어차피 전화는 온다. 알림 꺼도 핸드폰은 본다. 30분마다. 뭔가 터졌을까봐. 결국 켰다. 편하다. 기다리는 것보다. 노트북이 없는 공포 지난달 노트북 고장났다. 키보드에 커피 쏟았다. 서비스센터 맡겼다. 3일 걸린다고. 회사 예비 노트북 받았다. 설정이 다르다. 개발환경 없다. 불편하다. 집 가는 길. 가방이 가볍다. 이상하다. 내 노트북이 없다. 불안했다. 장애 나면? 접속 못 하면? 편의점 갔다. 맥주 샀다. 마셨다. 불안하다. 슬랙 확인했다. 폰으로. 아무 일 없다. 또 확인했다. 10분 뒤. 괜찮다. 또 확인했다. 5분 뒤. 잠 안 왔다. 노트북 없이 자는 게 이렇게 불안한가. 다음 날 아침 출근했다. 예비 노트북 들고. 하루 종일 불편했다. 셋째 날 찾아왔다. 수리 완료. 안심했다. 이상하다. 노트북이 편한 게 아니라 없으면 불안한 거다. 반사의 대가 요즘 영화 못 본다. 보면 못 본다. 집중을 못 한다. 슬랙 알림 올까봐. 폰 옆에 둔다. 화면 밝기 키워놓는다. 진동도 켠다. 영화 보는데 폰 본다. 알림 없다. 다시 본다. 주인공이 누구였지? 뒷부분 놓쳤다. 되감기 한다. 또 폰 본다. 결국 끈다. 이해 못 했다. 넷플릭스 추천 알고리즘. "시청 중인 콘텐츠" 100개. 다 못 봤다. 친구들 연락 줄었다. "밥 먹자" 약속 잡으면 "일 있을 수도" 라고 답한다. 나중엔 안 잡는다. 귀찮은 거다. 나한테. 만나도 폰 본다. 노트북 들고 간다. 일 할 수도 있으니까. 친구들도 안다. "너 오늘도 일하겠네" 웃는다. 맞다. 혼자가 편하다. 폰 봐도 미안하지 않다. 노트북 펴도 눈치 안 본다. 건강검진 결과 나왔다. 의사가 말했다. "스트레스 수치가 높네요" 안다. 심장도 안다. Apple Watch도 안다. "수면 시간 부족합니다" 안다. 알림음 때문이다. "운동하세요" 못 한다. 헬스장 가도 폰 본다. 꺼지지 않는 스위치 이직 고민한다. 요즘. 조건 본다. "온콜 로테이션" 있으면 좋다. 나만 하는 건 아니니까. "장애 대응 매뉴얼" 있으면 좋다. 나만 아는 건 아니니까. "개발자 3명 이상" 있으면 좋다. 나 혼자는 아니니까. 근데 생각한다. 거기 가도 똑같을 것 같다. 알림음은 들린다. 온콜은 돈다. 장애는 난다. 노트북은 옆에 있다. 손은 자동으로 움직인다. 파블로프 개는 나중에 어떻게 됐을까. 종 소리 안 들려도 침 흘렸을까. 나는 그럴 것 같다. 슬랙 지워도 폰 본다. 알림 꺼도 확인한다. 노트북 없어도 불안하다. 반사는 끄기 힘들다. 스위치가 고장났다. 켜짐만 있다. 꺼짐은 없다. 내일도 출근한다. 노트북 챙긴다. 폰 충전한다. 알림음 기다린다. 안 울리길 바라면서. 울릴 거 알면서.파블로프 개는 선택권이 없었다. 나는?
- 07 Dec, 2025
전 직장 동기: '너 아직 거기야?' 그 한 마디
카톡이 왔다 전 직장 동기 단톡방에 메시지가 떴다. "다들 연말 회식 언제야? 우리 것도 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 쳤다. 어제 내가 푸시한 코드. 나만 본다. 이게 일상이다. '너 아직 거기야?' 아직. 아직이다. 언제까지? 모른다. 떠날 수 있나? 아마도. 떠날 건가? ...모르겠다. 에너지 드링크 캔 땄다. 오늘도 시작이다. 혼자서.여전히 원맨밴드다. 근데 이 곡은 나만 연주할 수 있다. 그게 자랑인지 한계인지, 아직 모르겠다.
- 04 Dec, 2025
코드리뷰가 없으면 생기는 일: 내 코드가 정말 맞나?
코드리뷰가 없으면 생기는 일: 내 코드가 정말 맞나? 아무도 내 코드를 안 본다 회사에 개발자가 나 혼자다. 대표는 "풀스택이시니까"라고 했지만, 실제론 온스택이다. 프론트, 백엔드, 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개월 간다.코드리뷰는 사치가 아니다. 혼자라서 느낀다. 더 나은 코드보다, 확신이 필요하다. "이거 맞아" 한 마디가.
- 02 Dec, 2025
스톡옵션 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시. 새벽 공기가 차다. 창밖은 까만데 한두 개 불빛이 켜져 있다. 다른 누군가의 스타트업도 똑같은 시각일 거다. 그들도 스톡옵션을 기다리고 있을 거다. 모두가 "나중"을 기다린다. 정말 그 "나중"이 올까. 와도 좋고 안 와도 진짜 좋을 것 같다.내일도 온콜이고 내일도 기다릴 거다.