Showing Posts From
싶은데
- 22 Dec, 2025
이직하고 싶은데 미안함이 발목을 잡는다
이직하고 싶은데 미안함이 발목을 잡는다 새벽 4시의 슬랙 알림새벽 4시. 슬랙 알림. "서버 500 에러 나는데요" 일어났다. 노트북 켰다. 로그 확인했다. DB 커넥션 풀 터졌다. 재시작했다. 모니터링 확인했다. 정상화됐다. "해결했습니다" 대표님 읽음 표시. 답은 없다. 다시 누웠다. 잠은 안 온다. 이런 게 일주일에 두 번. 많을 땐 세 번. 온콜이라는 게 원래 이런 건가. 아니다. 온콜은 돌아가면서 하는 거다. 근데 나밖에 없으니까 365일 온콜이다. 휴가 신청서 작성했다가 지웠다. 세 번째다. 내가 없으면 누가 대응하지. 기획자한테 "서버 로그 좀 봐줘"라고 할 순 없다. 이직 공고 북마크 47개. 지원서는 하나도 안 썼다. 혼자라는 것의 무게 회사 규모는 12명이다. 개발자는 나 하나다. "풀스택 개발자 구합니다" 공고 올린 지 6개월. 서류 통과자 3명. 면접 1명. 결과는 연봉 불일치. 우리가 제시한 금액: 4200만원. 지원자가 원한 금액: 6000만원. 대표님 말씀. "우리 시리즈A 전인데 그 정도는 어렵다. 너도 4800 받잖아." 나도 적다고 생각한다. 안 그래도 이직 생각 중이다. 그건 말 안 했다. 문제는 채용이 안 되는 게 아니다. 내가 면접 볼 시간이 없다는 거다. "다음 주 수요일 2시에 면접 가능하세요?" → 그 시간에 배포 잡혀있다. "금요일 오후는요?" → 주간 회의 후 급한 기능 개발해야 한다. 면접 일정 조율하다가 지원자가 다른 데 합격했다는 연락 받았다. 두 번.코드리뷰가 없다. 내 코드를 볼 사람이 없다. 이게 맞나 싶을 때가 많다. 아키텍처 설계도 혼자. API 명세도 혼자. DB 스키마 설계도 혼자. Reddit에 올렸다. "This is my architecture, what do you think?" 댓글 3개 달렸다. 두 개는 칭찬. 한 개는 "Why are you using this pattern?" 대답 못 했다. 이유가 없다. 그냥 내가 아는 방식으로 했다. 기술 부채가 쌓인다. 보인다. 손 댈 시간이 없다. Todo 주석 47개. "// TODO: refactor this mess" 언젠가 하겠지. 3개월째 똑같은 생각이다. 책임감이라는 족쇄 대표님이 물었다. "우리 서비스 다운타임 99.9% 달성했어. 대단하지?" 그렇다. 대단하다. 근데 그게 나한테 무슨 의미인가. 내가 주말에도 노트북 옆에 있어서 가능한 수치다. 친구 결혼식 갔을 때도 슬랙 켜놨다. 가족 여행 갔을 때도 AWS 콘솔 확인했다. 99.9%는 내 삶의 100%를 갉아먹어서 나온 숫자다. 이직 생각하면 죄책감부터 든다. "내가 떠나면 이 서비스 망하는 거 아닌가." 실제로 망할 것 같다. 코드베이스 이해하는 사람이 나밖에 없다. 배포 프로세스도 나만 안다. AWS 계정 루트 비밀번호도 나만 알고 있다. 문서화? 했다. README 15페이지. 배포 가이드 8페이지. 아키텍처 다이어그램 3개. 근데 이걸로 새 사람이 바로 투입될 수 있을까. 솔직히 모르겠다. 내가 6개월 동안 쌓은 맥락을 문서로 전달하는 게 가능한가. 불가능하다. 경험해봐서 안다.대표님은 좋은 분이다. 진짜다. 생일 때 케이크 사주셨다. 명절 보너스 50만원 주셨다. "고생 많다"는 말 자주 하신다. 근데 그게 내 커리어를 희생할 이유가 되나. 동기들 연봉 들었다. 네이버 6800만원. 카카오 7200만원. 쿠팡 7500만원. 나는 4800만원에 24시간 온콜이다. "스타트업이니까 성장 가능성 봐야지" 1년 전에도 시리즈A 준비 중이었다. 지금도 준비 중이다. 언제 되는 건지 모른다. 스톡옵션 0.5%. EXIT 되면 얼마나 받을까. 계산해봤다. 기업가치 500억 가정하면 2억5천. 세금 떼면 1억5천. 근데 EXIT 확률이 얼마나 되는데. 10%? 5%? 기댓값 계산하면 750만원에서 1500만원 사이다. 1년에 1500만원 덜 받으면서 3년 버티면 손해다. 대표님은 모른다 "개발 리소스 부족해서 이번 기능은 다음 달로 미뤄야 할 것 같습니다" 대표님 표정이 어두워졌다. "그럼 우리 투자 유치 일정이 늦어지는데. 조금만 더 힘내줄 수 있어?" 힘내달라. 이미 한계다. 주 60시간 일한다. 법정 근로시간 40시간. 연장 20시간. 야근수당? 없다. 스타트업이니까. "우리 다 같이 고생하는 거잖아. 나도 밤늦게까지 일하고" 아니다. 다르다. 대표님이 밤늦게까지 하는 일은 투자 PT 만들기다. 미팅 준비다. 전략 수립이다. 내가 밤늦게까지 하는 일은 버그 잡기다. 서버 모니터링이다. 긴급 배포다. 대표님은 새벽 4시에 슬랙 알림 안 받는다. 주말에 AWS 비용 걱정 안 한다. 배포 실패해서 롤백하느라 식은땀 안 흘린다. "개발자 한 명 더 뽑으면 되지 않아?" 그렇다. 뽑으면 된다. 근데 6개월째 안 뽑히고 있다. 연봉 올려주면 뽑힌다. 근데 그럴 돈은 없다고 한다. 결국 내 몸값을 깎아서 회사를 유지하는 구조다. 이직 준비는 또 다른 야근 포트폴리오 정리하려면 시간이 필요하다. 깃헙 정리. README 작성. 사이드 프로젝트 배포. 기술 블로그 글쓰기. 언제 하나. 퇴근하면 10시다. 씻고 먹으면 11시. 그때부터 이력서 쓰나. 불가능하다. 주말? 주말에는 밀린 개인 공부해야 한다. 기술 부채 갚듯이 지식 부채도 갚아야 한다. 요즘 트렌드를 못 따라간다. Next.js 14 나왔는데 우리는 아직 Create React App이다. TypeScript 제대로 쓰고 싶은데 시간 없어서 any 남발이다. 면접 가면 물어볼 거다. "최신 기술 트렌드 어떻게 따라가세요?" 대답할 수 있나. "퇴근하고 새벽까지 공부합니다"? 아니면 "사실 못 따라갑니다"? 둘 다 답이 아니다. 채용 공고 보면 요구사항이 무섭다. "TypeScript, NestJS, GraphQL, Docker, k8s, CI/CD, 테스트 코드 작성 경험" 나는? React, Node.js, REST API, Docker. 테스트 코드는 중요한 것만. k8s는 해본 적 없다. 경력 3년치 이력서인데 신입보다 못한 것 같다. 여기서 뭘 배웠나. 빠르게 기능 만드는 것? 혼자 모든 걸 하는 것? 이게 커리어가 되나. 미안함의 정체 밤에 생각했다. 왜 나는 미안한가. 회사에 미안한가. 아니다. 회사는 나한테 미안해야 한다. 한 사람 몫값으로 세 사람 일을 시켰으니까. 대표님한테 미안한가. 조금. 근데 그분도 사업가다. 리스크 관리 못 한 건 그분 책임이다. 동료들한테 미안한가. 이것도 조금. 근데 그들도 각자 커리어 있다. 내가 떠나도 각자 길 찾을 거다. 결국 나한테 미안한 거다. "3년을 여기 썼는데 이렇게 떠나도 되나" "스톡옵션 포기하고 가는 게 맞나" "다음 사람 올 때까지는 버텨줘야 하는 거 아닌가" 전부 나한테 하는 변명이다. 진실은 간단하다. 무섭다. 이직이 무섭다. 새 회사 가면 잘할 수 있을까. 3년 동안 혼자 일했는데 팀워크 할 수 있을까. 코드리뷰 받으면 다 까일 것 같다. 여기서는 내가 최고다. 유일하니까. 새 회사 가면 그냥 평범한 주니어일 거다. 그게 무섭다. 미안함은 핑계다. 진짜는 두려움이다. 떠나도 된다 Reddit에 물었다. "Am I responsible for the company if I leave?" 댓글 30개 달렸다. 전부 비슷한 내용이다. "No. You're not the founder." "They should have hired a backup." "Your career > their business." "You don't owe them anything beyond your contract." 그중 하나가 인상 깊었다. "If you got hit by a bus tomorrow, they would figure it out. So you can leave, and they will figure it out too." 맞다. 내가 내일 사고 나면? 회사는 어떻게든 한다. 프리랜서 구하든, 외주 주든, 서비스 축소하든. 그럼 내가 이직한다고 해도 똑같다. 어떻게든 한다. 내 책임이 아니다. 처음부터 아니었다. 대표님이 개발자 한 명으로 회사 돌리겠다고 결정한 거다. 나는 그 결정에 동의한 적 없다. 그냥 일한 것뿐이다. 지금 당장 사표 쓸 순 없다. 인수인계 준비해야 한다. 최소 2달은 필요하다. 문서 정리했다. 배포 자동화 스크립트 만들었다. 온보딩 가이드 작성했다. 이 정도면 됐다. 완벽할 순 없다. 완벽하게 만들려면 또 6개월 걸린다. 이력서 썼다. 포트폴리오 정리했다. 채용 공고 15곳에 지원했다. 서류 통과 8곳. 면접 일정 잡았다. 대표님한테 말해야 한다. 다음 주에 말한다. "이직 준비하고 있습니다. 2달 후 퇴사하겠습니다." 미안하다. 근데 나는 떠난다.책임감은 덕목이다. 근데 그게 내 인생을 잡아먹게 두면 안 된다.
- 03 Dec, 2025
리팩토링하고 싶은데 급한 기능이 또 들어왔다
리팩토링하고 싶은데 급한 기능이 또 들어왔다 오전 10시 30분 출근했다. 슬랙 알림 27개. 대표님: "오늘 중으로 결제 모듈 붙여주실 수 있나요? 내일 투자자 미팅인데 꼭 보여줘야 해요." 나: "네, 볼게요." 내가 보려던 건 3주 전부터 미뤄온 인증 로직 리팩토링이었다. 코드 열어볼 때마다 토 나올 것 같은 그 코드. 회원가입, 로그인, 토큰 갱신 로직이 5군데에 중복되어 있다. 버그 고칠 때마다 5곳을 다 수정해야 한다. 오늘은 꼭 정리하려고 했다. 결제 모듈 작업 예상 시간: 6시간. 리팩토링은 또 미뤄진다.기술 부채 통장 잔고 현재 내가 파악한 리팩토링 필요 목록:인증 로직 중복 (5곳) - 3주 경과 상품 조회 API 응답속도 4.2초 (목표 1초 이하) - 2달 경과 에러 핸들링 없는 비동기 함수 148개 - 카운트 포기 테스트 커버리지 12% - 올릴 생각도 못 함 Docker 이미지 3.2GB (최적화하면 500MB 가능) - 배포 때마다 10분 DB 인덱스 없는 테이블 9개 - 점점 느려짐 하드코딩된 설정값 곳곳에 - 환경 바뀌면 재배포이게 3개월 치다. 3개월 전엔 이것보다 적었다. 6개월 전엔 더 적었다. 계속 늘어난다. 갚는 속도보다 빌리는 속도가 빠르다. 기술 부채 이자만 내고 있다. 원금은 불어난다. 결제 모듈 작업 시작 일단 급한 거부터. 기존 코드 열어봤다. 주문 로직이 컨트롤러에 다 박혀있다. 비즈니스 로직이 라우터 파일에 200줄. 서비스 레이어가 없다. "이거 나중에 정리해야지." 메모장에 적는다. 47번째 항목. 일단 결제 API 연동부터. 문서 읽는다. 콜백 URL 설정, 웹훅 처리, 실패 케이스 핸들링. 제대로 하려면 결제 서비스 레이어 만들고, 에러 처리 통일하고, 트랜잭션 관리하고. 시간 없다. 기존 코드 복붙한다. 200줄이 400줄 된다. "나중에 정리하지 뭐."오후 3시 결제 모듈 70% 완성. QA팀 (기획자가 겸함): "상품 상세 페이지 로딩 너무 느려요. 5초 걸려요." 알고 있다. 2달 전부터 알고 있다. 상품 한 개 조회하는데 DB 쿼리 17번 날린다. N+1 문제다. JOIN으로 한 방에 가져오면 0.3초 컷. "급하게 수정할게요." 임시방편으로 Redis 캐싱 붙인다. 30분 작업. 1.5초로 줄어든다. 근본적 해결은 아니다. 캐시 무효화 로직도 제대로 안 짰다. 상품 수정하면 한참 후에 반영된다. "나중에 쿼리 최적화하면서 제대로 해야지." 메모장 48번째. 기능 개발과 리팩토링의 시간 역설 기능 개발: 1시간에 완성, 성과 보임, 대표님 좋아함. 리팩토링: 3일 걸림, 겉보기 변화 없음, "그래서 뭐가 달라진 건가요?" 어떤 게 우선순위가 될까. 명확하다. 대표님 입장에선 당연하다. 투자 유치해야 하고, 고객 늘려야 하고, 매출 만들어야 한다. 코드가 예쁜지 안 예쁜지는 관심 없다. 나도 이해한다. 근데 문제는. 기술 부채가 쌓일수록 기능 개발 속도가 느려진다. 3개월 전엔 기능 하나 추가하는 데 1일 걸렸다. 지금은 2일 걸린다. 6개월 후엔 4일 걸릴 거다. 코드가 복잡해져서 버그 찾기 어렵다. 수정하면 다른 데서 터진다. 테스트도 없어서 확인도 못 한다. 결국 느려진다. 그럼 대표님이 말한다. "왜 이렇게 오래 걸려요? 예전엔 빨랐는데." 설명할 수 없다. "코드가 더러워져서요"라고 하면 "그럼 깨끗하게 하면 되잖아요"라고 한다. 시간을 달라고 하면 "급한 게 먼저 아닌가요?" 무한 루프다.저녁 7시 결제 모듈 완성. 배포했다. 대표님: "고생하셨어요! 내일 미팅에서 잘 보여드릴게요." 뿌듯하다. 3초간. 그리고 생각한다. 오늘 추가한 코드 300줄. 제대로 설계 안 한 코드. 에러 처리 부실한 코드. 테스트 없는 코드. 다음 개발자가 이거 보면 욕할 거다. 아, 다음 개발자가 없다. 나다. 3개월 후의 나다. 미래의 내가 현재의 나한테 욕한다. 매일. 악순환의 구조 기능 개발 급함 → 제대로 못 짬 → 기술 부채 쌓임 → 다음 개발 느려짐 → 더 급해짐 → 더 못 짬. 어디서 끊어야 할까. 방법은 안다. 리팩토링 시간 확보. 일주일에 하루는 기술 부채 갚기. 새 기능 개발할 때 관련 코드 정리하고 시작. 근데 현실은. 월요일: "이번 주 금요일까지 A 기능 개발 가능할까요?" 화요일: "고객 문의 많은데 B 기능 급하게 추가해주실 수 있나요?" 수요일: "투자사에서 C 기능 보고 싶대요. 이번 주 안에 가능할까요?" 목요일: 장애 대응. 금요일: A, B, C 다 못 끝냄. 주말 작업. 리팩토링 시간은 어디 있나. 밤 11시 퇴근 준비하는데 슬랙. 대표님: "내일 미팅에서 D 기능도 보여주고 싶은데, 혹시 오늘 밤에..." D 기능은 장바구니다. 장바구니 로직 제대로 만들려면 이틀 걸린다. 세션 관리, 비회원 장바구니, 로그인 시 병합, 수량 변경, 재고 확인. "급하게라도 프로토타입만 만들 수 있을까요?" 프로토타입. 임시방편. 나중에 다시 짜야 할 코드. "해볼게요." 메모장 49번째: "장바구니 제대로 다시 짜기" 노트북 다시 연다. 새벽 2시 장바구니 프로토타입 완성. 로컬 스토리지에 때려박기. 제대로 된 장바구니 아니다. 보여주기용 껍데기. 배포한다. 침대에 눕는다. 천장 본다. "내일은 리팩토링 좀 해야지." 3개월째 하는 생각. 기술 부채의 실체 기술 부채는 눈에 안 보인다. 대표님 눈엔 "기능 잘 돌아가네" 밖에 안 보인다. 내 눈엔 보인다.중복 코드 덩어리 의미 없는 변수명 (data1, data2, temp, result) 1000줄짜리 함수 주석 없는 복잡한 로직 하드코딩된 값들 try-catch 없는 비동기 함수들이게 쌓인다. 눈덩이처럼. 작은 버그 하나 고치는데 3시간 걸린다. 코드 따라가다가 길 잃는다. 스파게티다. 새 기능 추가하려는데 어디에 넣어야 할지 모르겠다. 구조가 없다. 그래서 또 아무 데나 박는다. 더 복잡해진다. 홀로 싸우는 전쟁 시니어 개발자가 옆에 있었으면. "이거 이렇게 하지 말고 저렇게 해봐." "지금 리팩토링하는 게 나중에 이득이야." "일단 구조 잡고 시작하자." 조언해줄 사람이 없다. 구글링한다. 스택오버플로우 뒤진다. 유튜브 본다. 정답을 모른다. 내가 하는 게 맞는지 모른다. 그냥 돌아가게만 만든다. 나중 생각은 나중에. 근데 나중은 안 온다. 오늘의 커밋 로그 feat: 결제 모듈 추가 fix: 상품 조회 속도 개선 (임시) feat: 장바구니 프로토타입 refactor: ...refactor 커밋은 3개월째 없다. feat, fix, hotfix만 쌓인다. GitHub contribution 그래프는 초록색이다. 매일 커밋한다. 근데 코드 품질은 빨간색이다. 매일 나빠진다. 이직을 고민하는 밤 가끔 생각한다. 이직할까. 채용공고 본다. "클린 코드", "테스트 주도 개발", "코드 리뷰 문화". 좋아 보인다. 근데 또 생각한다. 여기 떠나면 서비스 어떻게 되나. 나 말고 아무도 코드 모른다. 대표님한테 미안하다. 같이 시작했는데. 동료들한테 미안하다. 개발자 나뿐인데. 책임감이 발목 잡는다. 그래서 못 떠난다. 그래서 계속 이렇게 산다. 금요일 오후 한 주가 끝난다. 이번 주 완성한 기능: 5개. 이번 주 리팩토링: 0건. 기술 부채 목록: 49개 → 52개. 다음 주 계획: 월요일: "이번엔 진짜 리팩토링 시작해야지." 화요일: 급한 기능 요청 들어올 거다. 수요일: 그거 하느라 리팩토링 못 할 거다. 목요일: 장애 터질 거다. 금요일: 다음 주엔 꼭 하자고 다짐할 거다. 예측 가능하다. 그래도 포기는 안 한다. 언젠가 시간 생긴다. 그때 한 방에 정리한다. 그때까지 버틴다. 메모장 열고 50번째 항목 적는다. "전체 아키텍처 재설계." 언젠가 할 거다. 오늘은 아니다. 내일도 아닐 거다. 근데 언젠가.오늘도 급한 기능이 또 들어왔다. 리팩토링은 내일.