- 23 Dec, 2025
건강검진 결과: 수면 부족, 스트레스, 경고등
건강검진 결과: 수면 부족, 스트레스, 경고등 우편으로 온 경고장 건강검진 결과지가 왔다. 우편으로. 회사 소속이니까 단체 검진이다. 작년 11월에 받았는데 이제야 왔다. 왜 이렇게 늦게 오냐고? 우리 회사 인사팀이 없어서다. 대표님이 직접 챙기시는데 바쁘시니까. 봉투 뜯었다. 빨간 글씨가 보인다. "재검사 권고" "수면의 질 저하" "스트레스 호르몬 수치 상승" "혈압 경계" 28살한테 나올 결과가 아니라고 생각한다. 근데 놀랍지 않다. 알고 있었으니까.의사 선생님의 말씀 결과지 마지막에 의사 소견이 있다. "수면시간 확보와 스트레스 관리가 필요합니다. 규칙적인 생활과 충분한 휴식을 권합니다." 웃었다. 쓴웃음. 규칙적인 생활. 나도 하고 싶다. 근데 장애는 규칙적으로 안 터진다. 새벽 3시에도 터지고 주말 아침 9시에도 터진다. 충분한 휴식. 나도 쉬고 싶다. 근데 내가 안 고치면 아무도 못 고친다. 개발자가 나 혼자니까. "좀 쉬셔야겠어요"라는 말이 통하지 않는다. 여기서 쉴 수 없으니까. 검진 받을 때도 웃겼다. 11월 목요일 오전 9시 예약이었는데 전날 밤 배포하다가 새벽 4시에 잤다. 5시간 공복 유지하라는데 어차피 안 먹었다. 일하느라. 채혈할 때 간호사가 물었다. "어제 술 드셨어요?" "아니요. 일했어요." "아... 개발자시구나." 다들 안다. 개발자는 이렇게 산다고. 수면 부족의 기록 수면 시간을 계산해봤다. 지난 2주:5시간: 3일 6시간: 4일 4시간: 5일 7시간: 2일 (주말)평균 5.2시간. 권장 수면 시간은 7~8시간이라던데. 잠을 줄이는 게 아니다. 줄어지는 거다. 계획은 항상 12시에 자는 거다. 근데 10시에 '이것만 하고'가 시작되면 2시가 된다. 그리고 8시 반에 일어나야 한다. 10시 출근이지만 9시 반에 슬랙 확인해야 하니까. 주말도 마찬가지다. 토요일 아침에 '오늘은 쉬어야지' 생각한다. 근데 11시쯤 슬랙 알림이 온다. "이거 급한데 오늘 중으로 가능할까요?" 가능하다. 내가 하면. 그래서 한다. 일요일도 비슷하다. 월요일 스프린트 미팅 준비해야 하고, 배포 전에 체크할 것들 있고, 그러다 보면 저녁이다.침대에서 노트북 켜놓고 자는 날이 많다. 그냥 코드 보다가 기절하는 거다. 알람 5개 맞춰놔도 다 끄고 다시 잔다. 수면의 질은 당연히 안 좋다. 꿈도 일 관련이다. 코드 꿈, 배포 꿈, 장애 꿈. 진짜다. 지난주에는 꿈에서 DB 마이그레이션 하다가 롤백 못 해서 깼다. 심장이 뛰었다. 실제로 롤백 안 된 줄 알고 노트북 켰다. 새벽 4시 반이었다. 스트레스의 일상화 스트레스 수치가 높다고 한다. 놀랍지 않다. 아침에 눈 뜨면 스트레스다. 어제 배포한 거 문제없나, 슬랙에 뭐 올라왔나, 모니터링 알람은 안 왔나. 출근하면 스트레스다. 오늘 할 일이 10개인데 긴급 건이 3개 더 생긴다. 점심 먹으면서도 스트레스다. 슬랙 확인하면서 먹으니까. '이거 좀 봐줄래요?' 메시지 오면 밥 맛이 없다. 오후는 더 심하다. 기획자가 '작은 수정'이라고 하는데 백엔드 로직 전체를 뜯어야 한다. 근데 '내일까지'라고 한다. 저녁에는 퇴근 못 한다는 스트레스. 9시가 되어도 끝이 안 보인다. 10시 넘어서 나간다. 집 가서도 스트레스다. 노트북 꺼야 하는데 못 끈다. '혹시 장애 나면?' 하는 생각에. 주말 스트레스는 다르다. '쉬어야 하는데 쉬는 게 불안하다.' 이게 제일 웃기다.스트레스 해소법을 찾아봤다. 운동, 취미, 명상. 운동할 시간이 없다. 퇴근이 10시인데 헬스장은 11시에 닫는다. 취미도 없다. 코딩이 취미였는데 이제는 일이다. 게임 하려고 Steam 키는데 5분 만에 지루해진다. 버그 찾는 게 더 익숙하니까. 명상은 시도했다. 앱 깔아서 5분짜리 했다. 근데 중간에 슬랙 알림 와서 중단했다. 그 뒤로 안 한다. 스트레스가 일상이 되니까 감각이 둔해진다. 이게 스트레스인지 아닌지 구분이 안 된다. 그냥 '원래 이렇게 사는 거 아닌가?' 싶다. 근데 건강검진은 거짓말 안 한다. 수치로 보여준다. "너 스트레스 받고 있어. 많이." 경고등의 의미 혈압이 경계라고 한다. 수축기 135, 이완기 88. 28살 남자 정상 수치는 120/80 정도래. 나는 벌써 넘었다. 재검사 권고 항목이 5개다:혈압 재측정 수면다원검사 스트레스 검사 간기능 재검사 (에너지 드링크 때문인 듯) 위내시경 (속 쓰림 항목 체크했더니)재검사 받으러 가야 한다. 근데 언제 가지? 병원 예약하려면 평일 낮에 가야 한다. 근데 낮에는 일한다. 반차 써야 하는데 반차 쓰면 그날 일은 누가 하지? 야간 진료도 있다. 8시까지. 근데 나는 8시에 퇴근 못 한다. 7시에 나가려면 5시부터 마무리해야 하는데 그럴 수 있는 날이 한 달에 하루? 주말 진료는 토요일 오전만 한다. 토요일 오전은 자고 싶다. 평일에 못 잔 잠 보충하는 유일한 시간이니까. 그래서 재검사를 못 간다. 이미 3개월 지났다. 경고등이 켜졌는데 정비소에 갈 시간이 없다. 그냥 계속 운전한다. 언젠가 멈출 때까지. 에너지 드링크로 버티기 커피는 하루 3잔이다. 아침, 점심, 오후. 근데 그걸로 안 된다. 그래서 에너지 드링크를 마신다. 핫식스, 레드불, 몬스터. 다 마셔봤다. 요즘은 편의점 PB 제품. 1000원이라 부담 없다. 하루 2캔 정도. 오후 3시에 하나, 저녁 8시에 하나. 처음에는 효과가 있었다. 머리가 깨고 집중이 됐다. 근데 이제는 안 마시면 머리가 안 돌아간다. 카페인 의존이다. 알고 있다. 근데 끊을 수 없다. 끊으면 일을 못 하니까. 간기능 검사에서 지적받았다. 수치가 조금 높다고. 에너지 드링크랑 불규칙한 식사 때문일 거라고. 의사가 물었다. "에너지 드링크 자주 드세요?" "네. 하루 2캔요." "줄이셔야겠어요. 간에 부담이 갑니다." "네..." 근데 안 줄었다. 못 줄인다. 이거 안 마시면 오후 3시부터 멍해진다. 동료들 보면 다들 마신다. 스타트업 개발자들 책상에 에너지 드링크 없는 곳 없다. 이게 이 업계 연료다. 건강에 안 좋은 거 안다. 근데 대안이 없다. 잠을 더 자거나 스트레스를 줄이면 되는데, 그게 안 되니까 이걸 마시는 거다. 속 쓰림의 일상 위내시경 권고를 받았다. 속 쓰림 항목에 체크했더니. 속이 쓰리다. 아침에 일어나면 쓰리고, 점심 먹고 나면 쓰리고, 저녁에도 쓰리다. 공복이어도 쓰리고 식사 후에도 쓰리다. 커피 마시면 더 쓰리다. 근데 커피는 마셔야 한다. 약을 산다. 편의점에서 파는 소화제, 제산제. 가방에 항상 들고 다닌다. 효과는 있다. 30분 정도는. 그다음에 또 쓰리면 또 먹는다. 하루에 3~4번 먹는 것 같다. 식후 30분에 1정이라는데 지키지 못한다. 쓰리면 그냥 먹는다. 왜 쓰린지 안다. 불규칙한 식사, 스트레스, 카페인, 수면 부족. 다 해당된다. 점심을 거르는 날이 많다. 정신없어서. 오후 4시에 '아, 점심 안 먹었네' 하고 과자 먹는다. 저녁은 먹는다. 근데 9시 넘어서. 야식이 저녁이다. 치킨, 피자, 라면. 빨리 먹을 수 있는 것들. 위내시경 예약도 못 했다. 금식해야 하고 진정제 쓰면 보호자 동반이래. 누굴 데려가지? 가족은 지방이고 친구들은 다 일한다. 그래서 또 안 간다. 약으로 버틴다. 언젠가 진짜 문제 생기기 전까지. 쉴 수 없는 이유들 의사 말대로 쉬면 된다. 이론상으로는. 휴가를 쓰면 된다. 연차가 15일 있다. 근데 한 번도 안 썼다. 왜냐하면:내가 없으면 개발이 멈춘다 개발자가 나 혼자다. 내가 쉬면 그날은 아무것도 안 된다. 기획자도, 디자이너도, 대표님도 나를 기다린다.휴가 가도 일한다 작년에 3일 휴가 냈다. 부모님 뵈러 지방 갔다. 둘째 날 오후에 장애 터졌다. 노트북 안 가져갔다. PC방 가서 고쳤다. 부모님한테 '급한 일'이라고 했다.돌아와서 더 힘들다 쉬고 나면 일이 쌓인다. 슬랙 메시지 100개, 지라 티켓 20개. 하루 쉬면 이틀 치 일이 생긴다.미안하다 스타트업이다. 다들 바쁘다. 나만 쉬면 민폐다. 그런 기분이 든다.반차도 마찬가지다. 오전 반차 내면 오후에 2배로 일하고, 오후 반차 내면 오전에 미리 다 해놔야 한다. 결국 같다. 재택은 더 웃기다. 재택하면 더 일한다. 출퇴근 시간이 없어지니까 그 시간에도 일한다. 점심시간도 짧게 먹고 일한다. 쉬려면 시스템이 바뀌어야 한다. 개발자를 더 뽑거나, 업무량을 줄이거나, 온콜을 나눠 가지거나. 근데 다 안 된다. 채용 예산 없고, 할 일은 계속 생기고, 나눠 가질 사람이 없다. 그래서 못 쉰다. 아니, 안 쉰다. 쉬면 불안하니까. 주변의 반응들 부모님은 걱정하신다. "얼굴이 왜 그래? 많이 피곤해 보인다." "괜찮아요. 원래 이래요." "건강검진은 받았어?" "네. 괜찮대요." (거짓말) 친구들은 알고 있다. "너 진짜 죽겠다." "ㅇㅇ." "이직 안 해?" "해야지. 근데..." "근데?" "여기 나가면 망할 것 같아서." 전 직장 동기들은 비교한다. "나는 요즘 8시 퇴근해. 야근 거의 없어." "좋겠다." "너네는?" "비슷해." (거짓말. 10시 퇴근이다) 대표님은 모르신다. 아니, 아시는데 모른 척하신다. "너무 무리하지 마. 건강이 최우선이야." 그러면서 업무는 계속 준다. '급한데', '간단한 건데', '오늘만'. 나도 받는다. 거절 못 한다. 거절하면 누가 하지? 버티는 이유 왜 버티나. 돈 때문은 아니다. 4800만원. 많지 않다. 대기업 가면 더 받는다. 경력 때문도 아니다. 3년 차에 풀스택. 이력서는 괜찮다. 이직하면 된다. 책임감 때문이다. 이 서비스를 내가 만들었다. 처음부터 지금까지. 모든 코드에 내 손이 갔다. 유저가 1만 명이다. 적지 않다. 이 사람들이 매일 쓴다. 내가 만든 걸. 내가 떠나면 누가 유지보수하지? 대표님? 못 하신다. 신입 뽑아도 몇 달은 걸린다. 그동안 서비스는? 터질 거다. 장애 나도 못 고치고, 기능 추가도 못 하고. 그게 싫다. 내가 만든 게 망가지는 거. 그래서 버틴다. 건강검진 결과 보면서도 '좀만 더'라고 생각한다. 좀만 더 버티면 채용된다. 좀만 더 버티면 시리즈 A 받는다. 좀만 더 버티면 개발팀이 생긴다. 근데 '좀만 더'가 벌써 1년이다. 바뀌지 않는 것들 건강검진 결과를 책상 서랍에 넣었다. 재검사는 안 갈 거다. 시간 없으니까. 수면 시간은 안 늘릴 거다. 일이 있으니까. 스트레스는 안 줄일 거다. 환경이 안 바뀌니까. 에너지 드링크는 계속 마실 거다. 대안이 없으니까. 다 안다. 이렇게 살면 안 된다는 거. 지속 가능하지 않다는 거. 언젠가 문제 생긴다는 거. 근데 지금 당장은 이렇게밖에 못 산다. 의사의 '좀 쉬셔야겠어요'라는 말이 통하지 않는다. 여기서 쉴 수 없으니까. 건강검진 결과는 경고다. 빨간 신호등이다. 근데 나는 브레이크 밟을 수 없다. 뒤에 차가 너무 많으니까. 그래서 계속 간다. 다음 신호등까지. 그게 어디인지는 모른다. 그냥 간다.내년 건강검진에서도 똑같은 결과 나올 것 같다. 아니, 더 나쁠 거다. 근데 뭐 어쩌겠나. 계속 살아야지.
- 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달 후 퇴사하겠습니다." 미안하다. 근데 나는 떠난다.책임감은 덕목이다. 근데 그게 내 인생을 잡아먹게 두면 안 된다.
- 21 Dec, 2025
Figma도 해야 한다고?: 디자이너 역할까지 겸임한 개발자
오늘은 디자이너 월요일 아침이다. 슬랙 메시지가 떴다. "로그인 화면 UI 좀 다듬어주세요. 버튼 색이랑 폰트 크기 조정하고요." 나는 개발자다. 근데 디자인 툴을 켜야 한다. Figma를 열었다. 벌써 세 번째 프로젝트다. 처음엔 "임시로만"이라고 했다. 이제 당연하다는 듯이 요청이 온다. 디자이너는 없다. 예산이 없어서다. 대표님 말씀으로는 "요즘 개발자들은 다 디자인도 하더라고요." 그래. 나도 안다. 풀스택이니까. 프론트도 하고 백엔드도 하고 인프라도 본다. 근데 디자인까지?디자인 시스템이 뭔데 "디자인 시스템 좀 만들어주세요." 기획자가 말했다. 디자인 시스템. 들어는 봤다. 구글링을 했다. Material Design, Ant Design, 여러 레퍼런스가 나왔다. 좋아 보였다. 근데 우리 서비스에는 안 맞는다. 결국 직접 만들어야 한다. 버튼 컴포넌트부터 시작했다. Primary, Secondary, Disabled. 색상은 몇 개? 사이즈는? Border-radius는? CSS 짜는 건 익숙하다. 근데 이게 "예쁜지"는 모르겠다. 대표님한테 물었다. "이거 괜찮나요?" "음... 좀 더 모던하게?" 모던. 그게 뭔데. 유튜브로 디자인 강의를 봤다. "UI/UX 기초", "디자인 시스템 만들기", "색채론 입문". 새벽 2시까지 봤다. 다음날 다시 만들었다. 이번엔 좀 나아 보였다. "좋네요! 이거로 가시죠." 드디어 인정받았다. 근데 기쁘지 않다. 내 일이 또 늘었으니까.컬러는 #무엇 색상을 정해야 한다. Primary 컬러는 뭘로 할까. 파란색? 진부하다. 초록색? 너무 자연 친화적이다. 보라색? 우리 서비스랑 안 맞는다. 색상환을 봤다. HSL 값을 조정했다. H 210, S 80%, L 60%. 괜찮아 보인다. 근데 Accessible 하냐고 물어본다. 뭐가 Accessible 한지 몰랐다. 또 구글링이다. WCAG 2.1 AA 기준. Contrast ratio 4.5:1 이상. 도대체 이게 뭔 소리야. 플러그인을 깔았다. "Stark - Accessibility Checker". 빨간불이 떴다. 명도 대비가 부족하단다. 색상을 다시 조정했다. L 값을 55%로 낮췄다. 이번엔 통과했다. 2시간이 걸렸다. 색상 하나 정하는 데. 아직 Secondary, Error, Warning, Success 색상이 남았다. 저녁 7시다. 배고프다. 근데 일단 끝내고 먹어야 할 것 같다. 아이콘은 어디서 아이콘이 필요하다. 무료 아이콘 사이트를 뒤졌다. Heroicons, Feather Icons, Material Symbols. 다 괜찮다. 근데 통일성이 없다. 어떤 건 라인 스타일, 어떤 건 Solid. 섞으면 이상하다. 직접 만들기로 했다. Figma에서 벡터 도구를 켰다. 사각형 그리고, 원 그리고, 패스 조정하고. 30분 만에 하나 완성했다. 근데 60개가 필요하다. 계산했다. 30분 × 60개 = 1800분 = 30시간. 미쳤다. 결국 타협했다. 기본 아이콘은 라이브러리 쓰고, 커스텀 필요한 것만 만든다. 그래도 15개는 직접 그렸다. 주말 오후가 다 갔다. 친구가 놀자고 연락 왔다. "바빠. 아이콘 그리는 중." "개발자가 왜 아이콘을?" 나도 모르겠다.Typography는 또 뭐야 폰트를 정해야 한다. 본고딕? 나눔스퀘어? Pretendard? Spoqa Han Sans? 각각 테스트해봤다. 다 비슷해 보인다. 근데 미묘하게 다르다. 행간은 얼마? 자간은? Font-weight는 몇 종류 쓸 건데? "글씨가 좀 답답해 보여요." 기획자 피드백이다. 답답하다는 게 뭔 뜻이지. 행간을 1.5에서 1.6으로 올렸다. "오, 좋네요!" 0.1 차이로 답답함이 해소된단다. Heading은 5단계로 나눴다. H1부터 H5까지. 각각 크기를 정하고, weight를 정하고, line-height를 정했다. 반응형도 고려해야 한다. 모바일에서는 H1이 너무 크다. 미디어쿼리를 추가했다. 결국 만들었다. Typography Scale. 근데 쓰는 건 H1, H2, Body 세 개뿐이다. 왜 만들었지. 레이아웃 그리드 "디자인에 그리드를 깔아주세요." 무슨 말인지 알아듣는 데 3초 걸렸다. 그리드. 12컬럼? 16컬럼? Gutter는 몇 픽셀? Material Design 가이드를 참고했다. 12컬럼, 24px gutter. Figma에서 Layout Grid를 설정했다. 빨간 선이 쫙 그어졌다. 이제 컴포넌트를 그리드에 맞춰 배치한다. 정렬이 딱딱 맞으니 괜찮아 보인다. 근데 개발할 때 이거 다 맞춰야 하나. CSS Grid로 구현했다. grid-template-columns: repeat(12, 1fr). 간단하다. 근데 디자인대로 정확히 맞추려면 padding, margin 계산이 빡세다. 밤 11시에 완성했다. 그리드 시스템. 쓸모는 있는 건가. 모르겠다. 이제 개발한다 디자인이 끝났다. 2주 걸렸다. 원래 개발에 쓸 시간이었다. 이제 코드를 짠다. React 컴포넌트로 만든다. Button 컴포넌트. 디자인 시스템대로 구현한다. variant, size, disabled props. Input 컴포넌트. label, error, helperText 다 넣었다. Card, Modal, Dropdown. 하나씩 만들어간다. Storybook도 세팅했다. 컴포넌트 문서화까지. 혼자 만들고 혼자 본다. 코드리뷰 해줄 사람이 없으니까. 3주 차다. 드디어 실제 기능 개발에 들어간다. 로그인 페이지를 만들었다. 디자인한 컴포넌트를 조합했다. 예쁘다. 내가 디자인한 게 화면에 나오니 뿌듯하다. 근데 이거 하나 만드는 데 왜 5주가 걸렸나. 디자이너 구인 공고 "디자이너 뽑을까요?" 대표님한테 조심스럽게 물었다. "아직은 어렵죠. 예산이..." 알고 있었다. "OOO님이 잘해주시잖아요." 나를 칭찬하는 건지 부담 주는 건지 모르겠다. 구인공고는 올렸다. 6개월째 연락이 없다. 스타트업이라 그렇다. 연봉도 낮고 스톡옵션도 의미 없고. 결국 나만 있다. 개발자 겸 디자이너. 이력서에는 뭐라고 쓰지. "UI/UX 가능한 풀스택 개발자"? 웃긴다. 풀스택의 의미 풀스택이 뭔가 했다. 프론트엔드, 백엔드. 그 정도인 줄 알았다. 여기는 다르다. DevOps도 한다. AWS 세팅, Docker 배포, CI/CD 파이프라인. 기획도 돕는다. 요구사항 정리, 유저 플로우 그리기. 이제 디자인도 한다. UI 설계, 컴포넌트 제작, 디자인 시스템. 심지어 CS도 본다. 유저 문의 오면 내가 답한다. 진짜 풀스택이다. Full Stack이 아니라 Full Everything. 월급은 개발자 하나 치인데 일은 다섯 몫이다. 효율적이긴 하다. 소통 비용이 없으니까. 나랑 나랑 얘기하면 되니까. 근데 지친다. 하나에 집중을 못한다. 오늘은 디자인하다가 내일은 백엔드 API 짜다가 모레는 인프라 이슈 해결. 전문성은 어디로 갔나. 이직 고민 이력서를 업데이트했다. "React, Node.js, PostgreSQL, AWS, Docker... 그리고 Figma." Figma를 넣을지 고민했다. 근데 뺄 수가 없다. 실제로 했으니까. 대기업 공고를 봤다. "프론트엔드 개발자", "백엔드 개발자". 분리돼 있다. 디자인은 디자이너가 한다. 당연하다. 여기는 특이한 거다. 면접 가면 뭐라고 설명하지. "디자인 시스템 구축 경험이 있습니다"? 좋게 들릴까. 아니면 "왜 개발자가 그걸?"이라고 할까. 3년 차 개발자. 근데 제대로 된 개발 경험은 얼마나 되나. 기술 부채를 해결할 시간도 없었다. 테스트 코드도 못 짰다. 디자인하느라. 내일도 Figma 내일 할 일을 정리했다.회원가입 플로우 UI 수정 대시보드 차트 컴포넌트 디자인 API 에러 핸들링 개선 프로덕션 배포1번, 2번이 디자인이다. 3번, 4번이 개발이다. 반반이다. 요즘 평균이 이렇다. Figma는 익숙해졌다. 단축키도 외웠다. Auto Layout도 쓴다. 근데 좋아하지는 않는다. 코드가 더 편하다. 로직이 더 재밌다. 그래도 해야 한다. 나밖에 없으니까. "정말 풀스택이 됐다"는 말이 맞다. 원하던 풀스택은 아니지만.Figma 탭을 10개 열고, VS Code 탭도 10개 열고, 그렇게 일한다.
- 16 Dec, 2025
번아웃의 신호: 커밋 메시지가 의미를 잃었다
예전엔 잘 썼다 입사 첫날 커밋 메시지다. feat: 로그인 API 구현 - JWT 토큰 기반 인증 시스템 - refresh token 자동 갱신 로직 추가 - 에러 핸들링 미들웨어 적용자랑스러웠다. 컨벤션도 지켰다. feat, fix, refactor 다 구분했다. 나중에 내가 봐도, 다른 사람이 봐도 알 수 있게. 프로였다. 3개월 전 커밋이다. update뭘 update 했는지 나도 모른다. 지금 git diff 쳐봐도 파일이 12개다. 프론트도 있고 백엔드도 있고 DB 스키마도 바뀌었다. 한 커밋에 다 때려 넣었다. 어제 커밋이다. asdf진짜 asdf다. 손가락이 자동으로 친 거다. 새벽 3시였다. 장애 고치고 배포하는데 메시지 생각할 여유가 없었다. 그냥 push 하면 됐다. 커밋 로그가 내 정신 상태를 기록하고 있다.3개월 차까지는 괜찮았다 입사하고 첫 프로젝트. 사용자 인증 시스템 만들었다. 혼자지만 괜찮았다. 시간도 충분했다. 커밋 하나에 30분씩 걸렸다. 코드 정리하고, 테스트 돌리고, 메시지 쓰고. 브랜치도 제대로 땄다. feature/user-authentication, fix/login-validation. 깔끔했다. 대표님이 좋아하셨다. "개발 프로세스가 체계적이네요." 뿌듯했다. 그때는 업무가 하나였다. 사용자 시스템. 집중할 수 있었다. 오전에 기획 보고, 오후에 개발하고, 저녁에 배포했다. 퇴근은 7시. 주말엔 클린 코드 책 읽었다. 커밋 메시지 작성법도 공부했다. "좋은 커밋 메시지는 미래의 나를 위한 선물이다." 맞는 말이었다. 리팩토링할 때 예전 커밋 보면 무슨 의도였는지 바로 알 수 있었다. 이게 진짜 개발이지, 생각했다. 6개월 차부터 달라졌다. 업무가 쌓이면서 프로젝트가 3개 됐다. 메인 서비스, 어드민 페이지, 외부 API 연동. 다 나 혼자. 기획자가 추가됐다. 좋은 거 아닌가 했다. 아니었다. 요청사항이 3배가 됐다. "이거 급한데요", "내일까지 가능할까요", "간단한 건데". 간단한 거 없었다. 프론트 고치면 백엔드도 고쳐야 했다. API 바꾸면 DB도 바꿔야 했다. 한 기능에 5개 파일 건드렸다. 커밋 하나에 여러 작업이 섞였다. 원래는 안 그래야 한다는 거 안다. 한 커밋엔 하나의 논리적 변경만. 원칙은 알았다. 시간이 없었다. 아침에 시작한 작업을 저녁에 커밋했다. 중간에 긴급 버그 3개 고쳤다. 다 한 커밋에 들어갔다. fix: 로그인 버그 수정 및 대시보드 레이아웃 개선 및 API 응답 속도 개선이게 무슨 커밋이냐. 3개를 한 줄에 썼다. 나도 알았다. 틀렸다는 거. 근데 브랜치 3개 만들고 커밋 나눌 시간이 없었다. 대표님이 "오늘 배포 가능하죠?" 하셨다. 가능했다. 커밋 메시지 대충 쓰면.새벽 2시의 커밋들 장애는 항상 새벽에 터진다. 법칙이다. 슬랙 알림. 오전 2시 17분. 결제 API 500 에러. 일어났다. 노트북 켰다. 로그 확인했다. DB 커넥션 풀 다 찼다. 재시작했다. 임시 조치였다. 근본 원인 찾았다. 커넥션 릴리즈 안 하는 코드 있었다. 고쳤다. 테스트는 못 했다. 새벽 3시였다. 배포했다. 커밋 메시지. fix그냥 fix. 뭘 고쳤는지 안 썼다. 졸렸다. 다시 자고 싶었다. push 하고 침대 갔다. 아침에 일어나서 봤다. 어제 내가 뭘 고쳤더라. 커밋 메시지 봤다. fix. 도움 안 됐다. diff 열어서 코드 봤다. 아, DB 커넥션. 기억났다. "미래의 나를 위한 선물" 어쩌고 했던 책 생각났다. 미안하다, 미래의 나. 새벽 3시의 나는 선물 포장할 여유가 없었다. 이런 커밋이 쌓였다. fix bug update code temp fix quick fix 급한 거 수정 ㅁㄴㅇㄹ마지막 건 자판 잘못 친 거다. 한글 모드였다. 다시 치기 귀찮았다. 그냥 푸시했다. asdf의 등장 처음 asdf 친 날 기억난다. 정확히 기억난다. 3주 전 목요일. 그날 대표님이 "내일 투자 미팅인데 데모 보여줘야 해요"라고 하셨다. 오후 4시에. 데모는 없었다. 만들어야 했다. 프론트 새로 짰다. 기존 거 쓸 수 없었다. 디자인도 없었다. 내가 대충 했다. 백엔드는 기존 API 썼는데 응답 형식이 달랐다. 어댑터 레이어 만들었다. 밤 11시. 70% 됐다. 계속했다. 새벽 1시. 90% 됐다. 거의 다 됐다. 새벽 2시. 작동했다. 배포해야 했다. Docker 빌드. 5분 걸렸다. 기다렸다. AWS 업로드. 3분 더. 기다렸다. 배포 스크립트 돌렸다. 에러. 환경변수 빠졌다. 추가했다. 다시 배포. 성공. 테스트했다. 작동했다. 끝났다. 새벽 2시 40분. 커밋 안 했다는 거 깨달았다. 로컬에 변경사항 수백 개. 스테이징도 안 했다. git add . 쳤다. 다 올라갔다. 커밋 메시지 쳐야 했다. 머리가 안 돌아갔다. 뭐라고 써야 하지. "투자 미팅용 데모 페이지 구현"? 길었다. "데모 구현"? 뭔가 부족했다. 생각이 안 났다. 손가락이 자동으로 asdf 쳤다. 엔터. 푸시. 끝. 침대 갔다. 다음 날 일어나서 커밋 로그 봤다. asdf. 웃겼다. 웃긴데 웃기지 않았다. 내가 이렇게까지 됐구나. 그 뒤로 asdf가 2번 더 나왔다.내 정신 상태의 기록 커밋 히스토리가 그래프다. 내 멘탈 그래프. 입사 초기. 완벽한 메시지들. 올라가는 그래프. 의욕 넘쳤다. 잘하고 싶었다. 프로처럼 일하고 싶었다. 3개월 차. 메시지 길이 줄어들기 시작. 그래프 평평해짐. 바쁘다는 핑계 댔다. 아직 괜찮았다. 6개월 차. "fix bug", "update" 같은 것들. 그래프 내려가기 시작. 시간 없다고 했다. 진짜로 없었다. 지금. "asdf", "ㅁㄴㅇㄹ". 그래프 바닥. 커밋 메시지 신경 쓸 여유가 없다. 코드가 돌아가면 됐다. 기록 같은 건 사치였다. 예전엔 커밋 로그 보는 게 자랑스러웠다. 내 작업의 흔적. 깔끔한 히스토리. 나중에 누가 봐도 이해할 수 있는 기록. 지금은 보기 싫다. 내 추락이 다 기록돼 있다. 1년 전 커밋이랑 지금 커밋 비교하면 웃긴다. 웃긴데 슬프다. 신입이 들어오면 이거 보겠지. "이 사람 왜 이렇게 커밋 메시지를 대충 써요?" 할 거다. 변명할 수 없다. "바빠서요"라고 할까. 맞는 말이다. 근데 변명처럼 들린다. 실제로 변명이긴 하다. 채용 공고에 쓸 수 없는 것들 우리 회사 채용 공고 봤다. 내가 썼다. 대표님이 "개발자니까 개발자가 제일 잘 알지"라고 하셨다. 우대사항: - 클린 코드 작성 능력 - Git 활용 능력 - 코드 리뷰 경험웃긴다. 우리 회사 와서 할 수 있는 게 하나도 없다. 클린 코드? 여기선 작동하는 코드가 최고다. 리팩토링할 시간 없다. 기술 부채? 나중 문제다. 지금 장애 안 나면 됐다. Git 활용? git add . 하고 git commit -m "asdf" 하고 git push. 이게 다다. 브랜치? main 하나. PR? 나 혼자인데 누구한테 리뷰 받나. 코드 리뷰? 혼자 일하는데 리뷰가 있나. 내 코드를 내가 리뷰한다. "이거 맞나?" 물어본다. 대답 없다. 그냥 머지한다. 지원자가 와서 "커밋 컨벤션 어떻게 되나요?" 물으면 뭐라고 하지. "없습니다. 각자 알아서 씁니다." 근데 각자가 나 혼자다. "제가 아무렇게나 씁니다"가 정확하다. "코드 리뷰 프로세스는요?" 물으면. "없습니다." "그럼 QA는요?" "제가 합니다." "테스트 코드는요?" "...시간 나면 씁니다." 안 쓴다는 뜻이다. 채용 공고는 거짓말이다. 우리가 원하는 사람이 아니라 우리가 되고 싶은 사람을 쓴다. 현실은 다르다. 실제 채용 공고에 써야 하는 것들. 필수사항: - 혼자 일하는 거 익숙하신 분 - 커밋 메시지 신경 안 쓰시는 분 - 새벽 3시 배포 가능하신 분 - asdf 이해하시는 분이건 못 쓴다. 아무도 안 온다. 리팩토링하고 싶다 가끔 시간 날 때 옛날 커밋 본다. 6개월 전 거. 제대로 썼던 것들. refactor: 사용자 인증 로직 모듈화 - 인증 미들웨어를 별도 파일로 분리 - JWT 검증 로직 재사용 가능하도록 함수화 - 에러 메시지 일관성 있게 수정이렇게 쓰고 싶다. 지금도. 못 쓴다. 리팩토링하고 싶다. 코드도, 커밋 히스토리도. 다 지우고 처음부터 다시 쓰고 싶다. 제대로 된 구조로. 제대로 된 메시지로. 시간 없다. 신규 기능 개발해야 한다. 버그 고쳐야 한다. 장애 대응해야 한다. 리팩토링은 우선순위 꼴찌다. 대표님한테 말씀드렸다. "기술 부채 정리 시간 좀 주세요." "얼마나 걸려요?" "2주요." "2주 동안 신규 개발 멈춰요?" "...네." "그럼 안 되죠." 끝이다. 논의 끝. 기술 부채는 계속 쌓인다. 커밋 메시지는 계속 대충 쓴다. 악순환이다. 때때로 꿈꾼다. 출근해서 오늘은 리팩토링만 한다. 코드 정리한다. 테스트 작성한다. 커밋 메시지 제대로 쓴다. 브랜치 전략 세운다. 현실은 다르다. 출근하면 슬랙 메시지 30개. "이거 급한데요" 5개. 장애 알림 2개. 리팩토링 시간 없다. 점심시간에 클린 코드 책 펼친다. 2페이지 읽는다. 슬랙 울린다. 책 덮는다. 동기들은 달랐다 대학 동기 모임 갔다. 한 달 전. 다들 개발자 됐다. 친구 A. 네이버. "우리는 코드 리뷰 필수야. PR 올리면 2명 이상 승인받아야 머지돼. 커밋 메시지도 컨벤션 있어서 지키지 않으면 CI에서 막혀." 부러웠다. 시스템이 있다는 게. 친구 B. 카카오. "우리 팀은 페어 프로그래밍해. 한 명이 코딩하면 옆에서 리뷰하면서. 커밋도 같이 작성해." 좋겠다. 혼자 안 해도 되는 게. 친구 C. 쿠팡. "테크 리드가 코드 품질 엄청 보더라. 한 번은 커밋 메시지가 불명확하다고 다시 쓰라고 했어. 짜증 났는데 나중에 보니까 도움 되더라." 내가 말했다. "난 혼자 개발해서 그런 거 없어." 다들 놀랐다. "혼자? 진짜 혼자?" "응. 프론트부터 백엔드, 인프라까지 다." 감탄했다. "대박. 풀스택이네. 배울 게 많겠다." 웃었다. 배우는 게 아니다. 어쩔 수 없이 하는 거다. 집 가는 길에 생각했다. 저 친구들은 성장하고 있다. 리뷰받고, 피드백받고, 제대로 된 프로세스 배우고. 나는? 기술 스택은 넓어졌다. 깊이는 없다. 다 대충 한다. 제대로 하는 게 없다. 커밋 메시지처럼. 새로 온 인턴에게 지난주에 인턴 왔다. 대학생. 방학 동안 경험 쌓으러. 첫날 코드 리뷰 부탁했다. "커밋 로그 좀 볼게요." 봤다. 표정 굳었다. "이게... 다 하신 거예요?" "응." "커밋 메시지가..." 말 끝까지 안 했다. 안 해도 안다. 엉망이다. "바빠서 그래. 원래는 이러면 안 돼." 변명했다. 인턴이 물었다. "그럼 컨벤션 어떻게 되나요? 저도 맞춰서 쓸게요." 대답 못 했다. 컨벤션 없다. "음... 그냥 알아볼 수 있게만 써." 이게 무슨 가이드냐. 인턴 첫 커밋 봤다. feat: 관리자 대시보드 차트 컴포넌트 추가 - Chart.js 라이브러리 적용 - 월별 사용자 증가 추이 시각화 - 반응형 레이아웃 적용완벽했다. 부끄러웠다. 내 최근 커밋. asdf인턴이 나한테 배우러 왔다. 내가 가르쳐줄 게 없다. 나쁜 습관만 가르쳐주게 생겼다. "선배님, 커밋 메시지 왜 중요한가요?" 물었다. "나중에 보면... 뭘 했는지 알 수 있지." 말하면서도 설득력 없었다. 내 커밋 보면 모른다. 나도 모른다. 인턴이 2주 동안 제대로 된 커밋 썼다. 나도 따라 쓰려고 했다. 3일 갔다. 급한 일 생겼다. 다시 "fix", "update". 인턴 마지막 날. "많이 배웠어요." 뭘 배웠을까. 혼자 일하는 법? 커밋 메시지 대충 쓰는 법? 나쁜 것만 배웠을 것 같다. 이직 준비하면서 이직하려고 한다. 결심했다. 이대로는 안 된다. 이력서 썼다. GitHub 링크 넣어야 한다. 고민했다. 커밋 로그 보이는 게. 부끄럽다. Private 레포로 바꿀까 생각했다. 근데 그럼 포트폴리오가 없다. 어쩔 수 없다. 공개한다. 면접 준비했다. 예상 질문 적었다. "Git 워크플로우 어떻게 하시나요?"답: 혼자 main 브랜치에 푸시합니다."커밋 컨벤션은요?"답: 없습니다. asdf 같은 것도 있습니다."코드 리뷰는 어떻게 하시나요?"답: 혼자 일해서 안 합니다.전부 감점이다. 옛날 프로젝트 파기 시작했다. 사이드 프로젝트. 제대로 할 거다. 커밋 메시지 하나하나 신경 써서. 시작했다. React 프로젝트. 첫 커밋. chore: 프로젝트 초기 설정 - CRA로 React 프로젝트 생성 - ESLint, Prettier 설정 - 절대 경로 import 설정기분 좋았다. 이거다. 이렇게 쓰는 거다. 예전 감각 돌아왔다. 2주 했다. 커밋 10개. 다 제대로 썼다. 뿌듯했다. 면접 때 보여줄 수 있겠다. 근데 본업 커밋은 여전히 "fix", "asdf". 분리된 느낌이었다. 사이드는 완벽, 본업은 난장판. 이게 정상인가. 아니다. 알고 있다. 버릴 수 없는 이유 퇴사 고민한다. 맨날 한다. 근데 못 한다. 이유는 간단하다. 나 없으면 여기 돌아가지 않는다. 대표님 의존도 100%. 코드 아는 사람 없다. 서버 구조 아는 사람 없다. DB 스키마 아는 사람 없다. 다 내 머릿속에만 있다. 문서화? 해야 한다는 거 안다. 시간 없다. 개발하기도 바쁘다. 동료가 없다는 게 이런 거다. 대체 불가능해진다. 자랑이 아니다. 올가미다. 퇴사 상상한다. 인수인계 어떻게 하지. 2주로 되나. 한 달 줘도 모자랄 것 같다. 코드 설명해야 한다. 근데 커밋 로그 보면 이해 안 된다. 코드 봐도 이해 안 된다. 주석 없다. 내 머릿속에만 있다. "이 부분은 왜 이렇게 했어요?" 물으면 답해야 한다. "급해서요." 이게 답이다. 전부 그렇다. 책임감 때문에 못 나간다. 여기 나가면 서비스 터진다. 100% 터진다. 새로 온 사람이 파악하는 동안 장애 몇 번 날 거다. 그게 내 책임은 아니다. 알고 있다. 혼자 개발하게 만든 회사 책임이다. 근데 죄책감 든다. 이상하게. 언젠가는 정리할 거다 꿈꾼다. 언젠가 시간 나면. 커밋 히스토리 다시 쓰기. git rebase 로. 메시지 전부 수정. "asdf" 없애기. 의미 있는 메시지로 바꾸기. 브랜치 전략 세우기. feature, develop, main. 제대로 된 워크플로우. PR 만들고 머지하기. 혼자지만. 문서 작성하기. README 제대로. 아키텍처 설명. 왜 이렇게 만들었는지. 다음 사람이 보면 이해할 수 있게. 테스트 코드 작성하기. 유닛 테스트. 통합 테스트. 커버리지 80% 이상. 리팩토링할 때 안심하고 할 수 있게. 리팩토링하기. 기술 부채 청산. 스파게티 코드 정리. 모듈화. 클린 아키텍처. 자랑스러운 코드베이스. 언젠가. 시간 나면. 할 거다. 근데 언제? 모른다. 지금은 아니다. 내일도 아니다. 다음 주도 아니다. 신규 기능 개발해야 한다. 버그 고쳐야 한다. 언젠가는 영원히 오지 않는다. 안다. 근데 위안 삼는다. 언젠가는, 하면서. 커밋 로그는 계속 쌓인다. 의미 없는 메시지들로. 내 추락의 기록이. 신호였다 커밋 메시지는 신호였다. 처음 "update"라고만 쓴 날. 신호였다. 바쁘다는 핑계. 진짜 문제는 시간이 아니었다. 여유가 없었던 거다. 정신적 여유. 처음 "fix"라고만 쓴 날. 신호였다. 뭘 고쳤는지 안 썼다. 귀찮아서가 아니다. 생각할 힘이 없
- 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 문제 같은데요" 한다. 맞다. 나는 바로 안다. 다 해봤으니까. 장점이다. 유일한. 근데 이것만으로는 부족하다. 피곤하다.오늘도 뇌를 돌렸다. 내일도 돌릴 것이다. 언제까지 돌릴 수 있을까.