Showing Posts From
시니어
- 05 Jan, 2026
기술 블로그 구독 리스트, 다 읽지 못한 죄책감
아침 7시, 출근길 지하철지하철에서 폰을 켰다. 알림 167개. Feedly 53개, Medium 42개, 유튜브 72개. 어제 자기 전에 다 읽은 것 같은데. 스크롤을 내렸다. 제목들이 지나간다. "Rust로 시작하는 시스템 프로그래밍" "Next.js 14의 새로운 기능들" "LLM 파인튜닝 실전 가이드" 다 중요해 보인다. 다 읽어야 할 것 같다. 근데 출근하면 회의부터다. 일단 '나중에 읽기'에 추가했다. 나중에 읽기 폴더. 482개. 구독 리스트의 무게 작년 연말에 정리했다. 구독 리스트. "진짜 필요한 것만 남기자"고 다짐했다. 남은 구독:기술 블로그 23개 유튜브 채널 17개 뉴스레터 8개 팟캐스트 5개"줄였다"고 생각했는데. 매일 올라오는 글. 평균 15개. 일주일이면 105개. 한 달이면 450개. 일주일에 10개 읽으면 선방이다. 나머지 95개는 쌓인다.한 달 전에 저장한 글이 있다. "2024년 주목할 프론트엔드 트렌드" 아직 안 읽었다. 벌써 5월이다. 트렌드가 바뀌었을지도 모른다. 회사에서 느끼는 격차 오전 10시. 스탠드업 미팅. 김대리가 말한다. "이번에 Vercel AI SDK 써봤는데요." 나는 고개를 끄덕였다. Vercel AI SDK. 들어본 것 같기도 하고. 며칠 전에 저장한 글이 있었다. "Vercel AI SDK 완벽 가이드" 아직 읽지 않았다. "좋던데요? 박 파트장님도 한번 보세요." "응, 봐야지." 저장 목록에 추가했다. 또. 점심시간. 후배들이 얘기한다. "요즘 Bun 쓰시는 분 있어요?" "저 로컬에서 써봤는데 진짜 빠르더라고요." Bun. 들어봤다. 뭐였지. Node.js 대체재? 아니면 빌드 툴? 구글링했다. 아티클이 쏟아진다. "Why Bun is 3x faster than Node.js" 나중에 읽기에 추가. 483개. 주말의 의식 토요일 오전. 커피를 내렸다. "오늘은 밀린 글 좀 읽어야지." 노트북을 켰다. Notion을 열었다. '읽을 거리' 페이지. 스크롤이 끝없다. 카테고리별로 정리해뒀다.프론트엔드 (78개) 백엔드 (95개) 아키텍처 (62개) DevOps (41개) AI/ML (117개) 커리어 (89개)합계 482개. 어제 하나 더 늘었구나.AI/ML 카테고리부터 보자. 제일 최신 기술이니까. 첫 번째 글. "GPT-4 API 활용 가이드" 작성일: 2023년 4월. 1년 전이다. 이미 GPT-4o 나왔다. 이거 읽어도 되나. 삭제했다. 116개. 두 번째 글. "LangChain 시작하기" 작성일: 2023년 7월. 이것도 옛날이다. 근데 기초니까 읽어야 하나. 일단 놔뒀다. 세 번째 글. "RAG 파이프라인 구축" 작성일: 2024년 1월. 이건 최근이다. 읽어야 한다. 클릭했다. 읽기 시작했다. 5분 지났다. 아들이 들어온다. "아빠 점심 뭐 먹어?" 글을 닫았다. 다시 나중에. 불안의 정체 저녁. 가족들은 TV를 본다. 나는 방에서 폰을 본다. 유튜브 알고리즘이 추천한다. "주니어 개발자가 알아야 할 10가지" "시니어가 되는 법" "45세 개발자의 이직 성공기" 마지막 거 클릭했다. 45세. 나랑 같다. 영상 초반. 그 사람 스펙. "최신 기술 스택 꾸준히 공부했고요." 최신 기술. 나는 Java랑 Spring만. 요즘 애들 쓰는 거. 잘 모른다. 댓글을 봤다. "꾸준함이 답이네요." "저도 매일 기술 블로그 읽어요." 매일. 나도 매일 보긴 한다. 근데 제목만 본다. 내용은 안 읽는다. 구독한 뉴스레터가 왔다. "이번 주 프론트엔드 소식" 열어봤다. 링크가 15개. 좋은 정보들이다. 분명히. 북마크했다. 484개. 월요일 아침, 1on1 김대리와 1on1이다. "요즘 공부하시는 거 있으세요?" 갑자기 긴장된다. "응, 뭐... 이것저것." "저는 요즘 TypeScript 깊게 파고 있어요." "이번에 제네릭 완전 이해했거든요." TypeScript. 나도 쓴다. 근데 제네릭. 쓰긴 하는데 정확히는. 며칠 전에 본 글이 있었다. "TypeScript 제네릭 마스터하기" 읽으려고 저장했다. 2주 전. 아직 안 읽었다. "파트장님은 어떤 거 보세요?" "나는... 아키텍처 쪽?" 사실 아무것도 제대로 못 봤다. 회의하고 코드리뷰하고 나면. 저녁이다. 밤 11시, 침대에서 불을 끄고 누웠다. 폰을 켰다. 습관적으로. Feedly를 열었다. 오늘 새 글 18개. 제목들을 읽었다. "Rust의 소유권 시스템 이해하기" "Docker 컨테이너 최적화 팁" "마이크로서비스 모니터링 전략" 다 좋은 글이다. 분명히. 읽고 싶다. 진짜. 별표를 눌렀다. 저장. 485개. 폰을 내려놨다. 천장을 봤다. 내일은 읽을 수 있을까. 모레는? 목요일 점심, 후배의 질문 식당에서 최주임이 물었다. "파트장님, 이거 어떻게 생각하세요?" 폰을 보여준다. 어떤 기술 블로그 글이다. "이 사람이 Clean Architecture를..." 나는 글을 훑어봤다. 5초 만에 핵심을 파악했다. "음, 맞는 얘기긴 한데." "실무에선 케바케지." 20년 경력의 직관이다. 글을 안 읽어도 안다. 대충. 근데 이게 맞나. 요즘 트렌드는 다를 수도 있다. 내가 놓친 게 있을 수도. "제대로 읽어보고 얘기해줄게." 북마크했다. 486개. 금요일 저녁, 정리 시도 퇴근 30분 전. 정리하기로 했다. Notion 페이지를 열었다. 486개 중에서. 진짜 읽을 것만 남기자. 기준을 정했다.6개월 이상 된 글: 삭제 너무 기초적인 글: 삭제 당장 쓸 일 없는 기술: 삭제클릭 클릭 클릭. 삭제 삭제 삭제. 30분 후. 486개에서 312개로 줄었다. 여전히 많다. 하나씩 카테고리를 봤다. "꼭 읽어야 할 것" 태그를 달았다. 97개가 '꼭'이 됐다. 97개. 한 개당 20분이면. 1940분. 32시간. 주말에 하루 3시간씩 읽으면. 11주. 3개월. 3개월 동안 새 글은 안 나오나. 주말, 아내의 한마디 일요일 아침. 리빙에서 커피를 마신다. 아내가 물었다. "또 공부해?" "응, 밀린 거 좀 봐야 돼." "맨날 밀렸다고 하더라." 맞다. 맨날 밀렸다. "읽어야 하는데 시간이 없어서." "그럼 구독 줄이면 되잖아." 그게 안 된다. 다 필요한 정보다. "요즘 기술이 너무 빨리 바뀌어서." "근데 아빠 회사에서 잘하잖아." "파트장까지 됐는데." 회사에서 잘하는 거랑. 최신 기술 아는 거랑. 다르다. "그래도 계속 공부해야지." 아내는 그냥 웃었다. 월요일, 새로운 프로젝트 회의실. 임원이 말한다. "새 프로젝트 시작합니다." 화면에 기술 스택이 나온다. Java, Spring Boot, React. 익숙하다. 다 아는 것들. "박 파트장님이 리드 맡아주세요." "네." 회의가 끝났다. 사무실로 돌아왔다. Notion을 열었다. '읽을 거리' 312개. React 카테고리를 봤다. "React 18의 새로운 기능" "Suspense 완벽 가이드" "Server Components 이해하기" 읽어야 한다. 이번엔 진짜. 근데 프로젝트는 React 17이다. 회사 표준이 아직 안 바뀌었다. 그럼 이거 지금 읽어야 하나. 화요일, 코드 리뷰 후배가 올린 PR을 봤다. 코드가 깔끔하다. 근데 낯선 패턴이 보인다. 주석을 달았다. "이 부분 설명 좀 해줄래?" 30분 후 답변이 왔다. "아, 이거 Compound Pattern이에요." "Kent C. Dodds 블로그에서 봤어요." Kent C. Dodds. 유명한 사람이다. 나도 구독한다. 그 글 본 것 같기도 하다. 제목은 기억나는데 내용은. "아 그거. 나중에 같이 얘기하자." Feedly를 열었다. 검색했다. "Compound Pattern" 있다. 7개월 전 글. '나중에 읽기'에 있었다. 지금 읽었다. 10분 만에. 좋은 패턴이다. 7개월 전에 읽었으면. 내가 먼저 제안했을 텐데. 수요일, 동기 모임 대학 동기들을 만났다. 다들 IT 업계. 성준이가 말한다. "요즘 AI 대박 아니냐?" "우리 회사 LLM 도입한대." 재현이가 받는다. "우리도. 근데 할루시네이션 문제가." 민석이도 거든다. "RAG로 해결 가능하지 않아?" 다들 술술 얘기한다. LLM, 할루시네이션, RAG. 나도 안다. 개념은. 근데 디테일은. 저장해둔 글이 있다. "LLM 할루시네이션 해결법" "RAG 시스템 구축 가이드" 60개쯤. "박시니어는 어때?" "우리도 검토 중이야." 사실 우리 팀은 아직이다. 개인적으로 관심만 있다. "나도 요즘 공부하는데." 거짓말은 아니다. 글은 모으고 있다. 목요일, 체력의 한계 저녁 8시. 사무실에 혼자 남았다. 오늘은 코딩 좀 하려고. 커피를 마셨다. 세 번째. 코드를 짜기 시작했다. 30분 집중했다. 슬랙 알림. 김대리. "내일 회의 자료 확인 부탁드려요." 문서를 열었다. 검토했다. 20분 지났다. 다시 코딩으로 돌아왔다. 뭐 하고 있었지. 컨텍스트 스위칭. 예전엔 괜찮았는데. 요즘은 힘들다. 9시. 졸리다. 집에 가야겠다. 지하철에서 폰을 켰다. 유튜브 알림 12개. "개발자 생산성 높이는 법" 클릭했다. 10분짜리. 3분 보다가 졸았다. 금요일, 결심 오후 3시. 회의 없는 시간. 결심했다. 지금 당장 하나 읽는다. 뭐든. Notion '읽을 거리'를 열었다. 맨 위부터 보자. "Go 언어 시작하기" 작성일 1년 전. 당장 쓸 일 없다. 패스. "Kubernetes Pod 이해하기" 작성일 8개월 전. 우리 인프라팀이 한다. 패스. "효율적인 코드 리뷰 방법" 작성일 3개월 전. 이거다. 지금 필요한 거. 읽기 시작했다. 5분 후. 노크 소리. "파트장님 잠깐만요." 글을 닫았다. 결국 못 읽었다. 토요일, 깨달음 아침. 커피를 마시며 생각했다. 왜 이렇게 됐을까. 10년 전엔 달랐다. 블로그 글 하나 나오면. 그날 바로 읽었다. 회사 끝나고 스터디도 했다. 주말엔 토이 프로젝트도 했다. 지금은. 글은 모으기만 한다. 읽을 시간은 없다. 그런데. 진짜 시간이 없는 걸까. 아니면 우선순위가 밀린 걸까. 솔직히 말하면. 밤에 유튜브 본다. 1시간. 넷플릭스도 본다. 1시간. 폰으로 뉴스도 본다. 30분. 그 시간에 읽으면 되는데. 근데 그 시간은. 머리를 쓰기 싫은 시간이다. 기술 글은. 집중해서 읽어야 한다. 코드도 따라해야 한다. 퇴근하고 그럴 체력이 없다. 일요일, 실험 오늘은 해보기로 했다. 진짜 읽는 거. 타이머를 켰다. 25분. 포모도로 기법. Notion에서 글 하나 골랐다. "TypeScript 제네릭 마스터하기" 읽기 시작했다. 10분 지났다. 내용이 좋다. 예제도 따라했다. 15분 지났다. 이해가 된다. "아, 이렇게 쓰는 거구나." 25분 끝. 한 글을 다 읽었다. 기분이 좋다. 뭔가 배웠다는 느낌. 312개에서 311개로 줄었다는 성취감. 또 하나 읽었다. "React Hooks 실전 팁" 25분. 완독. 310개. 점심 먹고 또 읽었다. "Docker 컨테이너 최적화" 25분. 완독. 309개. 저녁까지 총 5개 읽었다. 304개 남았다. 월요일, 변화 출근길. 지하철. 폰을 켰다. Feedly 알림 23개. 예전 같으면 다 열어봤다. 오늘은 다르게 했다. 제목만 훑었다. "진짜 필요한가?" 자문했다. 23개 중 3개만 저장했다. 나머지는 '읽은 상태'로 표시. 회사 도착. 304개에서 307개. 3개만 늘었다. 예전엔 20개씩 늘었다. 화요일, 적용 팀 회의. 새 프로젝트 기술 스택 논의. 김대리가 제안한다. "이번엔 TypeScript 제네릭 적극 활용하면 어떨까요?" 나는 대답했다. "좋지. 이렇게 쓰면 되겠네." 주말에 읽은 내용을 설명했다. 구체적으로. 김대리가 놀란다. "오 파트장님 완전 마스터하셨네요." 기분이 좋았다. 읽길 잘했다. 수요일, 재정비 저녁. 집에서 Notion을 열었다. 307개 리스트. 카테고리를 다시 봤다. 솔직해지기로 했다. "AI/ML" 카테고리 117개. 당장 우리 프로젝트엔 안 쓴다. 관심은 있지만 우선순위는 낮다. 폴더를 새로 만들었다. "언젠가 읽을 것" 80개를 옮겼다. "프론트엔드" 카테고리 78개. 나는 백엔드 파트장이다. 알아야 하지만 깊게는 아니다. 50개를 옮겼다. "읽을 거리" 177개로 줄었다. "언젠가" 130개. 177개. 이 정도면 할 만하다. 목요일, 루틴 아침 30분 일찍 출근했다. 회사 카페에서 커피 마시며. 글 하나 읽었다. "효율적인 코드 리뷰" 25분. 완독. 바로 적용 가능한 내용. 점심시간. 밥 먹고 20분 남았다. 짧은 글 하나 읽었다. "Git Rebase vs Merge" 오후 6시. 퇴근 전. 10분 남았다. 짧은 아티클 훑었다. "Java 21 새 기능" 하루 3개. 60분. 176개에서 173개. 늘어나는 속도보다. 읽는 속도가 빠르다. 금요일, 효과 코드 리뷰 시간. 최주임 PR을 봤다. 목요일에 읽은 글. "효율적인 코드 리뷰" 내용이 생각났다. 댓글을 달았다. 구체적으로. 예시와 함께. 최주임 답변. "오 완전 이해했어요. 고맙습니다!" 예전 내 리뷰. "이 부분 수정해주세요." 지금 내 리뷰. "이 부분은 이런 이유로 수정하면 좋을 것 같아요. 예를 들면..." 차이가 느껴진다. 읽은 게 쌓인다. 적용이 된다. 주말, 정산 일요일 저녁. 이번 주를 돌아봤다. 읽은 글: 12개 늘어난 글: 8개 순감소: 4개 173개에서 169개. 천천히 줄고 있다. 그런데 깨달았다. 중요한 건 숫자가 아니다. 12개를 읽었다. 12개에서 뭔가 배웠다. 그게 실력이 됐다. 예전엔. 500개를 모았지만. 0개를 읽었다. 지금은. 169개가 있고. 조금씩 읽는다. 2주 후 Notion '읽을 거리' 142개. 한 달 전 312개에서 거의 반. 매일 23개씩 읽는다. 새로 추가되는 건 하루 12개. 균형이 맞춰지고 있다. 그런데 더 중요한 변화. 회의에서 말이 늘었다. "이런 방법도 있어요." 구체적 근거와 함께. 후배들이 질문한다. 예전엔 얼버무렸다. 지금은 설명한다. 코드가 달라졌다. 읽은 글의 패턴들이. 자연스럽게 손에서 나온다. 한 달 후, 회고 금요일 저녁. 한 달을 정리했다. 읽은 글: 52개 시간: 약 25시간 하루 평균: 50분 50분이면. 유튜브 2편. 넷플릭스 1편. 그걸 글 읽기로 바꿨다. 달라진 것들: 회의 발언권이 생겼다. "요즘은 이렇게 한대요." 근거 있는 의견. 코드 리뷰 품질 올랐다. "이 패턴 괜찮은데요." 구체적 피드백. 후배들 신뢰 느껴진다. "파트장님 의견 듣고 싶어요." 예전엔 형식적 보고. 무엇보다. 불안감이 줄었다. '뒤처지는 거 아냐?' 매일 읽으니까 괜찮다. '다 알아야 하는데.' 다 알 순 없다. 필요한 것만.구독은 줄이지 않았다. 대신 읽는 방법을 바꿨다. 모으기보다 소화하기. 숫자보다 이해하기. 그게 답이었다.
- 28 Dec, 2025
Spring 생태계 20년, 새 기술로 갈아탈 수 있을까
월요일 아침, IDE를 켰다 월요일 아침 9시. IntelliJ를 켰다. 익숙한 Spring Boot 프로젝트가 열렸다. 20년째 보는 화면이다. @RestController @RequestMapping("/api") public class UserController {손이 저절로 움직인다. 타이핑 속도는 여전히 빠르다. 문제는 이게 2025년에도 의미 있는 코드인가. 슬랙에 후배가 물었다. "파트장님, 이번 신규 프로젝트 Nest.js로 해도 될까요?" 나는 3초 고민하다가 답했다. "Spring으로 하자. 우리가 잘 아는 걸로." 창 밖을 봤다. 안전한 선택이었나.전문성이라는 이름의 울타리 작년에 기술 면접관으로 들어갔다. 지원자가 이력서를 냈다. "Spring 5년, Kotlin 3년, Go 2년" 나는 물었다. "Spring은 어떤 버전 쓰셨나요?" "Boot 3.x입니다." "IoC 컨테이너 동작 원리는?" 대답을 잘했다. 그다음 내가 물었다. "그런데 왜 Go를 공부하셨죠?" "MSA 환경에서 경량 서비스 만들려고요." 면접 끝나고 나왔다. 복도에서 생각했다. 나는 Go를 모른다. Kotlin도 프로젝트에서 안 써봤다. 20년 경력이 있다. 하지만 5년 경력자가 아는 걸 나는 모른다. 이게 전문성인가, 고집인가. 저녁에 집에 와서 Go 튜토리얼을 켰다. 30분 보다가 껐다. "내일 회의 준비해야지."후배의 사표 두 달 전이다. 5년차 후배가 사표를 냈다. 잘하는 애였다. 1on1 미팅을 잡았다. "왜 나가려고?" "스타트업 가려고요. Rust 백엔드 포지션이요." 나는 물었다. "여기서도 새 기술 쓸 수 있는데." "파트장님, 솔직히 말씀드려도 될까요?" "그래." "여기선 안 돼요. 레거시가 너무 많아요." "신규 프로젝트 있잖아." "그것도 결국 Spring이잖아요. 파트장님이 잘 아시는 거." 칼이 꽂혔다. 맞는 말이었다. "Rust는 배워봤어?" "주말마다 공부했어요. 6개월." "어려웠겠네." "처음엔 어려웠는데, 재밌더라고요." 후배는 웃었다. 나는 웃지 못했다. 그날 밤 Rust 공식 문서를 열었다. Ownership 개념을 읽었다. 이해가 안 됐다. 30분 후에 탭을 닫았다. "나는 Spring 전문가다." 스스로에게 말했다. 위로인지 변명인지 모르겠다.대학 동기 모임 지난주 토요일. 대학 동기들을 만났다. 다들 40대 중반이다. 최진수는 스타트업 CTO다. "요즘 팀에서 TypeScript 전환했어." "힘들었겠네." "처음엔 그랬지. 근데 지금은 괜찮아." 김태훈은 SI에서 프리랜서로 전향했다. "Python 배워서 데이터 쪽 하고 있어." "Java 20년 했는데?" "그래서 더 바꾼 거야. 이대로면 늙어 죽어." 나만 대기업에 남았다. 나만 Spring만 한다. "너는 뭐 새로 배우는 거 없어?" 진수가 물었다. "Spring WebFlux 공부 중이야." "그거 2017년에 나온 건데." 침묵. 맥주를 마셨다. "전문성이 있잖아. 그게 너 강점이야." 태훈이 위로했다. 고맙지만 씁쓸했다. 전문성이 울타리가 됐다. 안전하지만 좁다. 금요일 저녁, 혼자 남았다 지난주 금요일. 팀원들은 6시에 퇴근했다. 나는 남았다. 핑계는 코드 정리. 실제로는 새 기술 공부였다. Next.js 공식 문서를 열었다. "App Router vs Pages Router" 이게 뭔 소린지 모르겠다. YouTube에서 튜토리얼을 찾았다. 강의자가 20대처럼 보였다. "자, 여러분 이건 진짜 쉬워요!" 나한테는 안 쉬웠다. React 개념도 헷갈린다. Virtual DOM이 뭐였지. 1시간 보다가 포기했다. 다시 Spring 코드를 열었다. 이건 편하다. 눈 감고도 짤 수 있다. 그게 문제다. 창밖을 봤다. 8시였다. 빌딩에 불이 켜져 있었다. 저 안에도 나 같은 사람이 있을까. 20년 경력이 짐처럼 느껴진다. 새로 시작하려면 이걸 내려놔야 한다. 근데 이거 말고 내가 뭘 할 수 있지. 마우스 커서가 깜빡였다. Spring Boot Application.java 익숙한 코드. 저장하고 IntelliJ를 껐다. 내일 생각하자. 선택이 아니라 타협 월요일 아침이다. 또 회의가 있다. 아키텍처 리뷰 미팅. 후배가 제안했다. "이번 프로젝트, MSA로 분리하면서 일부는 Go로 해볼까요?" 팀원들이 쳐다봤다. 내 대답을 기다린다. 3초 생각했다. "Go 할 줄 아는 사람?" 두 명이 손을 들었다. "프로덕션 경험은?" 손이 내려갔다. "리스크가 크다." 내가 말했다. "배포 파이프라인도 새로 짜야 하고." "모니터링도 달라지고." "문제 생기면 대응할 사람이 없어." 맞는 말이다. 합리적인 판단이다. 근데 진짜 이유는 다르다. 나도 모르는 기술이 늘어나는 게 불안하다. 팀을 컨트롤할 수 없게 된다. "Spring으로 갑시다." 내가 결론 냈다. "대신 WebFlux 써보자." 타협이다. 새로운 것처럼 보이지만 결국 Spring이다. 내 울타리 안이다. 회의가 끝났다. 후배들 표정이 아쉬워 보였다. 미안하다. 근데 어쩔 수 없다. 체력이 답이다 새 기술을 배우려면 시간이 필요하다. 시간을 만들려면 체력이 필요하다. 체력은 나이를 이길 수 없다. 단순한 산수다. 20대 후배를 봤다. 낮에 회의하고 개발하고 저녁 먹고 또 개발하고 집 가서 사이드 프로젝트 한다. 주말에 스터디 간다. 나는? 낮에 회의만 5개. 코딩은 저녁 6시부터. 9시 넘으면 집중력 떨어진다. 집 가면 녹초. 주말엔 가족과 시간 보내고 쉰다. 새 기술 공부? 언제 하지. 지난달에 시도했다. 매일 새벽 6시에 일어나서 1시간씩 공부. 일주일 했다. 회사에서 졸았다. 회의 중에 눈이 감겼다. 2주 만에 포기했다. "젊을 때 했어야지." 혼자 중얼거렸다. 근데 젊을 때는 뭐가 중요한지 몰랐다. 체력이 답인데 체력은 돌아오지 않는다. 연봉 9500만원의 무게 현실적으로 계산해봤다. 내가 새 기술로 이직한다고 치자. Go 신입으로 가면? 연봉 4000만원. 반토막이다. 경력을 인정받는다 쳐도 6000만원 받기 힘들다. Go 5년 경력자가 시장에 많다. 나보다 젊고 저렴하다. 지금 집 대출이 3억 남았다. 아들 학원비가 월 150만원. 딸도 내년이면 중학생. 아내는 일 안 한 지 10년. 새로 시작할 여유가 없다. 경제적으로. "돈 때문에 못 바꾸는 거야." 스스로에게 말한다. 맞다. 근데 전부는 아니다. 20년 쌓은 자존심도 있다. "Spring 전문가"라는 타이틀. 컨퍼런스 발표도 했다. 사내에서 인정받는다. 이걸 버리고 신입처럼 시작하는 게 두렵다. 돈도 문제지만 정체성도 문제다. 그래도 키보드를 두드린다 어제 저녁이었다. 아들이 물었다. "아빠, 코딩 가르쳐줘." "뭐 배우고 싶은데?" "파이썬이요. 학교에서 배워요." 나는 파이썬을 잘 모른다. "아빠는 자바를 하는데." "자바는 어려워 보여요." 맞다. 요즘 애들은 파이썬으로 시작한다. 자바는 구식이다. "알았어, 같이 해보자." YouTube를 켰다. 아들과 같이 파이썬 기초를 봤다. print("Hello, World!")쉬웠다. 재미있었다. 아들이 좋아했다. 1시간 후 아들이 말했다. "아빠, 생각보다 코딩이 재미있네요." 그 순간 깨달았다. 새 기술을 배우는 건 처음부터 다시 시작하는 게 아니다. 프로그래밍 사고방식은 그대로다. 문제 해결 능력도 그대로다. 20년 경험도 사라지지 않는다. 문법만 다를 뿐이다. 밤에 혼자 다시 파이썬을 켰다. Flask 튜토리얼을 열었다. Spring과 비슷한 구조다. Routing, Controller, Service. 이해가 됐다. 빨리 됐다. "할 수 있겠는데?" 혼잣말을 했다. 전문성은 프레임워크가 아니다 금요일 오후다. 신입사원 교육을 맡았다. 올해 입사한 애들. 다들 20대 초반이다. "Spring을 왜 배워야 하나요?" 한 명이 물었다. 예전 같으면 이렇게 답했다. "산업 표준이니까." "레거시 시스템 많으니까." "안정적이니까." 근데 어제 답은 달랐다. "안 배워도 돼." 애들이 놀랐다. "진짜요?" "대신 이걸 배워." 화이트보드에 썼다.문제를 작게 나누는 법 의존성을 관리하는 법 테스트 가능한 코드 가독성 있는 구조"이건 프레임워크가 아니야." "프로그래밍 원칙이지." "Spring으로 배우든 Go로 배우든" "Django로 배우든 상관없어." "이게 진짜 전문성이야." 말하면서 깨달았다. 나도 이제 알았다. 20년간 내가 배운 건 Spring이 아니었다. 소프트웨어 개발이었다. 그 원칙은 어떤 언어로든 적용된다. 어떤 프레임워크로든 쓸 수 있다. 내 전문성은 사라지지 않는다. 옷을 갈아입는 것뿐이다. 월요일 아침, 다시 시작 오늘 아침이다. 출근했다. IntelliJ를 켰다. Spring 프로젝트가 열렸다. 익숙하다. 편하다. 그리고 VSCode도 켰다. Go 프로젝트를 만들었다. main.go 비어있는 화면이다. 두렵다. 하지만 도전할 만하다. 점심시간에 후배한테 물었다. "Go 스터디, 나도 들어가도 돼?" "파트장님이요?" "응. 배우고 싶어." 후배가 웃었다. "좋죠. 환영입니다." 오후에 팀 미팅을 했다. "신규 프로젝트 건." "일부는 Go로 해보자." "내가 같이 배울게." 팀원들 표정이 달라졌다. 기대하는 눈빛. "실패할 수도 있어." 솔직하게 말했다. "근데 해보자." 퇴근하고 집에 왔다. 저녁 먹고 노트북을 켰다. Go 공식 문서. 처음부터 차근차근. package mainimport "fmt"func main() { fmt.Println("Hello, World!") }실행했다. 됐다. 작은 시작이다. 20년 경력을 버리는 게 아니다. 20년 경력 위에 하나를 더하는 거다. Spring 전문가에서 개발자로 돌아가는 거다. 선택은 계속된다 다음 주 월요일이 온다. 또 회의가 있을 거다. 또 결정을 내려야 한다. "레거시 유지할까요, 새로 만들까요?" "Spring 쓸까요, 다른 거 쓸까요?" "안전하게 갈까요, 모험할까요?" 정답은 없다. 상황에 따라 다르다. 하지만 이젠 안다. 선택의 기준을. 기술이 아니라 문제를 본다. 프레임워크가 아니라 원칙을 본다. 경력이 아니라 학습을 본다. Spring 20년이 무의미한 게 아니다. 그게 전부가 아닐 뿐이다. 45살이 늦은 게 아니다. 시작 안 하는 게 늦는 거다. 체력이 부족하다. 시간이 부족하다. 여유가 없다. 맞다. 다 맞다. 근데 그래도 한다. 조금씩. 천천히. 새 기술로 갈아탄다는 건 기존을 버리는 게 아니다. 확장하는 거다. 전문성이 족쇄가 될지 날개가 될지는 내가 정한다. 키보드를 두드린다. 오늘도.20년 경력이 무거울 때가 있다. 근데 그게 짐이 될지 자산이 될지는 내 선택이다. Spring도 하고 Go도 배운다. 천천히.
- 26 Dec, 2025
'내가 젊을 때는' 이라는 말을 참아내는 법
"내가 젊을 때는" 입에서 맴도는 순간 회의 중이었다. 신입이 물었다. "파트장님, 이 기능 왜 이렇게 복잡하게 만들어야 하나요?" 입이 근질거렸다. "내가 젊을 때는 이보다 훨씬 복잡한 걸..." 혀끝까지 올라왔다. 삼켰다. "응, 레거시 코드가 그렇게 돼 있어서. 리팩토링하면 좋긴 한데." 무난하게 넘어갔다. 다행이다. 퇴근길 지하철에서 생각했다. 왜 그 말을 참았을까. 사실이긴 한데. 20년 전 내가 짰던 시스템은 지금보다 훨씬 복잡했다. 문서도 없었다. 레퍼런스도 없었다. 스택오버플로우도 없었다. 그냥 책 보고, 야근하고, 부딪히면서 배웠다. 지금 애들은 유튜브에 튜토리얼도 있고, GPT한테 물어보면 코드도 나오고. 그런데 그게 뭐 어쨌다고.참는 게 습관이 됐다 요즘 나는 그 말을 하루에 5번쯤 참는다. "이 정도 야근은..." "옛날엔 주말에도..." "우리 때는 문서 같은 거..." 입 밖으로 나오기 직전에 브레이크 밟는다. 꼰대 되기 싫어서. 점심시간에 후배들이 회사 욕한다. "업무 강도 너무 세요." "야근 많아요." "번아웃 올 것 같아요." 나는 고개만 끄덕인다. "그래, 힘들지." 속으로는 생각한다. 우리 때는 9시 출근 11시 퇴근이 기본이었는데. 주말에도 나왔는데. 그래도 말 안 한다. 말하면 뭐가 달라지나. 그냥 꼰대 소리만 들을 텐데. 1on1 때도 그렇다. 5년차 개발자가 고민을 털어놓는다. "파트장님, 저 기술 스택이 너무 빨리 변해서 따라가기 힘들어요." "응, 나도 그래." 진짜 하고 싶은 말은 다르다. "나는 20년 동안 자바 하나로 먹고 살았어. 너는 5년 만에 벌써 3개 언어 하잖아. 그래도 잘하고 있어." 그런데 그렇게 말하면 또 '옛날 자랑'이 된다. 그냥 짧게 끝낸다. "힘들면 말해. 같이 고민하자."그런데 그 경험이 쓸모없나 어제 코드리뷰 했다. 3년차가 짠 API였다. "이거 트랜잭션 처리 이렇게 하면 동시성 이슈 생길 것 같은데." "아, 그런가요? 테스트는 통과했는데요." "응, 트래픽 적을 때는 괜찮아. 근데 사용자 많아지면..." 설명했다. 10년 전에 내가 똑같이 삽질했던 이야기. 새벽 3시에 장애 터졌던 이야기. 그때 어떻게 해결했는지. "아, 그럴 수도 있겠네요. 감사합니다!" 후배는 고쳤다. 장애는 안 났다. 나는 생각했다. 이게 '내가 젊을 때는' 인가, 아닌가. 경험을 말한 건데. 자랑한 건 아닌데. 실제로 도움이 됐는데. 그런데 왜 찝찝할까. 기술 회의 때도 그렇다. 아키텍처 논의 중이었다. "마이크로서비스로 가는 게 어떨까요?" 젊은 팀장이 제안했다. 다들 좋다고 한다. 트렌드니까. 나는 조심스럽게 물었다. "우리 서비스 규모에서 그게 필요할까? 모노리스로도 충분할 것 같은데." "파트장님, 요즘은 다 MSA로 가는 추세잖아요." "응, 맞아. 근데 우리가 10년 전에 SOA 비슷하게 했다가 운영 지옥이었거든." 말해놓고 후회했다. 또 '10년 전' 얘기했다. 꼰대 됐다. 그런데 결과적으로 우리는 모노리스로 갔다. 6개월 후 다들 '다행'이라고 했다. 내 경험이 도움이 됐다. 그런데 나는 여전히 찝찝했다.선 긋기의 기술 이제는 기준이 생겼다. '내가 젊을 때는'을 말해도 되는 순간이 있다. 말해도 되는 때:구체적 문제에 구체적 해결책이 있을 때 물어봤을 때 실패 경험을 공유할 때"10년 전에 이렇게 했다가 장애 났어. 이렇게 하면 안 돼." 이건 괜찮다. 도움이 된다. 말하면 안 되는 때:요즘 문화를 비판할 때 누가 힘들다고 할 때 내가 더 힘들었다고 말하고 싶을 때"우리 때는 야근을 해도..." 이건 안 된다. 아무도 안 궁금하다. 기준은 간단하다. 이 말이 상대에게 도움이 되나, 아니면 내 자존감만 채우나. 도움이 안 되면 입 닫는다. 세대 차이는 현실이다 그래도 솔직히 말하면. 답답할 때가 있다. 요즘 애들은 9시 출근 6시 퇴근이 당연하다고 생각한다. 주말 출근? 말도 안 된다고 한다. 야근? 보상받아야 한다고 한다. 맞는 말이다. 100% 동의한다. 그런데. 우리는 그렇게 못 살았다. 그게 잘못된 거였다는 걸 이제 안다. 그래서 후배들은 다르게 살면 좋겠다. 근데 가끔 이런 생각도 든다. 우리가 그렇게 야근하고 주말 날려서, 지금 이 회사가 있는 거 아닌가. 지금 애들이 9시 6시 할 수 있는 것도, 우리가 시스템 다 만들어놨기 때문 아닌가. 이런 생각 하면 꼰대다. 아는데. 그래도 가끔 든다. 팀원이 야근 싫다고 한다. "알겠어, 내일 하자." 라고 한다. 그리고 내가 밤 10시까지 남아서 한다. 이게 맞나 싶다. 후배들은 워라밸 지킨다. 나는 파트장이라서 책임진다. 이게 공평한가. 그런데 뭐 어쩌겠나. 세대가 다르다. 시대가 바뀌었다. 나도 적응해야 한다. 결국 참는 게 맞다 생각해봤다. 정말 많이. 내 경험은 소중하다. 20년이 헛되지 않다. 실제로 도움이 될 때도 많다. 그런데 그걸 '내가 젊을 때는'이라는 문장으로 시작하는 순간, 다 망한다. 상대는 듣고 싶지 않다. 비교당하고 싶지 않다. 평가받고 싶지 않다. 그냥 지금 문제를 같이 풀고 싶을 뿐이다. 그래서 나는 문장을 바꿨다. "내가 젊을 때는" → "예전에 비슷한 경험이 있는데" "우리 때는" → "이런 경우도 있었어" "요즘 애들은" → 아예 안 함 조금 돌아가는 것 같지만, 이게 맞다. 어차피 전달하고 싶은 건 경험이지, 비교가 아니니까. 회의 중이다. 또 신입이 물었다. "이거 왜 이렇게 복잡해요?" "옛날 코드가 그래. 근데 최근에 비슷한 케이스 리팩토링한 적 있어. 같이 보자." 이렇게 말했다. 신입이 고맙다고 한다. 입에서 맴돌던 말은 그냥 삼켰다. "내가 젊을 때는 이보다 훨씬..." 삼키는 게 습관이 됐다. 나쁘지 않다. 때로는 말해야 할 때도 그런데 가끔은 말한다. 후배가 번아웃으로 힘들어한다. "그만두고 싶어요." 이럴 때는 말한다. "나도 8년차 때 그랬어. 진짜 그만둘 뻔했어. 그때..." 경험을 공유한다. 내가 어떻게 이겨냈는지. 뭐가 도움이 됐는지. 이건 '내가 젊을 때는'이 아니다. 그냥 선배로서 도움이다. 신입이 실수로 장애 냈다. 새벽 2시에 전화 왔다. 울먹인다. "파트장님, 죄송해요. 제가..." "괜찮아. 나도 5년차 때 DB 날린 적 있어. 그것보단 낫다." 실패 경험을 말한다. 완벽하지 않았던 나를 보여준다. 후배는 조금 안심한다. "정말요?" "진짜다. 같이 복구하자." 이런 건 말해도 된다. 아니, 말해야 한다. 기준은 여전히 같다. 이 말이 상대에게 도움이 되나. 도움이 된다면, '내가 젊을 때는'도 괜찮다. 나이 듦을 받아들이기 45살이다. 개발 20년 했다. 후배들은 나를 보고 '경력자'라고 한다. 예의상 '선배님'이라고 한다. 실제로는 '꼰대 되기 직전'이라고 생각할 것 같다. 맞다. 나도 그렇게 생각한다. 나는 젊지 않다. 체력도 떨어진다. 최신 기술은 애들이 나보다 더 잘 안다. 그래도 20년은 20년이다. 그 시간이 무의미하지 않다. 경험은 쌓였다. 실패도 많이 했다. 성공도 했다. 그걸 잘 전달하는 게 내 역할이다. 우쭐대지 않고, 비교하지 않고, 도움이 되게. "내가 젊을 때는"이라는 말을 참는 게 아니라, 더 나은 문장으로 바꾸는 거다. 그게 진짜 시니어 개발자다. 꼰대는 경험을 무기로 쓴다. 시니어는 경험을 도구로 쓴다. 나는 시니어가 되고 싶다. 오늘도 참았다 퇴근길이다. 피곤하다. 오늘도 "내가 젊을 때는"을 4번쯤 참았다. 대신 후배한테 이렇게 말했다. "예전에 이런 적 있었어. 이렇게 해봐." 후배는 고맙다고 했다. 도움이 됐다고 했다. 집에 왔다. 맥주 한 캔 땄다. 나쁘지 않은 하루다. 내일도 참을 것 같다. 괜찮다. 익숙해졌다. 그리고 가끔은, 정말 필요할 때는, 말할 것이다. "내가 젊을 때는" 대신, "내 경험으로는"이라고.20년 경력은 무기가 아니라 나침반이다. 방향만 알려주면 된다.
- 21 Dec, 2025
Kotlin, Next.js, Rust - 배워야 한다는 강박
월요일 오전, Slack 알림 출근했다. 메일 51개. Slack 127개. 제일 위에 있는 메시지. 김대리가 올린 거다. "파트장님, 신규 프로젝트 코틀린으로 해도 될까요? 스프링부트 3.2 새로 나왔는데 코틀린 지원이 훨씬 좋아졌다고..." 읽었다. 답장은 안 했다. 일단 커피부터 마셨다.코틀린. 작년에도 배우겠다고 마음먹었다. 재작년에도 그랬다. Java로 20년 먹고살았다. 문제없이 잘 돌아간다. 근데 요즘 채용공고 보면 코틀린이 기본이다. "Java/Kotlin 가능자" 아니라 "Kotlin 우대"다. 우대가 아니라 필수처럼 보인다. 점심시간, 후배들 대화 구내식당이다. 김대리, 박주임, 최대리가 앉아있다. 나도 끼었다. "요즘 뭐 공부해?" 물었더니 셋이서 떠든다. "저는 Next.js 14 배우고 있어요. App Router 완전 달라졌거든요." "저는 Rust요. 메모리 안전성이 장난 아니래요." "저도 Rust 관심 있는데, 러닝커브가..."밥 먹으면서 고개만 끄덕였다. Next.js가 뭔지는 안다. React 프레임워크다. SSR 한다. 그 정도는 안다. 근데 App Router? Pages Router랑 뭐가 다른 건지 모른다. Rust는 들어만 봤다. C++ 대체재라던데. 메모리 관리를 컴파일러가 한다고. 배우고 싶다. 진짜로. 근데 언제? 오후 2시, 회의실 기획팀이랑 미팅이다. 새 프로젝트 킥오프. 앱 리뉴얼. "프론트엔드 스택 어떻게 갈까요?" 기획팀장이 물었다. 김대리가 바로 대답한다. "Next.js 14 어떨까요? 성능 개선도 많이 됐고, SEO도 좋고..." 다들 고개 끄덕인다. 나도 끄덕였다. "좋지. 그렇게 가자." 회의 끝났다. 30분.회의실 나오면서 생각했다. 'Next.js 14. 나 써본 적 없는데.' 김대리는 이미 개인 프로젝트로 써봤다고 했다. 주말에. 나도 주말에 뭐 했나 생각해봤다. 토요일은 아들 학원 데려다주고. 일요일은 처가 다녀왔다. 공부? 못 했다. 오후 6시, 코드리뷰 김대리가 PR 올렸다. 코틀린으로 짠 샘플 코드다. "파트장님 리뷰 부탁드려요~" 클릭했다. data class User( val id: Long, val name: String, val email: String? )fun findUser(id: Long): User? { return userRepository.findById(id) .orElse(null) }읽었다. 이해는 된다. data class. 자바 Record 비슷한 거다. 물음표는 nullable. 자바 Optional 같은 거. 근데 이게 좋은 코드인지, 코틀린답게 짠 건지는 모르겠다. "LGTM" 달았다. Looks Good To Me. 그리고 생각했다. '나 지금 제대로 리뷰한 거 맞나?' 오후 8시, 혼자 남은 사무실 다들 퇴근했다. 나만 남았다. IDE 켰다. IntelliJ. "코틀린 시작하기" 검색했다. 공식 문서 열었다. 영어다. 읽기 시작했다. 10분 지났다. Slack 알림. 기획팀장이다. "파트장님, 내일 오전 회의 하나 잡아도 될까요?" "네, 괜찮습니다." 문서 닫았다. 다시 열 생각 안 난다. 집에 가야지. 내일 또 회의 있다. 2개. 목요일 저녁, 유튜브 집이다. 침대에 누웠다. 유튜브 추천 영상. "Rust 10분 만에 시작하기" "Next.js 14 완벽 가이드" "코틀린 vs 자바, 5분 비교" 다 봤다. 20분. 이해했나? 아니다. 따라 해야 한다는 건 안다. 근데 노트북 켤 기운이 없다. 내일 하자. 금요일이니까 여유 있겠지. 금요일 됐다. 회의 3개 있었다. 못 했다. 토요일 오전, 서재 일어났다. 9시. 커피 마셨다. "오늘은 공부 좀 하자." 노트북 켰다. 코틀린부터. 기초부터 차근차근. 30분 지났다. 아들이 방문 열었다. "아빠, 롤 듀오 ㄱ?" "아빠 공부 중이야." "에이~ 한 판만~" 같이 했다. 한 판이 세 판 됐다. 점심 먹었다. 12시 반. 오후에 하자. 오후에 장 봐야 한다고 아내가 말했다. 같이 갔다. 3시간. 저녁 먹고, 설거지하고, 9시. 또 노트북 켰다. "이번엔 진짜." Next.js 공식 문서 열었다. Tutorial 따라 했다. npx create-next-app@latest 설치하는 데 10분. 코드 따라 치기 시작했다. 에러 났다. 버전이 안 맞는다. 구글링했다. 스택오버플로우 10개 탭 열었다. 해결했다. 근데 이게 뭘 하는 코드인지 모르겠다. 'use client'가 뭐지? Server Component? Client Component? React 18부터 바뀌었다는데. React도 다시 공부해야 하나? 시계 봤다. 11시 반. 내일 일요일이긴 한데. 피곤하다. "내일 하자." 노트북 껐다. 일요일, 침대 일어났다. 10시. 처가 가는 날이다. 차 타고 2시간. 장인어른이랑 소주 마셨다. "요즘 일은 어때?" "바쁩니다." "개발자는 평생 공부해야 한다며?" "...네." 돌아왔다. 8시. 씻고 누웠다. 내일 월요일이다. 코틀린, Next.js, Rust. 하나도 못 배웠다. 월요일 아침, 또 출근 Slack 켰다. 박주임이 글 올렸다. "주말에 Rust로 간단한 CLI 툴 만들어봤어요! 재밌네요 ㅎㅎ" GitHub 링크 달려있다. 클릭했다. 코드 봤다. fn main() { let args: Vec<String> = env::args().collect(); println!("Hello, {}!", args[1]); }이해 안 된다. Vec가 뭐지. collect가 뭐지. 구글링하려다가. "파트장님, 10시 회의 준비 부탁드려요!" Slack 알림. 검색창 닫았다. 회의 자료 만들었다. 1시간. 회의 했다. 1시간 반. 점심 먹었다. 구내식당. 후배들 또 기술 얘기한다. "Bun 써보셨어요? npm보다 엄청 빠르대요." Bun? 그게 뭐지. 검색했다. JavaScript 런타임이다. Node.js 대체재. "아, 그거. 나중에 써봐야지." 대답했다. 나중은 언제인가. 수요일 저녁, 1on1 김대리랑 1on1이다. 회의실 잡았다. 둘이. "요즘 어때? 일은?" "재밌어요. 새로운 거 많이 배우고 있어서." "좋네. 뭐 배우는데?" "코틀린이랑 Next.js요. 집에서 사이드 프로젝트 하면서 익히는 중이에요." "시간 어떻게 내?" "퇴근하고 두세 시간씩요. 주말엔 더 하고." "...대단하네." 침묵. "파트장님은 요즘 뭐 공부하세요?" 물어봤다. "나? 나도... 뭐 이것저것." 구체적으로 말 못 했다. 배운 게 없으니까. 목요일 밤, 침대에서 누웠다. 핸드폰 켰다. 링크드인 열었다. 피드에 글들 올라온다. "Rust로 만든 서버, Go보다 30% 빠름" "Next.js 14 마이그레이션 완료, 개발 생산성 2배" "코틀린 도입 후 코드량 40% 감소" 다 20대, 30대 초반이다. 나? 45세. Java, Spring 20년. 그것만 한다. 스크롤 내렸다. "40대 시니어 개발자를 위한 커리어 전환" 클릭했다. 읽었다. "관리직으로 가거나, 아키텍트로 가거나." 둘 다 코딩 못 한다는 뜻이다. 껐다. 잠 안 온다. 금요일 오후, 기술 면접 채용 면접이다. 신입이 아니라 경력직. 3년차. 이력서 봤다. Java, Kotlin, Spring Boot, React, Next.js. 다 쓴다고 했다. 면접 시작했다. "코틀린 주로 어떻게 활용하셨나요?" 지원자가 대답한다. "data class로 보일러플레이트 줄이고, sealed class로 상태 관리하고, coroutine으로 비동기 처리했습니다." 고개 끄덕였다. 이해는 된다. 근데 sealed class가 정확히 뭔지는 모른다. "Next.js는요?" "13버전 때 App Router 써봤고, 14에서 Server Actions 활용해서 API 레이어 줄였습니다." 또 끄덕였다. Server Actions. 처음 듣는다. 옆에 앉은 김대리가 질문한다. "Suspense Boundary 어떻게 설계하셨어요?" 지원자가 자세히 대답한다. 나는 듣기만 했다. 면접 끝났다. "어떠셨어요?" 김대리가 물었다. "좋은 것 같은데. 너가 판단해." 대답했다. 사실은 내가 판단 못 한다. 그날 밤, 서재 집에 왔다. 저녁 먹고, 9시. 서재 들어갔다. 문 닫았다. 노트북 켰다. "오늘은 정말 한다." 코틀린 IntelliJ 프로젝트 만들었다. Tutorial 따라 했다. fun main() { println("Hello, Kotlin!") } 실행했다. 됐다. 다음 단계. 변수 선언. val, var. 함수 선언. fun. 클래스 선언. class, data class. 따라 쳤다. 30분. 이해했나? 조금. 근데 이걸 언제 다 배우지. 공식 문서 스크롤 내렸다. Coroutines, Flow, Sealed Classes, Extension Functions... 페이지가 끝없다. 시계 봤다. 10시. 내일 토요일이긴 한데. 피곤하다. 또. "내일 이어서." 저장하고 껐다. 토요일 아침, 현실 일어났다. 아내가 말했다. "오늘 애들 학원 데려다줘야 해." "알았어." "그리고 저녁에 친구 부부 온대." "...응." 공부 시간? 없다. 일요일? 부모님 뵈러 가는 날이다. 다음 주? 회의 12개 잡혀있다. 언제 하지. 진짜 언제. 월요일 오전, 마음의 거리 출근했다. Slack 열었다. 최대리가 올렸다. "주말에 Tauri 써봤는데 Electron보다 가볍네요!" Tauri. 또 모르는 거다. 검색했다. Rust로 만든 데스크톱 앱 프레임워크. Rust 배워야 쓸 수 있다. 창 닫았다. 김대리가 다가왔다. "파트장님, 코틀린 괜찮죠?" "어, 좋지." "그럼 다음 프로젝트 코틀린으로 갈게요!" "...그래." 괜찮은지 모른다. 사실. 근데 막을 이유도 없다. 후배들이 하고 싶어 하니까. 나? 나는 코드리뷰나 하면 된다. LGTM만 달면 된다. 그게 파트장 일이다. 그렇게 생각하기로 했다. 수요일 점심, 동기 만남 대학 동기 만났다. 삼성 다니는 친구다. "너 요즘 뭐 해?" "바빠. 넌?" "나도. 근데 너 코딩 아직 해?" "당연하지. 넌?" "나 작년부터 안 해. 관리만." "어떤데?" "편하긴 한데... 뭔가 찝찝해." "나도." 둘 다 웃었다. "요즘 애들 뭐 쓰냐?" "코틀린, 넥스트, 러스트." "배워?" "못 배워. 넌?" "나도." 또 웃었다. 웃긴데 슬프다. 금요일 저녁, 퇴근길 9시 퇴근이다. 지하철 탔다. 핸드폰 켰다. 유튜브 열었다. "코틀린 기초 강의 1화" 저장했다. "나중에 봐야지." 저장 목록 열었다. 197개 영상. 다 안 본 거다. "나중에 보기"가 "영원히 안 보기"다. 알고 있다. 창 닫았다. 집 도착했다. 씻고 누웠다. 내일 토요일. 이번엔 정말 공부해야지. 근데 될까? 모르겠다. 그다음 주 월요일, 반복 출근했다. 또 Slack. 박주임이 올렸다. "Svelte 5 나왔네요! 신택스 완전 바뀌었어요!" Svelte. 프론트엔드 프레임워크. React, Vue 말고 또 다른 거. 배워야 하나? 아니. 못 배운다. 이미 밀린 게 세 개다. 네 개는 못 한다. 답장 안 했다. 읽음만 표시됐다. 목요일 오후, CTO와 면담 CTO가 불렀다. 임원이다. 50대. "박 파트장, 요즘 팀 분위기 어때?" "좋습니다." "기술 스택은?" "후배들이 잘 선정하고 있습니다." "자네는?" "...저는 관리하고 있습니다." "코딩은?" "가끔 합니다." 거짓말이다. 거의 안 한다. "나도 그랬어. 40대 되면 그래." CTO가 웃었다. 위로인가 싶었는데. "근데 기술은 계속 봐야 해. 안 그러면 후배들이랑 대화가 안 돼." "...네." "나 요즘 주말에 공부해. ChatGPT API 써보고 있어." "대단하십니다." "자네도 해. 시간 내." "노력하겠습니다." 나왔다. CTO는 50대인데 공부한다. 나는 45인데 못 한다. 뭐가 문제일까. 시간? 의지? 체력? 다인 것 같다. 금요일 밤, 혼자 앉아서 집이다. 11시. 다들 잤다. 나만 깨어있다. 노트북 앞에 앉았다. 코틀린 프로젝트 열었다. 지난주에 만든 거다. 코드 몇 줄 있다. 이어서 쓰려고 했다. 근데 뭘 쓰지? Tutorial 다시 열었다. 5분 읽었다. 졸리다. 커피 마셨다. 10분 더 읽었다. 내용이 안 들어온다. 머리가 안 돌아간다. "내일 하자." 또. 내일, 내일, 내일. 항상 내일이다. 근데 내일 오면 또 못 한다. 그다음 날, 토요일 낮 일어났다. 10시. 씻고 커피 마셨다. "오늘은 진짜." 서재 들어갔다. 노트북 켰다. Rust 설치했다. rustup. 설치만 30분. "Hello, World!" 예제 따라 했다. 됐다. 다음은? 공식 문서 The Book 열었다. 챕터 1. 시작하기. 읽었다. 이해했다. 챕터 2. Guessing Game. 따라 쳤다. 에러 났다. 해결했다. 챕터 3. 변수와... 문 열렸다. "아빠 심심해." 딸이다. "아빠 공부 중이야." "뭐 공부?" "컴퓨터." "나도 할래!" 무릎에 앉았다. 같이 봤다. "이게 뭐야?" "코드라는 거야." "재미없어." 5분 만에 나갔다. 다시 책 열었다. 어디까지 봤지? 챕터 3. 아, 여기. 10분 읽었다. 배고프다. 점심 먹어야지. 시계 봤다. 12시. 오후에 하자. 오후엔 아들이 PC방 가자고 했다. 같이 갔다. 두 시간. 돌아와서 4시. 피곤하다. 소파에 누웠다. 눈 감았다. 깼다. 7시. 저녁 먹었다. 9시. 노트북 다시 켰다. Rust 챕터 3. 읽다가 챕터 1 내용 기억 안 나서 다시 봤다. 11시. 또 졸리다. "내일." 일요일, 포기하는 순간 일어났다. 노트북 안 켰다. 가족이랑 영화 봤다. 저녁 먹고 산책했다. 공부 생각 안 났다. 아니, 안 하기로 했다. 오늘 하루는. 하루쯤은 괜찮다. 그렇게 생각했다. 근데 마음 한구석이 불편하다. '나 뒤처지는 거 아냐?' 이 생각. 떨쳐지지 않는다. 다음 주 수요일, 회의에서 프로젝트 회의다. 김대리가 발표한다. "코틀린으로 전환하면서 null safety 확보하고, coroutine으로 비동기 처리 개선했습니다." "보일러플레이트 코드 30% 감소했고요." "테스트 코드도 더 간결해졌습니다." 다들 박수. 나도 쳤다. "잘했어." 말했다. 속으로 생각했다. '나 저거 하나도 못 짜.' 목요일 저녁, 기술 블로그 퇴근하고 집. 저녁 먹고 핸드폰 봤다. 기술 블로그 구독한 거 있다. 새 글 알림 왔다. "45세 개발자의 Rust 학습기" 클릭했다. 읽었다. "저도 배우기 힘들었습니다. 하지만 매일 30분씩, 3개월 했더니 어느새 프로젝트를 만들고 있었습니다." 매일 30분. 나도 할 수 있을 것 같다. 아니. 못 한다. 지난 한 달 돌아봤다. 제대로 공부한 날? 없다. 30분? 10분도 못 했다. 블로그 닫았다. 금요일 밤, 솔직해지는 시간 혼자 앉아있다. 맥주 마셨다. 생각했다. 나 왜 못 배우지? 시간이 없어서? 아니다. 시간은 있다. 주말 이틀. 하루 2시간만 써도 4시간. 한 달이면 16시간. Tutorial 하나는 끝낸다. 근데 못 한다. 왜? 피곤해서? 맞다. 피곤하다. 근데 후배들도 피곤하다. 김대리도 야근한다. 근데 공부한다. 뭐가 다른가? 나이? 체력? 그것도 있다. 근데 진짜 이유는. 동기부여. 없다. 배워야 하는 이유가 약하다. 지금도 잘 먹고 산다. 연봉 9500. 코틀린 못 해도 파트장이다. Rust 못 해도 아무도 뭐라 안 한다. Next.js 몰라도 회의는 주재한다. 문제없다. 당장은. 그게 문제다. 다음 주 월요일, 채용공고 점심시간. 링크드인 봤다. 채용공고 떴다. "Senior Backend Engineer" 클릭했다. 자격요건 봤다. "Kotlin, Spring Boot, Microservices" "Cloud: AWS, GCP" "Containerization: Docker, Kubernetes" "Message Queue: Kafka, RabbitMQ" 다 아는 단어다. 근데 다 못 한다. Spring Boot? 한다. Kotlin? 못 한다. AWS? 조금. Kubernetes? 들어만 봤다. Kafka? 개념만. 50%도 못 채운다. 우대사항 봤다.
- 14 Dec, 2025
결혼 15년차, 아내가 전업주부인 세상은 여전한가
월급날의 무게 월급날이다. 통장에 650만원이 찍혔다. 세전 9500만원의 12분의 1. 웃긴 건 이 돈이 내 돈이 아니라는 거다. 관리비 62만원, 대출 이자 180만원, 생활비 250만원, 학원비 120만원. 계산기 두드리면 남는 건 고작이다. 아내한테 카톡 보냈다. "들어왔어." 답장은 없다. 읽음 표시만. 15년 전엔 이렇지 않았다. 맞벌이였으니까. 아내도 개발자였다. 우리 연봉 합치면 1억 2천이었다. 둘 다 야근하고, 주말엔 같이 카페 가서 코딩했다. 아들 낳고 1년 후 아내가 말했다. "나 그만둘까 봐." 나는 대답 못 했다. 육아휴직 끝나고 복직했는데 아이가 아프면 늘 아내가 조퇴했다. 회의 중에 어린이집에서 전화 오면 아내 얼굴이 굳었다. 6개월 버티다가 퇴사했다. 그때부터다. 내가 가족의 '전부'가 된 게.커리어 선택이 내 것이 아닐 때 작년에 스타트업에서 연락 왔다. CTO 제안이었다. 연봉은 비슷한데 스톡옵션 있다고. 기술도 재미있어 보였다. Rust, Kubernetes, 요즘 핫한 거 다 쓴다고. 저녁에 아내한테 얘기했다. "스타트업에서 제안이 왔어." 아내 표정이 굳었다. "망하면?" 나는 말 못 했다. 스타트업 5년 생존율이 30%라는 거. 우리 둘 다 안다. "애들 학원비만 해도 120이야. 대출 이자는 180이고." 맞는 말이다. 틀린 말도 아니다. 거절했다. 메일 쓰는 데 2시간 걸렸다. "가족 사정상" 이라고 썼다. 진짜 이유는 안 썼다. '내가 무너지면 집이 무너져서'라고. 40대 후배가 그 회사로 갔다. 지금 잘 되고 있다. 페이스북에 신기술 자랑한다. 부럽다. 솔직히 말하면. 나는 대기업 IT 자회사에서 20년째다. 안정적이다. 망하진 않는다. 그런데 재미는 없다. 레거시 코드 유지보수하고, 회의하고, 보고서 쓴다. 이게 내가 원한 개발자 인생인가. 모르겠다.8명의 무게 파트장 달았다. 팀원 8명. 이게 영광인지 족쇄인지. 매주 월요일 1on1 한다. 8번. 한 명당 30분. 4시간. 오전이 사라진다. 28살 신입이 물었다. "파트장님, 저 이직 고민인데요." 속으로 생각했다. '가라. 젊을 때 가.' 입으로는 다르게 말했다. "왜? 여기 안 좋아?" "아뇨. 그냥 새로운 거 해보고 싶어서요." 부럽다. 이직이 '하고 싶어서' 하는 거면. 나는 '할 수 없어서' 못 하는데. 32살 기혼 팀원도 고민 상담했다. "파트장님은 어떻게 하세요? 커리어랑 가정." 나는 웃었다. "글쎄. 나도 모르겠어." 솔직하게 말했어야 했다. '선택 못 해. 가정 때문에.' 그런데 그 말이 안 나왔다. 팀원들 연봉 협상도 내가 한다. 올해 인상률 3%. 8명 중 6명이 불만이다. 당연하다. 나도 불만이니까. 상사한테 얘기했다. "팀원들 사기가 떨어져요." "알아. 그래도 예산이 이래." 결국 내가 중간에서 샌드백이다. 위에서는 "팀 관리 잘해", 아래에서는 "연봉 너무 적어요". 코딩이라도 하면 스트레스 풀리는데 그럴 시간도 없다.퇴근길의 계산 퇴근한다. 8시 30분. 야근 아니라고 한다. 우리 팀 기준으로. 지하철 탄다. 앉았다. 핸드폰 본다. 요즘 AI 개발자가 핫하다는 기사. 연봉 2억. 나는 9500. 반도 안 된다. 그런데 AI 공부하려면 퇴근 후에 해야 한다. 밤 10시부터 새벽 2시까지. 가능은 하다. 20대 때는 했으니까. 지금은 못 한다. 체력이 안 된다. 새벽에 공부하면 다음 날 회의에서 졸고, 그러면 팀원들한테 '파트장님 요즘 피곤하세요?' 소리 듣는다. 그럼 주말에? 토요일은 아들 학원 픽업. 일요일은 가족 외식. 이게 15년간 패턴이다. 아내한테 말했다. 한 달 전에. "나 주말에 공부 좀 해야 할 것 같아." "뭐 공부?" "AI. 요즘 트렌드거든." 아내가 웃었다. 비웃는 건 아니었다. 그냥 피곤해 보이는 웃음. "당신 주말에도 노트북 보잖아. 그것도 모자라?" 할 말이 없었다. 맞으니까. 집에 도착했다. 9시 40분. 아이들은 자고 있다. 아내가 밥 데워뒀다. 혼자 먹는다. TV 켠다. 뉴스 나온다. "2024년 평균 퇴직 연령 53세." 나는 45세. 8년 남았다. 8년 후에 뭐 하지. 은퇴하면 수입 제로다. 아내는 15년간 경력 단절. 애들은 고등학생, 중학생. 돈 제일 들어갈 때. 계산기 두드렸다. 대학 등록금, 생활비, 노후 자금. 최소 5억은 있어야 한다. 지금 모은 돈? 1억 2천. 부족하다. 많이. 대학 동기 모임 분기별로 만난다. 대학 동기 5명. 다들 컴공 출신. 한 명은 임원. 연봉 1억 8천. 두 명은 창업. 한 명은 대박, 한 명은 망해서 재창업 중. 나머지 한 명은 프리랜서. 연 매출 2억. 나는? 대기업 자회사 파트장. 9500. 술 마시면서 물었다. 임원 된 친구한테. "형은 개발 아예 안 해?" "못 하지. 미팅이 하루에 8개야." "후회 안 해?" "후회? 돈은 두 배인데." 웃으면서 말했다. 근데 눈은 안 웃었다. 창업 친구한테 물었다. "너는 좋겠다. 하고 싶은 거 하잖아." "좋긴. 3개월째 월급 못 받았어. 투자 받으려고 IR 30번 넘게 했고." "그래도 네 선택이잖아." "선택? 빚이 5억이야. 선택의 여지가 없어." 다들 힘들다. 다만 힘든 방향이 다를 뿐. 집 가는 택시 안에서 생각했다. 나는 뭐가 힘들지. 가족 때문에 선택지가 없는 게 힘들다. 도전하고 싶은데 못 하는 게. 망해도 되는 판에 혼자 있었으면. 아니다. 그런 생각 하면 안 된다. 아내한테 카톡 보냈다. "조금 있다 도착해." 읽음. 답장 없음. 자는 것 같다. 아내의 시간 주말 아침이다. 10시. 늦잠 잤다. 거실 나왔다. 아내가 설거지한다. 아이들은 학원 갔다. "어제 늦었네." 아내가 말했다. "응. 동기 모임." "요즘 피곤해 보여." "괜찮아." 괜찮지 않다. 둘 다 안다. 커피 내렸다. 둘이 마신다. 아내가 물었다. "회사 일 재미있어?" "글쎄." "이직 생각은?" "있지. 근데..." 말을 못 했다. '당신 때문에' 라는 말이 목구멍까지 왔다. 삼켰다. 아내가 말했다. "내가 미안해." "뭐가?" "일 그만둔 거." 나는 고개 저었다. "아니야. 선택한 거잖아. 우리 둘 다." 그런데 진심인지 모르겠다. 15년 전에 아내가 퇴사할 때 나는 찬성했다. "그래, 아이가 중요하지." 그게 진심이었나. 아니면 '어차피 내 연봉이 더 높으니까' 였나. 아내가 계속 일했으면 지금 어땠을까. 맞벌이 연봉 1억 5천. 리스크 분산. 나도 자유롭게 이직하고, 도전하고. 그런데 그러면 아이들은? 둘 다 야근하면 누가 돌봐. 학원 픽업은? 아플 때는? 결국 누군가는 포기해야 했다. 아내가 했다. 그게 전부다. "당신 때문 아니야." 내가 말했다. "알아." 아내가 웃었다. "그냥 가끔 생각해. 나도 계속 개발했으면 어땠을까." 나도 가끔 생각한다. 아내가 계속 개발했으면 나는 어땠을까. 다음 15년 회사에서 임원 승진 대상자 명단 돌았다. 내 이름 있다. 승진하면 연봉 1억 2천. 그런데 개발은 못 한다. 완전히 관리직. 전략 기획, 예산 편성, 임원 회의. 팀원들은 축하한다. "파트장님 임원 되시겠네요!" 웃으면서 답했다. "아직 몰라." 사실 확정이다. 나이, 연차, 성과. 다 맞다. 거절할 이유가 없다. 그런데 하고 싶지 않다. 임원 된 선배한테 물었다. "형, 임원 생활 어때요?" "돈은 좋지. 근데 코드는 진짜 못 봐. 볼 시간도 없고, 보면 이해도 안 돼." "후회는?" "후회? 그런 거 할 여유 없어. 애 둘 대학생이거든." 다 똑같다. 돈 때문에 못 그만둔다. 나도 마찬가지다. 임원 안 하면? 파트장으로 5년 더. 그러다 권고사직. 50살에 짤리면 갈 데가 없다. 임원 하면? 연봉 1억 2천. 은퇴까지 10년. 그동안 3억 모은다. 부족하지만 버틸 수는 있다. 선택지가 없다. 가족이 있으니까. 저녁에 아내한테 말했다. "나 임원 승진 대상자래." "진짜? 축하해!" "응..." "왜? 안 좋아?" "아니. 좋지. 당연히." 거짓말이다. 좋지 않다. 그런데 거절할 수도 없다. 아내가 물었다. "연봉 얼마야?" "1억 2천." "와. 좋네." 좋다. 객관적으로. 주관적으로는 모르겠다. 15년차의 답 결혼 15년. 아내 전업주부. 이게 잘못된 선택이었나. 모르겠다. 아이들은 잘 자랐다. 아들은 수학 전국 30등. 딸은 피아노 콩쿨 금상. 아내가 케어했다. 나는 못 했다. 시간이 없었으니까. 집은 안정적이다. 대출 있어도 갚는 중. 밥은 매일 따뜻하게 있고. 빨래는 항상 돼 있고. 나는? 개발자로서는 정체됐다. 관리자로서는 성장했다. 가장으로서는 책임 다했다. 행복한가. 모르겠다. 불행한가. 그것도 모르겠다. 그냥 살고 있다. 가족 먹여 살리면서. 이게 45살 기혼 개발자의 현실이다. 20대 때는 상상 못 했다. '커리어'가 '내 것'이 아니게 될 줄. 모든 선택에 가족이 변수로 들어올 줄. 후회하냐고? 모르겠다. 다시 돌아간다면? 똑같이 할 것 같다. 왜냐면 나는 겁쟁이니까. 리스크 못 지는. 혼자였으면 달랐을까. 스타트업도 가고, 창업도 하고, 망해도 다시 일어서고. 그런데 나는 혼자가 아니다. 15년 전에 선택했다. 가족을. 그래서 오늘도 출근한다. 회의하고, 코드 리뷰하고, 보고서 쓴다. 임원 승진 준비한다. 연봉 1억 2천 받으려고. 이게 책임이다. 한 가정의 기둥으로서. 무겁다. 가끔 버거울 때도 있다. 그래도 내려놓을 수는 없다. 왜냐면 나 말고는 없으니까. 이 집을 떠받치는 사람이. 월급날이 돌아온다. 다음 달에도. 그다음 달에도. 통장에 돈이 찍힌다. 그리고 사라진다. 관리비, 대출, 생활비, 학원비. 남는 건 없다. 그래도 괜찮다. 이게 내가 선택한 삶이니까.결혼 15년차, 아내 전업주부, 연봉 9500. 이게 2024년 한국 40대 개발자의 평범한 무게다.
- 10 Dec, 2025
옛날에 짠 코드 다시 보면서 '이때가 좋았지' 하는 감정
토요일 오후의 발견 회사 레포지토리를 뒤지다가 10년 전 코드를 발견했다. 프로젝트명: CRM v2.0 마지막 커밋: 2014년 3월 15일 커밋 메시지: "결제 모듈 리팩토링 완료. 테스트 통과." 파일을 열었다. 스크롤을 내렸다. "아, 이거..."깨끗했다. 정말 깨끗했다. 메서드 하나가 20줄. 주석도 적절히. 변수명도 명확하고. 테스트 커버리지 85%. 지금 내가 짜는 코드는 이렇지 않다. 2014년의 나 당시 나는 35살이었다. 선임 개발자. 팀원 3명. 관리 업무는 거의 없었다. 회의는 주 2회. 나머지는 다 코딩. 그때는 시간이 있었다. 아침 10시에 출근해서 저녁 7시까지. 점심 1시간 빼고 전부 코딩. 회의 끝나면 바로 IDE 켰다. 슬랙 알림은 10개도 안 왔다. 코드 리뷰는 내가 받는 입장이었다. 부장님이 꼼꼼하게 봤다. "여기 왜 이렇게 했어?" 물으면 설명했다. 고칠 건 고쳤다. 지금은 내가 리뷰하는 입장이다. 하루에 PR 5개. 제대로 보려면 2시간. 하지만 회의 때문에 10분씩 쪼개서 본다. "LGTM" 달고 승인. 미안하다.그때는 리팩토링할 시간이 있었다. "이 부분 좀 이상한데?" 싶으면 바로 고쳤다. 3시간 걸려도 괜찮았다. 완벽하게 만들 수 있었다. 지금은 "일단 돌아가게" 하고 넘어간다. 리팩토링은 다음 스프린트에. 하지만 다음 스프린트에는 새 기능이 들어온다. 리팩토링은 또 미뤄진다. 기술 부채가 쌓인다. 코드를 읽으면서 오래된 코드를 한 줄씩 읽었다. public class PaymentService { private final PaymentGateway gateway; private final TransactionRepository repository; public PaymentResult process(PaymentRequest request) { validateRequest(request); Transaction transaction = createTransaction(request); PaymentResponse response = gateway.charge(transaction); return saveAndReturn(transaction, response); } }단순했다. 명확했다. 한눈에 들어왔다. 요즘 코드는 이렇지 않다. 어노테이션 10개. 추상화 레이어 3개. "확장성을 위해서" 라고 했는데 결국 안 쓴다. 그때는 필요한 것만 만들었다. YAGNI. You Aren't Gonna Need It. 그 원칙을 지켰다. 지금 필요한 기능만. 나중에 필요하면 그때 추가. 지금은 "나중에 이거 필요할 수도..." 하면서 미리 만든다. 기획자가 "혹시 이것도..." 하면 "네" 한다. 시간 없다고 하면 "파트장님이 안 된대요" 소리 듣는다. 그래서 코드가 복잡해진다.테스트 코드도 있었다. @Test public void 결제_성공_테스트() { // given PaymentRequest request = createValidRequest(); // when PaymentResult result = service.process(request); // then assertThat(result.isSuccess()).isTrue(); }Given-When-Then. 깔끔했다. 요즘은 테스트 코드 짤 시간이 없다. "일정이 빡빡해서요." 후배들한테 "테스트 좀 써" 하면서 나도 안 쓴다. 이중잣대다. 알고 있다. 그때가 좋았던 이유 커밋 로그를 더 봤다. 2014년 3월 한 달간 커밋 60개. 거의 매일. 주말에도 몇 번. 지금은? 한 달에 10개. 대부분 "회의록 업데이트", "문서 수정". 실제 코드 커밋은 3개. 관리자가 되면서 달라졌다. 파트장 달고 나서 회의가 늘었다. 일정 조율. 리소스 배분. 타 부서 협업. 임원 보고. 코딩은 "남는 시간에" 하는 거다. 하지만 남는 시간은 없다. 오전 10시: 데일리 스탠드업 오전 11시: 주간 계획 회의 오후 1시: 점심 오후 2시: 기획팀 미팅 오후 4시: 임원 보고 준비 오후 5시: 임원 보고 오후 6시: 1on1 (후배 2명) 코딩은 언제? 저녁 8시. 사무실 조용해지면. 하지만 집중력이 예전 같지 않다. 한 시간 하면 피곤하다. 그때는 4시간도 했는데. 코드가 아니라 시간 사실 코드가 문제가 아니었다. 10년 전 코드가 더 좋은 게 아니다. 그때 나한테 시간이 있었던 거다. 생각할 시간. 설계할 시간. 리팩토링할 시간. 테스트 짤 시간. 지금은 그 시간이 없다. "파트장님 잠깐만요." 하루에 10번. "이거 언제까지 되나요?" 하루에 5번. "회의 하나 잡아도 될까요?" 하루에 3번. IDE 켜고 5분 지나면 누가 부른다. 집중은 불가능하다. 깊은 작업(Deep Work)은 옛날 얘기다. 지금은 얕은 작업(Shallow Work)만 가능하다. 10분씩 쪼개서. 그래서 코드 품질이 떨어진다. 시간 부족은 핑계가 아니다. 현실이다. 후배들의 코드 팀 후배들 코드를 봤다. 김 대리 코드: 깔끔하다. 주석도 있다. 테스트도 있다. 이 사원 코드: 최신 기술 잘 쓴다. 코틀린 코루틴까지. 부럽다. 걔네는 시간이 있다. 회의 적다. 관리 업무 없다. 순수하게 개발만. 나도 그랬다. 10년 전에. "대리님, 이 부분 어떻게 생각하세요?" 김 대리가 물었다. 페이먼트 모듈 설계. "음... 이렇게 하면 어때?" 조언했다. 20년 경력의 노하우. 설계 패턴. 예외 처리. "오, 좋네요!" 김 대리가 구현한다. 내가 조언한 대로. 더 잘 만든다. 기쁘기도 하고 씁쓸하기도 하다. 내 지식으로 후배가 좋은 코드를 짠다. 나는 직접 못 짠다. 이게 관리자의 역할인가? 임원이 되면 부장님이 말했다. "박 파트장, 내년에 임원 트랙 타면 어때?" 임원. 연봉 1억 2천. 스톡옵션. 전용 주차. 사무실도 따로. 대신 코딩은 완전히 못 한다. "생각해보겠습니다." 거짓말이다. 이미 답은 정했다. 안 한다. 임원 되면 개발자 아니다. 경영자다. 숫자 보고 사람 관리하고 전략 짜고. 코드는 안녕이다. 그건 싫다. 차라리 지금처럼 반반이 낫다. 관리 50%, 개발 50%. 비록 개발 시간이 부족하지만 아예 없는 것보단 낫다. 10년 전 코드를 보면서 생각했다. "그때로 돌아갈 순 없지." 35살로 돌아가면? 지금의 연봉은 포기. 지금의 직급도 포기. 지금의 영향력도 포기. 대신 코딩 시간은 얻는다. 안 할 거다. 현실적이지 않다. 하지만 가끔 상상한다. 타협점 완벽한 코드는 못 짠다. 인정한다. 하지만 아예 안 짤 순 없다. 최근에 규칙을 정했다.주 2회, 2시간씩 "개발 시간" 캘린더 블락 그 시간엔 회의 안 잡음 (임원 부르면 어쩔 수 없지만) 작은 거라도 직접 구현 (버그 수정, 리팩토링) 한 달에 최소 5개 실제 코드 커밋완벽하진 않다. 10년 전처럼은 못 한다. 그래도 안 하는 것보단 낫다. 어제 작은 기능 하나 구현했다. 로그 포맷 개선. 2시간 걸렸다. PR 올렸다. 후배들이 리뷰했다. "오 깔끔하네요!" "역시 파트장님" 기분이 좋았다. 10년 전만큼은 아니지만, 그래도 좋았다. 레거시와 향수 저녁 9시. 회사 불 껐다. 10년 전 코드 파일을 닫았다. "그때가 좋았지." 사실이다. 그때가 더 좋았다. 하지만 그때로는 못 돌아간다. 지금의 나는 관리도 하고 개발도 하는 사람이다. 둘 다 완벽하게는 못 한다. 타협하면서 산다. 그게 45살 파트장의 현실이다. 집에 가는 길. 핸드폰을 봤다. 김 대리가 PR 올렸다. "결제 모듈 v3.0 - 리팩토링 완료" 코드를 열어봤다. 깔끔했다. 내가 조언한 대로. 아니, 더 잘했다. "Approve" 눌렀다. 댓글 달았다. "Good job. 10년 전 내 코드보다 낫네요." 김 대리가 답했다. "ㅋㅋㅋ 과찬이십니다. 파트장님 코드 보고 배웠습니다." 웃었다. 내 코드는 예전만 못하다. 하지만 내 지식은 후배들에게 간다. 그것도 나쁘지 않다.옛날 코드는 박물관에 두고, 오늘 할 수 있는 거라도 한다.
- 08 Dec, 2025
관리직인가, 개발직인가 - 파트장이라는 정체성의 혼란
관리직인가, 개발직인가 - 파트장이라는 정체성의 혼란 파트장이라는 애매한 자리 작년에 파트장 달았다. 승진 축하한다고 팀장이 저녁 쏘고. 집에 와서 명함 보는데 기분이 이상했다. 개발 파트장. 이게 관리직인가, 개발직인가. 월요일 아침부터 회의다. 주간계획, 분기목표, 리소스배분. 10시부터 12시까지 회의실에 앉아 있었다. 점심 먹고 오후 2시, 또 회의. 타팀 협업 논의. 코드 짤 시간은 언제 나오나. 퇴근 전에 IDE 켰다. 일주일 전에 만들던 기능. 코드 보는데 뭘 하려던 건지 기억이 안 난다. 주석도 안 써놨다. 6시 반, 후배가 퇴근 인사하고 나간다. 나는 이제 시작인데.코드 리뷰는 언제 후배들이 PR 올린다. 하루에 10개씩 쌓인다. 아침에 출근하면 슬랙 알림 15개. "파트장님 코드리뷰 부탁드립니다" 점심시간에 본다. 급하게 본다. 제대로 못 본다. 어제 승인한 코드에서 버그 났다. 내가 놓친 거다. 후배한테 미안하다. "괜찮습니다"라고 하는데. 괜찮을 리가 없다. 예전엔 코드리뷰가 즐거웠다. 후배 코드 보면서 "이렇게 하면 더 좋아" 알려주고. 같이 고민하고. 지금은 체크리스트 확인하듯 본다. 테스트 있나, 네이밍 괜찮나, 로직 문제 없나. 5분 안에 끝낸다. 이게 리뷰인가 싶다. 팀장한테 말했다. "코드리뷰 시간이 부족합니다" "회의 줄여볼게요" 다음 주에 회의 하나 더 생겼다.1on1은 또 언제 팀원 8명. 한 달에 한 번씩 1on1 한다. "요즘 어때요?" "괜찮습니다" 괜찮을 리 없다는 거 안다. 근데 물어볼 시간이 없다. 1on1 30분 잡는데. 10분은 근황 얘기. 10분은 업무 얘기. 나머지 10분에 진짜 얘기가 나와야 하는데. "다음 미팅 시간이라 이만" 끊기는 거다. 신입 후배 하나가 있다. 작년에 들어왔다. 코드 짜는데 어려워한다. "시간 날 때 같이 짜봅시다" 석 달째 시간이 안 난다. 어제 그 후배가 또 PR 올렸다. 똑같은 실수가 있다. 지난번에도 지적했던 거다. "이 부분 다시 확인해 주세요" 댓글 달고 나서 죄책감 든다. 내가 제대로 안 가르쳐줘서 그런 건데. 예전엔 후배 옆자리에 앉아서. 같이 화면 보면서. "여기 이렇게, 저기 저렇게" 했는데. 지금은 댓글로 끝이다.내 코드는 언제 짜나 이번 분기 목표가 있다. 신규 기능 개발. 내가 맡았다. 설계는 한 달 전에 끝났다. 구현은 아직 시작도 못 했다. 매일 "오늘은 코딩한다" 다짐한다. 출근하면 메일부터 본다. 답장하다 보면 1시간. 슬랙 확인한다. 긴급한 거 처리한다. 또 1시간. 회의 시간이다. 점심 먹고 오후. 후배가 질문한다. "이 부분 어떻게 하면 될까요?" 30분 같이 본다. 다른 후배가 온다. "배포 이슈 있습니다" 로그 확인한다. 원인 찾는다. 1시간 지났다. 6시다. 이제 코딩 시작할까. 팀장이 부른다. "내일 발표 자료 좀 봐줘요" 8시 되어서 퇴근한다. 코드 한 줄 못 짰다. 집에 와서 노트북 켠다. 피곤하다. 잠깐만 누웠다가. 새벽 2시에 깬다. 내일도 회의다. 개발자인가 관리자인가 기술 블로그 본다. 요즘 트렌드가 뭔지. "Rust로 고성능 API 만들기" "Kubernetes 실전 가이드" "AI 시대의 백엔드 아키텍처" 읽다가 만다. 읽을 시간도 없고. 읽어도 써먹을 곳이 없다. 우리 팀은 Java Spring이다. 15년 된 레거시다. 바꿀 수도 없고. 바꿀 이유도 없다. 그래도 읽는다. 뒤처지는 게 무섭다. 기술 면접관 들어간 적 있다. 지원자가 물었다. "요즘 MSA 전환 어떻게 생각하세요?" 대답하다가 막혔다. 이론은 안다. 실무는 모른다. 지원자가 나보다 더 잘 알았다. 합격시켰다. 그 사람 지금 우리 팀에 있다. 기술적인 건 그 후배한테 물어본다. 이게 맞나 싶다. 친구 만났다. 대학 동기다. 걔는 CTO다. "요즘 뭐 해?" "회의하고, 리뷰하고" "코딩은?" "못 한다" 친구가 웃었다. "넌 관리자야" 집에 오는 길에 생각했다. 나는 개발자인가. 관리자인가. 둘 다 아닌 것 같다. 승진은 축복인가 저주인가 작년 이맘때. 팀장이 불렀다. "파트장 제안이 들어왔어요" 고민했다. 파트장 되면 연봉 오른다. 팀원 관리도 해야 한다. 코딩은 줄어든다. "며칠 생각해 보겠습니다" 이틀 고민했다. 아내한테 물었다. "연봉 얼마나 올라?" "1000만원쯤" "해" 승진했다. 첫 달은 괜찮았다. 회의도 신선하고. 팀 관리도 재미있고. 두 번째 달부터 이상했다. 코딩할 시간이 없다. IDE 켜는 횟수가 줄었다. 석 달 지나니까. 내가 개발자가 맞나 싶었다. 동료들이 축하한다. "승진 축하해요" "이제 편하시겠어요" 편할 리가 없다. 더 바쁘다. 더 피곤하다. 더 불안하다. 코드 짜는 시간은 줄었는데. 책임은 늘었다. 팀원이 실수하면 내 책임. 일정 밀리면 내 책임. 장애 나면 내 책임. 예전엔 내 코드만 책임지면 됐다. 지금은 8명 코드를 책임진다. 밤에 잠 안 올 때가 있다. "내가 뭘 하고 있나" 승진이 축복인지. 저주인지. 모르겠다. 팀원들의 눈빛 신입 후배가 물어본다. "파트장님은 어떻게 공부하세요?" 대답이 막힌다. "틈날 때 블로그 보고..." 거짓말이다. 요즘 공부 안 한다. 다른 후배가 말한다. "저도 나중에 파트장 되고 싶어요" 웃으면서 답한다. "열심히 해봐" 속으로 생각한다. "안 되는 게 나을 거야" 팀원들이 나를 본다. 궁금해한다. 저 사람은 코드를 짜나. 저 사람은 개발자가 맞나. 증명하고 싶다. "나도 개발자야" 근데 증명할 방법이 없다. 예전엔 실력으로 인정받았다. 코드 잘 짜고. 문제 잘 해결하고. 기술 리드하고. 지금은 직급으로 인정받는다. 파트장이니까. 경력 20년이니까. 실력은 모른다. 나도 모른다. 무서운 거다. 어디로 가야 하나 임원 제안 들어왔다. 내년쯤. 승진하면 연봉 1억 넘는다. 개발은 영영 못 한다. 고민 중이다. 임원 되면 완전히 관리자다. 전략 짜고. 예산 관리하고. 경영진 미팅하고. 코드는 못 본다. 기술은 몰라도 된다. 이게 내가 원하던 길인가. 20년 전에 개발 시작했다. 처음 코드 짤 때. "Hello World" 찍을 때. 그때가 좋았다. 밤새 코딩하고. 새벽에 배포하고. 에러 잡고. 힘들었지만 재미있었다. 지금은 재미가 없다. 회의록 쓰고. 일정 관리하고. 보고서 만들고. 이게 내가 하고 싶던 일인가. 퇴사하고 싶을 때가 있다. 작은 회사 가서. 다시 개발자로. 근데 현실이다. 나이 45에. 연봉 9500에. 다시 개발자로 취직되나. 아니, 개발자로 일할 수 있나. 체력도 문제다. 밤샘 코딩은 이제 못 한다. 그냥 이 길로 가는 거다. 파트장에서 임원으로. 관리자로. 개발자는 아닌 사람으로. 그래도 어제 신입 후배가 PR 올렸다. 내가 조언했던 거 반영했다. 코드가 깔끔했다. 칭찬 댓글 달았다. "잘했어요" 후배가 답했다. "파트장님 덕분입니다" 기분이 좋았다. 조금. 오늘 회의에서. 내가 제안한 아키텍처. 팀장이 채택했다. "역시 박 파트장" 기분이 좋았다. 조금. 퇴근 전에 코드 짰다. 30분. 겨우 30분. 그래도 짰다. IDE 켜고. 함수 하나 만들고. 테스트 돌리고. 손에 익은 동작들. 이게 좋다. 아직은. 파트장이 뭔지 모르겠다. 개발자인지 관리자인지 모르겠다. 그냥 하는 거다. 오늘도. 내일도. 회의하고. 리뷰하고. 가끔 코딩하고. 이게 내 일이다. 지금은.파트장 1년 차. 아직도 모르겠다. 내가 뭔지.
- 07 Dec, 2025
슬랙 100개 알림, 진짜 중요한 건 뭐지?
슬랙 100개 알림, 진짜 중요한 건 뭐지? 오전 9시 10분. 자리에 앉았다. 노트북을 켰다. 슬랙이 뜬다. 빨간 숫자가 보인다. 127개. "어제 퇴근할 때 다 읽었는데."127개의 정체 스크롤을 내렸다.전사 공지 8개 다른 팀 채널 잡담 40개 내 팀 채널 업무 15개 DM 12개 멘션 6개 리액션 알림 46개리액션이 거의 반이다. "누가 내 메시지에 👍 눌렀습니다" 알아서 뭐하나. 멘션 6개부터 읽었다. 진짜 중요한 건 2개였다. 나머지는 "파트장님 의견 궁금합니다" 류. 의견 안 내도 진행되는 것들. DM 12개. 급한 건 1개. "통화 가능하세요?" 30분 전 메시지다. 이미 해결됐을 거다. 읽는 데 1시간 9시 10분에 시작했다. 10시 5분에 끝났다. 55분 걸렸다. 읽기만 한 게 아니다.답장 8개 리액션 20개 "확인했습니다" 5개확인했다는 답장을 안 하면 불안하다. "파트장님 못 보신 건가" 생각할까봐.10시 5분. 이제 일을 시작한다. 아, 10시 30분에 회의가 있다. 25분 남았다. 코드를 짤까? 25분이면 뭘 하나. 환경 세팅만 10분이다. 메일이나 볼까. 메일 47개. 됐다. 2시간 뒤 회의 끝났다. 12시 20분. 점심 먹고 왔다. 1시 30분. 슬랙을 켰다. 42개. 1시간 30분 만에 42개. 계산해봤다. 하루 8시간이면 약 224개. 실제로는 퇴근 후에도 온다. 자기 전까지 치면 300개는 된다. 예전엔 이메일이었다. 하루 한두 번 확인하면 됐다. 지금은 실시간이다. 5분마다 확인 안 하면 불안하다. "나만 그런가?" 팀원들 보면 다들 슬랙 켜놓고 산다. 알림 소리 나면 바로 본다. 나도 봐야 하나?코딩하려고 하면 2시. 드디어 코딩 시간이다. 레거시 리팩토링 작업. 집중이 필요하다. IntelliJ를 켰다. 코드를 읽기 시작했다. "이 로직은..." 띵. 슬랙이다. "파트장님 잠깐 봐주세요" 링크가 있다. 클릭했다. 코드 리뷰 요청이다. 리뷰했다. 10분 걸렸다. 다시 내 코드로 돌아왔다. "아, 뭐 보고 있었지?" 처음부터 다시 읽는다. 띵. 또 왔다. "프로덕션 에러 확인 부탁드립니다" 로그를 봤다. NullPointerException. 원인을 찾았다. 15분. "수정해서 배포하세요" 답장. 다시 내 코드. "이 메서드가..." 띵띵. 두 개가 동시에 왔다. 포기했다. 진짜 중요한 건 저녁 6시. 팀원들이 하나둘 퇴근한다. "먼저 가겠습니다" "들어가세요" 6시 30분. 사무실이 조용해졌다. 슬랙도 조용하다. 이제 코딩한다. 집중한다. 드디어 된다. 7시부터 9시까지. 2시간 동안 끊김 없이 짰다. 오늘 하루 중 가장 생산적인 시간. 9시 10분. 퇴근 준비. 슬랙을 봤다. 저녁 6시 이후 메시지 3개. 3개. 낮 8시간 동안 200개. 저녁 3시간 동안 3개. "진짜 중요한 메시지는 하루에 몇 개나 될까?" 계산해봤다. 오늘 받은 슬랙 300개 중내가 직접 답해야 하는 것: 15개 시급한 것: 3개 나만 할 수 있는 것: 5개진짜 중요한 건 5개였다. 나머지 295개는 뭐였나. 30대 후배의 말 어제 후배랑 술 마셨다. 35살 시니어 개발자. 잘한다. 실력 있다. "형, 슬랙 알림 다 꺼놨어요" "네?" "DM하고 멘션만 켜놨어요" 충격이었다. "그럼 팀 채널은?" "점심 먹고 한 번, 퇴근 전에 한 번만 봐요" "급한 건 어떡하는데?" "진짜 급하면 전화 와요" "..." "형도 그렇게 하세요" "내가 파트장인데 그래도 되나?" "더 그래야죠. 형이 계속 답장하니까 애들도 물어보는 거예요" "..." 맞는 말이다. 내가 5분 안에 답장하니까 팀원들도 5분 안에 답 기대한다. 악순환이다. 실험 오늘 실험했다. 알림을 껐다. 멘션만 남겼다. 불안했다. 10분마다 슬랙을 켰다. 습관이다. 참았다. 30분에 한 번만 봤다. 급한 건 없었다. 점심 먹고 한 번 봤다. 밀린 메시지 47개. 중요한 건 2개. 10분 만에 처리했다. 오후 3시에 한 번 봤다. 32개. 중요한 건 1개. 놀라운 건 세상은 잘 돌아갔다. 내가 즉답하지 않아도 팀원들은 알아서 했다. 오히려 좋았다. "파트장님 의견 듣고 결정할게요" 대신 "이렇게 결정했습니다" 가 늘었다. 코딩 시간 알림을 끈 첫날. 오전에 2시간 코딩했다. 끊김 없이. 20년 개발했다. 코딩은 몰입이 중요하다. 15분 집중하면 로직이 보인다. 1시간 집중하면 구조가 보인다. 5분마다 끊기면 영원히 15분을 못 채운다. 겉핥기만 하다 끝난다. 요즘 퇴근 후에 집에서 코딩한 이유가 이거였다. 낮엔 집중을 못 하니까. 근데 이제 낮에도 된다. 알림만 껐을 뿐인데. 파트장의 역할 고민했다. "파트장이 메시지 늦게 확인하면 안 되는 거 아냐?" 아니다. 파트장의 역할은 즉답이 아니다.방향 잡아주기 막힌 거 뚫어주기 의사결정하기 성장 도와주기이걸 하려면 생각할 시간이 필요하다. 슬랙 100개 읽을 시간 말고. 즉답은 주니어도 한다. "스펙 확인했고, 코드 짰고, PR 올렸습니다" 빠르다. 정확하다. 파트장은 다른 걸 해야 한다. "이 방향이 맞나?" "3개월 뒤를 보면?" "기술 부채가 쌓이진 않나?" 이런 생각은 슬랙 알림 띵띵 울릴 때 안 된다. 규칙을 만들었다 팀 회의에서 얘기했다. "슬랙 사용 규칙 만들자"긴급: 전화 또는 멘션 중요: DM 참고: 채널 메시지 잡담: 따로 채널 만들기"슬랙은 실시간 답장 기대하지 않기" "1시간 내 답장 없어도 재촉 안 하기" "급하면 전화하기" 팀원들 반응이 좋았다. "사실 저도 슬랙 스트레스였어요" "알림 때문에 집중이 안 돼요" 다들 불편했던 거다. 말을 안 했을 뿐. 2주 후 규칙 만든 지 2주 됐다. 슬랙 메시지가 줄었다. 하루 평균 300개에서 150개로. 반으로 줄었다. 중요한 건 늘었다. "이거 어떻게 생각하세요?" 질문의 질이 올랐다. "급한데 봐주세요" 가 사라졌다. 코딩 시간이 늘었다. 낮에 3시간은 집중한다. 예전엔 불가능했다. 팀원들 표정도 좋아졌다. "요즘 일하기 편해요" "집중이 잘 돼요" 전화는 늘었나? 아니다. 오히려 줄었다. 진짜 급한 일이 별로 없었던 거다. 다른 팀 파트장 옆팀 파트장이 물어봤다. "요즘 슬랙 적게 쓰네?" "알림 껐어요" "그게 되냐?" "되던데요" "나도 해볼까..." "해보세요. 팀도 편해져요" 2주 뒤에 다시 만났다. "진짜 되네" "그죠?" "근데 처음엔 불안했어" "저도요. 일주일 적응 기간 필요해요" "애들이 자기들끼리 해결하더라" "원래 할 수 있었던 거죠" 우리가 너무 빨리 답해줘서 팀원들이 생각할 기회를 못 가진 거다. 임원의 슬랙 우리 임원은 슬랙을 안 한다. 메일만 한다. 하루 두 번 확인한다. 예전엔 답답했다. "왜 슬랙 안 보세요?" 이제 안다. 저래야 맞다. 임원은 더 큰 그림을 봐야 한다. 슬랙 100개 읽을 시간에 전략을 짜야 한다. 파트장도 마찬가지다. 코드 짜고 방향 잡을 시간이 필요하다. 슬랙 읽느라 하루 가면 안 된다. 20대의 슬랙 팀 막내가 말했다. "저는 슬랙이 편한데요" "응?" "이메일보다 빠르고 가볍잖아요" 맞다. 그건 맞다. 하지만. "너 하루에 슬랙 몇 개 와?" "음... 한 200개?" "다 읽어?" "대충요. 중요한 것만" "중요한 거 몇 개?" "10개요?" "나머지 190개는?" "그냥... 스쳐 지나가요" 그렇다. 20대는 스쳐 지나간다. 45세는 다 읽는다. 이게 차이다. 세대 차이 30대 중반부터는 슬랙에 피로하다. 40대는 슬랙이 고역이다. 20대는 즉각 반응한다. 40대는 숙고하고 답한다. 20대는 동시에 10개 처리한다. 40대는 하나씩 깊게 판다. 틀린 게 아니다. 다른 거다. 근데 회사는 20대 방식을 요구한다. "빠른 소통" "실시간 협업" 40대는 적응해야 한다. 아니면 방법을 찾아야 한다. 나는 후자를 택했다. 결론 슬랙 100개. 진짜 중요한 건 5개다. 나머지 95개는정보 공유 단순 확인 리액션 잡담다 필요하다. 하지만 즉각 반응할 필요는 없다. 파트장의 일은 모든 슬랙에 답하는 게 아니다. 중요한 5개에 집중하는 거다. 알림을 껐다. 하루 3번 확인한다. 급하면 전화 온다. 코딩 시간이 늘었다. 생각할 시간이 생겼다. 팀원들도 만족한다. 20년 개발했다. 이제 안다. 빠른 답장보다 깊은 생각이 중요하다.슬랙은 껐다. 근데 이메일이 늘었다. 이것도 줄여야 하나.
- 03 Dec, 2025
Java와 Spring의 20년, 이게 족쇄인가 무기인가
Java와 Spring의 20년, 이게 족쇄인가 무기인가 아침 스탠드업 미팅 "파트장님, 이번 프로젝트는 Kotlin으로 해도 될까요?" 신입 김대리가 물었다. 25살. 눈이 반짝였다. 나는 커피를 한 모금 마셨다. 3초 정도 침묵했다. "일단 기존 시스템이 Java라서..." 변명처럼 들렸다. 나한테도. 회의실을 나왔다. 복도를 걷는데 발걸음이 무거웠다.20년이다. Java 1.4부터 썼다. 당시엔 최신이었다. EJB가 복잡해서 Spring 나왔을 때 신세계였다. 지금 그 Spring이 "레거시 기술"로 불린다는 게 믿기지 않는다. 아니, 믿고 싶지 않다. 점심시간, 구내식당 후배 세 명이 테이블에 앉았다. 나는 한 칸 떨어진 곳에 앉았다. "요즘 Rust 공부하는데 재밌어요." "저는 Next.js 강의 듣는 중이에요." "TypeScript 5.0 나왔는데 개쩔어요." 들리는 단어가 하나도 안 반갑다. 나는 제육볶음을 먹었다. 입맛이 없었다. 핸드폰을 켰다. 개발 커뮤니티를 봤다. "Java는 이제 끝났다" "Spring은 너무 무겁다" "요즘 누가 XML 설정을 하냐" 댓글이 200개였다. 다 읽었다. 밥이 목에 안 넘어갔다. 오후 3시, 코드리뷰 김대리가 PR을 올렸다. Kotlin으로 작성한 유틸리티 클래스였다. data class UserRequest( val name: String, val email: String )5줄이었다. 내가 Java로 짰으면 20줄이다. Getter, Setter, Constructor, toString, equals, hashCode. "깔끔하네요." 내가 말했다. 진심이었다. 그런데 왜 기분이 이상하지? 김대리가 웃었다. "Kotlin 편하죠?" "응, 좋아 보여." 말은 그렇게 했다. 속으로는 달랐다. '나도 배워야 하나? 지금?'그날 저녁 집에 가는 지하철에서 'Kotlin 입문' 강의를 결제했다. 19,900원이었다. 일주일 뒤 진도는 15%였다. 그것도 출퇴근 시간에만 봤다. 회사에서 Java 코드를 하루 8시간 짜는데, 퇴근 후에 Kotlin을 배울 기력이 없었다. 밤 11시, 혼자 남은 사무실 다들 퇴근했다. 나만 남았다. 레거시 시스템 리팩토링 작업이었다. 10년 된 코드를 고치는 중이었다. 이상했다. 10년 전 코드가 내 코드였다. 주석을 읽었다. "// 2014.03.15 박시니어 작성" 당시엔 최선이었다. 지금 보니 개선할 게 보인다. 20분 만에 300줄을 100줄로 줄였다. Spring의 최신 기능을 썼다. 빌드했다. 테스트 통과. 배포 완료. 이 순간만큼은 기분이 좋았다. '나 아직 되네.' 그런데 문득 생각했다. '10년 뒤 이 코드도 레거시겠지?' 창밖을 봤다. 빌딩 불빛이 깜빡였다. 주말 오전, 카페 노트북을 펼쳤다. 기술 블로그를 읽었다. "Why We Migrated from Java to Kotlin" "Spring Boot vs Micronaut: Performance Comparison" "Is Java Still Relevant in 2024?" 제목만 봐도 불안했다. 클릭했다. 읽었다. 이해했다. 공감도 했다. 그런데 실천은 못 하겠더라. 월요일 출근하면 또 Java다. 또 Spring이다. 레거시 시스템 10개. 전부 Java 8. 하나는 아직 Java 7이다.마이그레이션? 팀장님이 웃으며 말했다. "일단 돌아가잖아요. 급한 거 먼저 하죠." 급한 건 언제나 있다. 신규 프로젝트, 장애 대응, 성능 개선. 레거시는 언제나 '나중에'. 그 '나중에'는 안 온다. 20년 경험으로 안다. 월요일 아침, 1on1 미팅 신입 이사원이 물었다. "파트장님, 저 Java 말고 다른 것도 배워야 할까요?" 22살이었다. 입사 3개월. 나는 대답을 못 했다. 5초 정도. "음... 일단 Java를 깊게 배워." "그런데 요즘 추세는..." "추세 따라가려고 하면 끝이 없어." 말하면서도 확신이 없었다. 이사원은 고개를 끄덕였다. 표정이 애매했다. 복잡했다. 내가 후배 커리어를 막는 건가? 그런데 또 생각해보면 Java 모르고 어떻게 개발을 하나? JVM 구조, GC 동작 원리, 멀티스레딩, 동시성 제어. 이런 거 모르고 Kotlin만 쓰면 그게 진짜 실력인가? 혼란스러웠다. 목요일 저녁, 기술 세미나 사내 세미나였다. 주제는 "Kotlin 도입 사례". 발표자는 타 부서 파트장이었다. 나랑 동갑. "마이그레이션 결과, 코드량 30% 감소, 빌드 시간 20% 단축." 박수가 나왔다. 질문 시간이었다. 손을 들었다. "기존 Java 개발자들 적응은 어땠나요?" 파트장이 웃었다. "처음엔 힘들었죠. 근데 2주면 익숙해집니다." 2주. 나는 한 달째 15% 진도다. 세미나가 끝났다. 복도에서 그 파트장을 만났다. "형, 진짜 2주면 돼요?" "솔직히 말하면 3개월은 걸려요. 근데 발표 자리에서 그렇게 말하면..." 웃었다. 둘이. 조금 위안이 됐다. 금요일 오후, 연봉 협상 팀장님이 불렀다. 연봉 리뷰 시즌이었다. "올해 평가 A입니다. 7% 인상." 9500만원에서 10165만원이 됐다. "감사합니다." "내년엔 임원 후보 검토 들어갑니다." 임원. 개발자의 꿈이라고 하던데 나는 아니다. 임원 되면 관리만 한다. 코드는 진짜 못 짠다. "고민해보겠습니다." 팀장님이 의아한 표정이었다. "고민할 게 뭐가 있어요?" 설명할 수 없었다. '저는 코딩이 좋아서요' 라고 하면 유치해 보인다. 45살이 무슨 코딩이냐는 표정을 볼 게 뻔했다. 그냥 웃었다. 토요일 오전, 개인 프로젝트 집에서 혼자 코딩했다. 토이 프로젝트였다. 간단한 블로그 시스템. 그런데 이번엔 Kotlin으로 시작했다. IDE를 켰다. IntelliJ가 Kotlin을 추천했다. 첫 줄을 썼다. fun main() { println("Hello, Kotlin") }신기했다. Java보다 타이핑이 적었다. 3시간 코딩했다. REST API 3개 만들었다. Java였으면 5시간 걸렸을 거다. '어? 생각보다 괜찮은데?' 저녁을 먹고 다시 앉았다. 자정까지 코딩했다. 오랜만에 재밌었다. 월요일 출근길에 문득 깨달았다. '회사 코드는 왜 이렇게 안 하지?' 답은 간단했다. 레거시. 100만 줄. 10년. 고객. 안정성. 한숨이 나왔다. 월요일 점심, 대학 동기와의 전화 동기가 전화했다. 대학 때 같이 C 언어 과제 했던 친구. "야, 나 이번에 스타트업 CTO 됐어." "오, 축하해." "근데 기술 스택 고민인데, Java 쓸까 Kotlin 쓸까?" 나는 3초 멈췄다. "...둘 다 장단점이 있지." "야, 너 Java 20년 했잖아. 솔직히 말해봐." 솔직히. "Java는 안정적이야. 레퍼런스 많고, 사람 구하기 쉽고." "근데?" "근데 요즘 애들은 Kotlin 배우고 싶어 해. 코드도 깔끔하고." "그럼 뭐 하라는 거야?" "...모르겠어. 나도 고민 중이야." 친구가 웃었다. "너도 그런 고민 하는구나. 위안된다." 전화를 끊었다. 위안은 안 됐다. 화요일 저녁, 후배와의 맥주 신입 김대리가 술을 제안했다. 둘이 나갔다. 두 잔 마시고 김대리가 물었다. "파트장님, 진짜 궁금한 게 있어요." "뭔데?" "Java 20년 하셨잖아요. 후회 안 해요?" 직구였다. 나는 맥주를 마셨다. 생각했다. "후회... 는 아닌데, 불안하긴 해." "뭐가요?" "내가 시대에 뒤처지는 건 아닌가. 10년 뒤에도 Java 할 건가." 김대리가 고개를 끄덕였다. "저도 그래요. 지금 Java 배우는데, 이게 맞나 싶어요." "그래서 Kotlin 하고 싶은 거고?" "네. 근데 파트장님이 Java가 더 중요하다고 하셔서..." 미안했다. 내 불안을 후배한테 떠넘긴 것 같았다. "이렇게 하자. 회사에선 Java 하고, 개인 시간엔 네가 하고 싶은 거 해." "그럼 파트장님은요?" "나도... 그렇게 하려고." 둘이 웃었다. 쓸쓸한 웃음이었다. 수요일 오전, 기술 부채 회의 분기별 기술 부채 리뷰였다. 리스트를 펼쳤다.Java 7 → 8 마이그레이션 (3년째 미뤄짐) Spring 4 → 5 업그레이드 (2년째 미뤄짐) XML 설정 → Java Config 전환 (4년째 미뤄짐)팀장님이 말했다. "우선순위를 정합시다." 다들 침묵했다. 나는 손을 들었다. "다 중요한데, 리소스가 없습니다." "그럼 어떻게 하죠?" "...모르겠습니다." 회의가 끝났다. 결론은 '다음 분기에 재논의'. 복도를 걷는데 막막했다. 이게 Java의 문제인가, 회사의 문제인가, 내 문제인가. 모르겠다. 목요일 새벽, 잠 못 이루고 새벽 3시에 깼다. 다시 못 잤다. 생각이 꼬리를 물었다. Java 20년. 이게 족쇄인가, 무기인가. 족쇄처럼 느껴질 때가 있다. 새로운 걸 못 배우게 막는 것 같다. 그런데 또 무기이기도 하다. 문제 생기면 나는 안다. 20년 경험으로. 후배들이 3일 걸릴 버그를 나는 30분에 찾는다. 이게 실력 아닌가? 아니다. 이건 경험이다. 실력은 새로운 걸 배우는 능력이다. 그럼 나는 실력이 없는 건가? 아침이 왔다. 4시간 잤다. 금요일 오후, 깨달음 같은 것 퇴근 30분 전이었다. 코드를 짜고 있었다. Java로 복잡한 동시성 로직을 구현했다. ExecutorService, CountDownLatch, AtomicInteger. 40분 걸렸다. 옆자리 김대리가 봤다. "와... 이런 거 어떻게 아세요?" "20년 하다 보니까." "저는 언제쯤..." "너도 10년 하면 알아." 그 순간 깨달았다. Kotlin이든 Rust든 Go든, 10년 하면 전문가가 된다. 나는 Java 전문가다. 이게 족쇄가 아니라 정체성이다. 문제는 Java가 아니었다. '변화에 대한 두려움'이었다. 새로운 언어를 배우는 게 겁났던 거다. 초보가 되는 게 싫었던 거다. 45살에 '모른다'고 말하는 게 부끄러웠던 거다. 주말, 결심 토요일 아침. 다시 Kotlin 프로젝트를 열었다. 이번엔 마음가짐이 달랐다. 'Java를 버리는 게 아니라 확장하는 거다.' 20년 Java 경험이 Kotlin 배울 때 도움이 된다. JVM은 같으니까. 오히려 신입보다 유리하다. 기초가 탄탄하니까. 8시간 코딩했다. 점심도 안 먹었다. 저녁에 아내가 물었다. "요즘 왜 이래?" "공부 중이야." "무슨?" "새로운 거." 아내가 웃었다. "그래, 그렇게 사는 게 너답지." 일요일에는 블로그 글을 썼다. 제목: "45살 개발자의 Kotlin 입문기" 조회수 3개 나왔다. 다 내가 새로고침한 거다. 상관없다. 나를 위한 기록이다. 월요일, 새로운 시작 출근했다. 스탠드업 미팅이었다. 김대리가 물었다. "파트장님, Kotlin 괜찮다고 하셨잖아요." "응." "그럼 다음 프로젝트 Kotlin으로 해도 될까요?" 예전 같았으면 망설였을 거다. 이번엔 바로 대답했다. "해보자. 나도 같이 배울게." 김대리 눈이 커졌다. "진짜요?" "응. 너가 가르쳐줘." 회의실이 조용해졌다. 후배가 선배를 가르친다는 게 어색했나 보다. 나는 웃었다. "이상해? 나도 배워야지. 20년 했다고 다 아는 거 아니야." 분위기가 풀렸다. 김대리가 말했다. "파트장님, 멋있으시다." 멋있다기보단 무서웠다. 근데 더 무서운 건 안 배우는 거다.Java 20년은 족쇄가 아니다. 토대다. 그 위에 새로운 걸 쌓으면 된다. 늦은 게 아니라 깊은 거다. 오늘도 배운다.
- 02 Dec, 2025
아침 6시 30분, 메일 50개의 공포
아침 6시 30분, 메일 50개의 공포 알람이 울리기 전에 이미 시작된 하루 아침 6시 30분. 여전히 어두운 침실에서 눈을 뜬다. 침대에서 스마트폰을 집어 드는 것이 이제는 본능이다. 아내는 여전히 자고 있고, 시계는 6시 31분을 가리킨다. 첫 번째로 하는 일은 메일함을 여는 것이다. 어제 오후 6시부터 밤 11시까지 쌓인 메일이 이미 24개. 밤 11시부터 새벽 6시까지 쌓인 메일이 26개. 총 50개. 출근도 하기 전에 이미 50개의 메일이 나를 기다리고 있다. "어제는 퇴근 직전에 좋은 결과 나왔다고 했는데... 이게 뭐지?" 메일의 발신자를 슥 훑어본다. 해외 팀(인도, 싱가포르), 국내 다른 부서, 경영진 메일링리스트, 그리고 내가 참여한 12개 프로젝트의 각종 notification 메일들. 메일함을 정리하려고 몇 번 시도했지만, 결국 그 많은 룰을 유지하기가 힘들어서 포기했다.이제 슬랙을 본다. 밤새 쌓인 메시지가 대략 93개. 물론 @mention은 아니지만, 내가 참여한 채널들(@박시니어 파트장)에 쓰인 메시지들이다. 인도 팀의 야간 작업 결과 공유: 15개 메시지 싱가포르 팀 아침 회의 결과: 22개 메시지 국내 다른 파트 대기 중인 질문: 8개 메시지 내 팀원들의 저녁 작업 결과 공유: 27개 메시지 CEO 메시지방 공지: 5개 메시지 무작위 팀원 한 명의 '파트장님 이거 어떻게 생각하세요?': 16개 메시지 스레드집에서는 이렇게 알림이 울린다. 울림음도 켜두지 않은데, 화면은 계속 깜빡인다. 결국 아내가 깬다. "또 일 생각해? 일어나야지." 아내의 목소리는 걱정과 체념이 섞여 있다. 이런 아침이 5일이 반복되니까 당연하다. 화장실에서 시작되는 메일 읽기 마라톤 6시 45분. 화장실에 가면서도 폰을 들었다. 한 손으로 세수하고, 한 손으로 메일을 읽는다. 이미 7년 전부터 이렇게 하고 있다. 처음엔 손에 물이 튀기도 했는데, 지금은 일종의 기술이 되었다. 우선순위를 판단해야 한다. 빨간 느낌표가 붙은 메일부터 본다. 긴급 메일 1호: "시스템 장애 보고" 어제 배포한 기능에서 성능 이슈가 발견되었다고 한다. 지표는 6시간 뒤에야 모아진다고. 즉, 이 메일은 5시간 전부터 내 것이 되기로 예정된 것이다. 긴급 메일 2호: "내일 임원진 보고 자료 필요" 내일이 아니라 '오늘 오후 2시까지' 필요하다. 메일 쓴 시간이 어제 8시 27분이다. 즉, 이 사람은 금요일 밤 8시에 일을 하고 있었고, 나는 지금 화장실에서 이를 알아야 하는 것이다. 일반 메일 1호: "프로젝트 진행 상황 공유" 이건 FYI다. 읽지 않아도 되는데, 나는 항상 읽는다. 언제 누군가가 "파트장님은 이거 알고 계셨어요?" 라고 물어볼지 모르니까. 일반 메일 2호: "회의 일정 변경 알림" 원래 오전 10시였던 회의가 오전 11시로 변경되었다. 오후 회의는 또 3개가 추가되었다. 즉, 오전 10시부터 12시, 오후 2시부터 5시까지는 이미 다른 일이 할당된 상태로 아침이 시작된다. 화장실에서 나오면서 머릿속으로 계산한다. 실제 코딩할 수 있는 시간은?오전 9시 출근 오전 10시~12시: 회의 오전 9시~10시: 메일 and 슬랙 검토 점심 12시~1시 오후 1시~2시: 간신히 1시간 오후 2시~5시: 회의 오후 5시~6시: 메일 응답 오후 6시~6시 30분: 1대1 미팅 오후 6시 30분 이후: 코딩?실제로는 이 계획도 1~2번은 깨진다. 누군가는 "파트장님 5분만 시간 돼요?" 라고 슬랙을 친다. 모레 회의를 오늘로 당기자는 메일이 온다. 후배가 코드 리뷰 결과를 물어본다. 결국 오후 1시간? 그것도 낙관적인 추정이다. 출근하면서 마음 먹는 다짐 지하철에 탄다. 여전히 폰으로 메일을 읽는다. "오늘은 달라야지. 오늘은 의도적으로 시간을 만들어야지. 코딩을 할 시간을..." 이 다짐은 일주일에 5번 한다. 대략 일 년에 240번 정도 한다. 지난 10년을 돌아보면, 이 다짐이 실현된 적은 몇 번이나 될까? 충분한 시간을 확보하고 실제로 의미 있는 코드를 짜본 적이 있을까? 있다. 있기는 한데... 그건 대부분 저녁 8시 이후다. 퇴근 후가 아니라, 퇴근하고도 사무실에 남아서 하는 코딩이다. 혹은 일요일 밤 10시. 아이들이 자고 아내도 잔 후에 혼자 노트북을 켜는 그때다. 그때의 코딩이 정말 재미있다. 흐름(flow)이라는 게 있다는 걸 그때서야 느낀다. 25년 전 대학교 2학년 때처럼 코드를 짠다. 시간이 안 간다. 하지만 이제는 그렇게까지 버티기 힘들다. 새벽 2시 코딩은 다음 날 하루 종일 좀비가 되게 만든다. 그다음 날 회의에서 눈을 감는다. 상사가 내 의견을 물어봐도 답을 못 한다. "파트장님 뭐라고 생각하세요?" 이런 질문을 받으면 대충 "한번 생각해볼게요" 라고 말한다. 속은 비어있다. 사무실 도착, 그리고 현실 9시 05분. 사무실 도착. 의자에 앉기가 무섭게 슬랙이 온다. "파트장님 아침 회의 자료 확인하셨어요?" 안 했다. 확인한 건 없다. 슬랙을 다시 켜본다. 지난 30분 동안 또 11개의 메시지가 쌓였다. 메일함도 다시 켠다. 또 8개가 왔다. 이제 정말 코딩 IDE를 켜려고 마음먹는다. 오늘은 정말. 노트북을 켜서 IntelliJ IDEA를 실행한다. 로딩된다. 0.5초 안에 슬랙이 또 울린다. "파트장님 통화 가능해요?" 손가락이 자동으로 움직여서 "네 괜찮아요" 라고 타이핑한다. 이건 마술인가? 내가 언제 이 반응을 학습했을까? 20년 전, 데이터베이스 설계에 한 달을 투자하던 나는 이런 삶을 상상했을까? 당시 나는 "관리자가 되면 높은 곳에서 결정한다"고 생각했다. 결과적으로 나는 결정을 한다. 하지만 그건 "누가 어떤 일을 할 것인가" 에 대한 결정이지, "어떤 기술로 무엇을 할 것인가" 에 대한 결정이 아니다. 정책은 다른 사람이 정하고, 일정은 다른 사람이 정하고, 기술 스택도 이제는 다른 사람들(그 중에는 나보다 똑똑한 후배들)이 고민한다. 내가 하는 일은... 뭐지? "파트장님 이거 어떻게 생각해요?"에 "좋네요" 라고 답하는 일? 회의를 소집하는 일? 문제가 터지면 "왜 이렇게 됐어?" 라고 물어보는 일? 메일 50개를 읽는 데 걸리는 현실의 1시간 결국 9시 10분부터 10시 10분까지 1시간을 메일과 슬랙 메시지 정리에 투자한다. 이제 이게 얼마나 비효율적인지는 알지만, 막을 수 없다. 왜냐하면:읽지 않은 메일이 50개 이상 있으면 일종의 불안감이 생긴다. "혹시 중요한 걸 놓친 건 아닐까" 하는 생각이 든다. 실제로 놓친 중요한 메일이 가끔 있다. 따라서 모든 메일을 다 읽어야 한다. 메일을 다 읽고 나면 또 새로운 메일이 와 있다. 특히 해외 팀이 일할 때 추가되는 메일들은 피할 수 없다.결국 이 1시간은 내가 할 수 있는 실제 업무의 20%를 빼앗는다. 근데 여기서 끝이 아니다. 메일을 다 읽고 나면 이제 답장을 해야 한다. "알겠습니다. 확인하겠습니다. 검토 후 연락드리겠습니다." 이런 메일들을 30~40개 쓴다. 보통은 "좋은 의견입니다" 정도인데, 때론 정말 생각을 해야 하는 메일도 있다. "이 기술 방향 맞나요?" "이 일정 현실적인가요?" "이 결정 올바른가요?" 이런 메일에는 10분씩 생각해서 답한다. 그럼 또 1시간이 간다.결국 10시가 되는 순간, 아직 회의도 없었는데 벌써 2시간이 간다. 그리고 10시에는 첫 회의가 시작된다. 하루를 돌아보며 드는 생각 오늘도 퇴근했다. 6시 45분. 다시 정리해본다:실제 코딩한 시간: 35분 회의에 쓴 시간: 4시간 20분 메일과 슬랙 읽고 답한 시간: 2시간 30분 후배들 1대1 미팅: 50분 기타 (복도 대화, 누군가의 데스크 방문, 화장실 가는 길에 붙잡힘): 1시간35분. 30대 때는 이게 이해가 안 갔다. 선배 개발자가 "요즘엔 코딩 시간이 별로 없어" 라고 말하면, 나는 속으로 생각했다. "그럼 뭐 하는 건데?" 이제 안다. 나는 지금 "코딩 35분짜리 관리자" 다. 그리고 가장 이상한 점은, 내 급여는 순전히 코딩 경력으로 책정되었다는 것이다. 코딩을 못 하면 급여를 깎아야 하는데, 그러지 않는다. 왜냐하면 나는 "파트장" 이기도 하니까. 그런데 임원이 되면? 그럼 코딩은 정말로 못 한다. 그때는 순수하게 관리자가 된다. 하지만 나는 아직도 코딩이 하고 싶다. 아이 아들이 요즘 코딩을 배우고 싶다고 했는데, 나는 "좋지. 아빠가 가르쳐줄게" 라고 했다. 그런데 최근에 나온 기술이나 패러다임은 나도 모른다. Rust? Next.js? 서버리스? 이런 건 후배들이 한다. 그래서 아들에게 "흠... 이건 좀 복잡하네. 아빠가 공부하고 나중에" 라고 말한다. 아들의 눈빛이 약간 흐려진다. 그 순간, 정말 슬프다. 정말로 슬프다. 내 가치가 뭐가 되어가는 건지, 정말로 모르겠다. 기술 면접을 볼 때도 마찬가지다. 후보자가 나한테 "현재 프로젝트에서는 어떤 기술을 주로 사용하세요?" 라고 물으면, 나는 "음... 주로 우리 후배들이 하는데, Spring이랑 이런저런 게 있어" 라고 뭉뚱그려서 말한다. 면접관인데 질문에 명확하게 못 답한다. 얼마나 불편한가. 얼마나 초라한가. 그런데 이 상황을 벗어날 방법이 뭐가 있을까? 이직? 45세 개발자를 누가 뽑을까? 임원 승진? 그럼 코딩은 진짜 끝난다. 현 상태 유지? 계속 이렇게 조용히 사라져 갈 것인가? 그래도 내일은 또 6시 30분에 눈을 뜬다 내일 아침 6시 30분이면 또 이 모든 게 반복된다. 메일 50개. 슬랙 93개. 그리고 나는 또 "오늘은 좀 다르게 해야지" 라고 다짐할 것이다. 그리고 오전 10시에는 또 회의실에 앉아 있을 것이다. 하지만 정말 작은 변화들도 있다. 어제 후배가 쓴 코드를 리뷰했는데, 정말 좋았다. 나보다 더 깔끔하고, 더 창의로웠다. "이 접근 좋네. 이렇게 한 이유가 뭐야?" 라고 물었다. 그 후배가 설명해줄 때, 나는 기술적 흥분을 느꼈다. "아, 내가 이런 마음으로 코딩을 했었지." 그리고 나는 "좋은 선택이야. 계속 이런 식으로 가면 훌륭한 아키텍트가 될 거야" 라고 말해줬다. 그 후배의 얼굴이 환해졌다. 혹시... 내 역할이 이게 아닐까? 코드를 짜는 게 아니라, 좋은 개발자를 만드는 것? 코딩 35분이 아니라, 사람 4시간 20분? 그건 나쁜 일일까? 근데 그렇다면, 왜 이 마음이 자꾸만 IDE로 향할까? 왜 밤 10시의 코딩이 그렇게 행복할까? 아직도 모르겠다. 하지만 내일 아침 6시 30분에는 또 폰을 들 것이다. 그리고 또 메일 50개와 마주할 것이다.아침 6시 30분은 여전히, 하루의 시작이자 동시에 절망의 시작이다.
- 02 Dec, 2025
임원 승진과 개발의 갈림길에서
1억 원의 무게 알람이 울린다. 6시 30분. 일어나지 않는다. 침대에서 천장을 본다. 어제 회의 메모가 자꾸만 떠오른다. HR 담당자가 던진 한마디. "박 이사, 임원 승진 검토 대상입니다. 축하합니다." 축하한다는 게 아니라 선고처럼 들렸다. 1억 2천만 원. 연봉표를 본 건 며칠 전이다. 임원 수준 연봉 레인지. 손가락으로 꾹 눌렀던 숫자다. 그냥 숫자다.돈이 필요하긴 하다. 아들 대학 등록금, 아내가 언급한 부모님 간병 비용, 이 집 대출금. 계산을 하면 손가락이 모자란다. 1억 원대면 뭐라도 숨 쉴 수 있다. 그런데. 그런데 왜 이렇게 싫지. 컴퓨터는 나를 아직도 필요로 할까 회사 온다. 9시 정각. 메일 함을 본다. 62개. 밤샘 정산이다. 슬랙을 본다. 알림이 33개. "박 파트장님 코드리뷰 좀요?" 2년 전이면 20분이면 끝냈을 코드다. 지금은 30분이 걸린다. 신입이 쓴 코드는 맞는데, 뭔가 최신 패턴이 아닌 것 같은데, 확신이 없다. 검색을 한다. 답을 찾는다. 댓글을 단다. "좋습니다. 진행하세요." 이게 내가 할 수 있는 전부인가. 개발 팀장 되고서는 진짜 코드를 못 짰다. 그 전에는 매일 손가락이 움직였다. 새벽 1시, 2시까지 IDE에 박혀서 로직을 짰다. 버그를 찾았다. 리팩토링 했다. 그게 재미였다. 요즘은 뭐하나. 회의 5개. 11시부터 17시까지 끊이지 않는 화상 회의. 팀 상황 보고, 프로젝트 진행 상황, 리스크 관리, 상위 부서 회의, 인사 평가 회의. 코드는 6시 이후에 만진다. 저녁 6시다. 근데 그때 되면 이미 피곤하다. 6시간 회의를 하고 나면 뇌가 상한다. IDE를 켜도 손가락이 안 움직인다. "아, 이 버그 이렇게 고치면 되겠네." 그 생각까지만 한다. 그리고 피곤하니까 내일 하지 뭐 하고 닫는다. 내일은 또 회의다.그러다가 30대 후배 개발자를 본다. 하하하고 웃는다. 재미있는 기술 얘기하면서 눈이 반짝인다. 최신 JavaScript 프레임워크 얘기한다. AI로 코드 어시스턴트 쓴다고 한다. 그놈들은 뭔가 굴렀다. 진짜 개발하는 거다. 내가 임원이 되면 더 멀어질 거다. 정말 임원이 되면. 선택은 아무도 안 했는데 내 것이 됐다 커피를 마신다. 이미 3잔째다. 옆 자리 40대 임원 들을 본다. 김 이사, 이 이사. 저들 다 개발자에서 올라온 놈들이다. "김 이사, 코딩 요즘도 하세요?" "뭐, 가끔 스트레스 받을 때. 근데 시간이..." 그게 다다. 다들 "시간이..." 하고 끝낸다. 저들이 실제 개발하는 건 한 달에 며칠. 그나마도 메인 프로젝트가 아니라 취미처럼 개인 프로젝트다. 회사 시간에는 100% 관리다. 예산, 리스크, 인사, 정치. 정치. 그래. 그 단어가 싫다. 임원이 되면 팀장처럼 "저한테 결정권 없어요" 할 수 없다. 결정을 내려야 한다. 기술 선택, 팀 구성, 인사 평가, 보너스 책정. 그리고 그 결정을 위에 정당화해야 한다. 옆 팀과의 정치도 생긴다. 요즘 후배들 보면 칼 퇴근한다. 18시면 뚝 끝낸다. 노트북 덮고 간다. 그들 보면 한편으로는 부럽다. 다른 한편으로는 '저 정도 실력으로 뭘...'이라는 생각이 스친다. 근데 바로 생각을 지운다. 그런 거 하면 꼰대가 되니까. 대신 속으로만 생각한다. '저들도 내 나이 되면 알겠지.' 그리고 자책한다. '그래, 너는 저 친구들 앞으로 나간 거고, 그래서 대가를 치르는 거겠지.' 임원 위치는 원하지 않았는데 왔다. 성과를 내니까. 팀 성과가 좋으니까. 후배들을 잘 관리했으니까. 그 모든 게 복이 돼서 나를 이곳까지 몰았다.아들의 질문이 자꾸 떠오른다 집에 가는 버스에서 핸드폰을 본다. 아들이 카톡을 했다. "아빠 집 와. 코딩 좀 배워줘." 중1이다. 학교 동아리에서 Python을 배운다고 했다. 아빠를 찾았다. 집에 가서 노트북을 켠다. 아들이 화면을 본다. "와, 이게 뭐에요?" "Java죠. 아빠가 20년을 이 언어로 먹고 살았어." "요즘은 이걸 안 쓰나요?" "쓰지. 하지만..." 말을 흐린다. 요즘은 Python도 있고, JavaScript도 있고, Go도 있고, Rust도 있다. Java는 '구식'이 아니지만 '새롭지는' 않다. 아들이 물어본다. "아빠는 지금도 코딩을 해요?" "그럼. 매일." 거짓이다. 거짓이 아니기도 하다. 코드리뷰는 한다. 하지만 그건 코딩이 아니다. 아들은 그 차이를 모른다. 그건 좋다. 아직은. 내가 임원이 되면, 아들이 대학 때쯤 되면, 진짜로 코딩을 못 한다고 해도 된다. "아빠는 관리를 해" 하면서. 5년, 10년 지나면 기술이 얼마나 바뀔까. 그땐 정말 못 할 거다. 프로그래밍 언어도, 패러다임도, 생각하는 방식도 다를 거다. 그리고 나는? 그냥 '예전에 개발자였어'라고 했던 사람이 될 거다. 이사라는 직함의 무게 HR과의 면담이 있었다. 정식 승진 제안. "축하합니다. 경의를 표합니다." 뭔가 장례식 인사처럼 들렸다. 조건은 명확했다. 임원이 되면 개발 팀에서는 나온다. 전략팀이나 사업팀으로 간다. 관리직의 관리 경력을 쌓아야 한다고 했다. "개발은?" "여유가 생기면 하실 수 있죠. 하지만 경영진은 경영에 집중해야 합니다." 경영에 집중. 정확한 표현이다. 그게 일이니까. 코드는 취미가 되고, 경영이 직업이 되는 거다. 반대로 남을 수도 있다. 파트장 자리에 남는 거다. 이미 반 임원처럼 일하고 있으니까, 정식으로 파트장 심화 과정을 듣는 거다. 기술 리더십이라고 부르는. 근데 그것도 결국 관리다. 코딩 시간은 더 줄어든다. 10% 코딩, 90% 관리. 둘 다 싫다. 남는 것도 싫다. 임원이 되는 것도 싫다. 이상한 심정이다. 둘 다 싫은데, 둘 중 뭘 해야 한다고 해. 회의실에 앉아 있다. 아무 말도 안 한다. 녹음 버튼은 꺼져 있다. 비공식 면담이라고 했다. HR 담당자가 본다. 대기 중인 표정. 나는 그냥 본다. 창밖을. "시간을 드리겠습니다. 2주 정도 생각해 보세요." 2주. 14일. 14일 안에 내 직업정체성을 다시 정의해야 한다. 밤 11시, 혼자 있을 때 집에 와도 자지를 못 한다. 아내는 잤고, 아이들도 잤다. 혼자 거실 소파에 앉아 있다. 노트북을 켠다. 20년 전 코드를 본다. GitHub에 저장되어 있던 초대 레포지토리. Java로 쓴 게시판이다. MVC 패턴도 없고, 보안도 엉망이고, 함수명도 엉망이다. 그런데 재미있었다. 진짜 재미있었다. 밤새 버그를 찾고, 스택오버플로우를 뒤지고, 친구한테 문제를 물어보고, 새벽에 드디어 작동할 때의 그 쾌감. 30대 때는? 복잡한 로직을 다루면서도 즐거웠다. 성능 최적화에서 0.3초를 단축하는 데 하루를 썼다. 그게 일이 아니라 게임 같았다. 요즘은? 임원이 돼도 게임은 끝난다. 개발자 자리에 남아도 게임은 끝나가고 있다. 나이 때문일까. 아니면 그냥 시간이 없어서일까. 시간이 있으면 다시 즐거울까. 그럼 시간을 만들어야 하나. 이직을 해야 하나. 45세에 다른 회사로? 나를 받을 회사가 있을까. 45세 아저씨. 기술은 좀 지났고. 체력도 떨어지고. 게다가 결혼하고 애 둘 있고. 급여는 최소 9000만 원 이상을 받아야 하고. 그런 게 어딜 가나. 그래. 그래서 임원인가. 임원은 나이를 먹을수록 값이 올라간다. 45세 임원은 매장이다. 20년 경력, 뭘 좀 안다는 확신 있는 얼굴, 신뢰감. 임원 시장에선 그게 상품이다. 개발자 시장에선 뭔가. 옛날 실력으로 사는 사람? 미안하지만 요즘 기술은 아래 세대가 더 잘 한다. 그래서 올라오는 건가. 올라와야 사는 건가. 한숨을 쉰다. 너무 크게 나와서 재수가 없다. 대학 동기한테 들은 말 대학 동기와 술을 마셨다. 2주 전이다. 그놈도 임원이다. 다른 회사 임원. "박 형, 이사 합격 확정 들었어." "어어, 내가?" "응. 말 안 했어?" 나는 몰랐다. HR과의 면담이 확정이 아니라 제안이라고만 알았다. 근데 이미 그놈은 알고 있었다. "축하한다." "고마워." "후회 안 돼?" "뭐?" "개발을 못 하니까." 그놈은 웃었다. "아 형, 이제 와서. 개발은 이미 10년 전에 못 했지. 개발은 젊은 놈들 거야." "그럼 뭐가 남아?" "남는 게... 뭔지 알아? 돈이지. 권력도 있고." 나는 그 말에 뭐라고 대답을 못 했다. "형이 개발자 자존심 이따위다. 나 10년 전에 버렸어. 임원 돼서 깨달았어. 자존심도 죽고, 기술도 죽고, 남는 건 회사 내에서 먹이사슬 올라간 거고, 밖에선 그냥 또 다른 아저씨 경영진일 뿐이더라고. 그런데 돈은 진짜 많아." "후회는?" "밤에 자다가 가끔 깬다. 꿈꿨었거든. 개발자가 되고 싶었어. 그런데 잊어. 보너스 생각하면 깬다." 술잔을 기울였다. 그리고 나는 그날 밤 집에 와서 계속 생각했다. 그놈이 맞나. 아니면 내가 맞나. 결국 선택의 시간 2주가 거의 다 왔다. 명일 모레면 HR에 답을 줘야 한다. "승진하겠습니다" 또는 "남겠습니다" 둘 다 후회할 거라는 건 안다. 임원이 되면 개발로 돌아올 수 없다. 5년 임원을 하면 기술은 너무 뒤처져서, 다시 돌아와도 주니어급이 돼야 한다. 자존심은 벗겨진다. 남으면 어떻게 되나. 파트장 자리는 이미 포화된 자리다. 위로 올라갈 유리한 위치는 아니다. 후배들이 점점 올라오고, 나는 20년 경력 파트장으로 계속 있다. 기술이 나아진다고 해서 뭐 좋아질 건 없다. 밥값만 한다. 결국. 결국 뭘 택해도 끝이다. 개발자로서의 끝, 또는 인생으로서의 끝. 아니다. 그게 아니라... 개발자로서의 끝, 또는 임원으로서의 시작. 그 중 뭘 택할 건가. 아들 대학 등록금 생각하면 임원. 밤 11시에 IDE 켰을 때 느껴지는 그 쾌감 생각하면 개발자. 결국 어느 쪽이든 뭔가 죽인다. 생각해 보니 이미 결정은 된 거 같다. 한 달 전에. 임원 제안이 나올 때쯤. 아니, 정확히는 파트장이 된 순간. 그때부터 이미 개발자 박시니어는 점점 사라지고 있었다. 이제 이 사라짐을 인정하고 싶을 뿐이다. 아니면 그 사라짐에 저항할 뿐이다. 둘 다 같은 거 아닐까.내일 아침, 답을 정할 거다. 아직은 뭐라고 할지 모른다.