Showing Posts From
언급의
- 09 Dec, 2025
기술 다방면 언급의 함정: 넓고 얕은 지식의 위험성
기술 다방면 언급의 함정: 넓고 얕은 지식의 위험성 오늘도 모르는 걸 찾아봤다 스택오버플로우 검색 기록을 봤다. 오늘만 23개다. "React useEffect cleanup function" "PostgreSQL index optimization" "Docker multi-stage build best practice" "AWS Lambda cold start reduce" "Nginx reverse proxy timeout" 다 다른 카테고리다. 다 오늘 해결한 문제들이다. 저녁에 전 직장 후배가 물었다. "형 요즘 뭐 파고 있어요?" 아무 말도 못 했다. 파고 있는 게 없다. 파 볼 시간이 없다.풀스택이라는 이름 입사 면접 때 대표가 말했다. "풀스택 개발자 구해요." 좋게 들렸다. 다양한 기술을 다룬다. 성장할 수 있다. 지금 생각하면 번역이 틀렸다. "혼자 다 하는 사람 구해요"가 맞다. 프론트엔드 한다. React, TypeScript, Redux, React Query, Webpack 설정까지. 백엔드 한다. Node.js, Express, TypeORM, JWT 인증, API 설계. DB 한다. PostgreSQL 스키마 설계, 쿼리 최적화, 마이그레이션. 인프라 한다. AWS EC2, S3, RDS, CloudFront, Route53, Docker, Nginx. 디자인 한다. Figma 보고 CSS 짠다. 디자이너 없어서 간단한 건 내가 그린다. 명함에 뭐라고 써야 하나. "개발팀"이라고 쓴다. 개발팀인데 나 혼자다. 문제는 이거다. 다 하는데 다 못한다.중간 레벨의 저주 React 물어보면 안다. Hooks 쓴다. Context API 안다. 성능 최적화도 어느 정도 한다. 근데 면접 때 물어보면 모른다. "React Fiber 아키텍처 설명해주세요." 모른다. Node.js 쓴다. Express로 API 만든다. 미들웨어 이해한다. 근데 깊게 들어가면 막힌다. "이벤트 루프 내부 동작 원리 설명해주세요." 어... 논블로킹? 뭐 그런... PostgreSQL 쓴다. 인덱스 건다. JOIN 쿼리 짠다. 근데 복잡해지면 막힌다. "쿼리 플래너가 실행 계획 세우는 방식은?" 아... EXPLAIN 보면 되는데... 모든 기술을 '쓸 수 있다'. 근데 '잘 안다'는 게 아니다. 문서 보면서 구현한다. 스택오버플로우 보면서 고친다. 블로그 보면서 배운다. 깊이가 없다. 원리를 모른다. 근본을 모른다.어제 배운 걸 오늘 잊는다 3개월 전에 Lambda 함수 짰다. 어제 수정하려고 봤다. 기억이 안 난다. 코드 보면서 생각했다. '이거 왜 이렇게 짰지?' 주석도 없다. 커밋 메시지는 "update lambda"다. 검색했다. "AWS Lambda environment variable" "Lambda layer usage" "Lambda VPC configuration" 다시 배웠다. 또. Nginx 설정도 그렇다. 6개월 전에 리버스 프록시 설정했다. 이번 주에 수정했다. 처음 설정할 때처럼 시간 걸렸다. 또 구글링했다. 또 블로그 봤다. Docker도 그렇다. 멀티 스테이지 빌드 했었다. 이번에 다시 하려니 기억 안 난다. 배우는 속도보다 잊는 속도가 빠르다. 광범위하게 아는 게 아니라 광범위하게 모른다. 장애가 터지면 새벽 3시에 슬랙이 울렸다. 서버 다운이다. SSH 접속했다. 메모리 터졌다. 프로세스 확인했다. Node.js가 3GB 먹고 있다. 왜? 모른다. 메모리 누수인가? 아니면 트래픽 증가? DB 커넥션 풀 문제? 급하게 재시작했다. 일단 살렸다. 근본 원인은? 모른다. 시간이 없다. 다음에 또 터지면 그때 봐야지. 한 달 뒤 또 터졌다. 같은 문제다. 또 모른다. 전문가였으면 알았을 것이다. Node.js 메모리 관리 깊이 알았으면 진작 고쳤을 것이다. 근데 나는 '쓸 줄 아는' 사람이다. '아는' 사람이 아니다. API 응답 느리다. 왜? 쿼리가 느린가? 인덱스 문제? 아니면 N+1 쿼리? EXPLAIN 돌렸다. Seq Scan이 보인다. 인덱스 탔으면 좋겠는데. 근데 어떤 인덱스? 복합 인덱스? 부분 인덱스? 커버링 인덱스? 검색한다. 또. "PostgreSQL index types" "when to use composite index" 시간 걸린다. 많이. 전문가였으면 10분이면 됐을 것이다. 나는 2시간 걸렸다. 이직 준비가 무섭다 요즘 이력서를 고민한다. 쓸 게 많다. React, Node.js, PostgreSQL, AWS, Docker, Kubernetes까지. 근데 면접이 무섭다. 깊게 물어보면 모른다. "React에서 상태 관리 라이브러리들의 내부 동작 차이 설명해주세요." 어... Redux는 액션 디스패치하고... Recoil은 아톰이... 음... "Node.js 클러스터 모드에서 세션 관리 어떻게 하시나요?" Redis 쓰면 되는데... 구체적으로는... 음... "PostgreSQL 트랜잭션 격리 수준별 차이와 Lock 종류는?" Read Committed가 기본이고... 음... Serializable도 있고... Lock은... 입사 3년 차인데 주니어처럼 대답한다. 기술 스택은 시니어급인데 깊이는 주니어다. 이력서에 뭐라고 쓰지. "많이 써봤습니다"? "다 할 수 있습니다"? "깊이 있게 압니다"는 못 쓴다. 거짓말이다. 동기는 깊게 판다 전 직장 동기가 있다. 같이 입사했다. 둘 다 3년 차다. 걔는 대기업 갔다. 백엔드만 한다. Java Spring만 3년. 최근에 만났다. 얘기를 들었다. "JVM GC 튜닝 재미있어. G1GC 파라미터 조정하면서 성능 개선했어." "트랜잭션 격리 수준별로 벤치마크 돌려봤어. 케이스별로 최적화 포인트가 다르더라." "Kafka Consumer 그룹 리밸런싱 로직 분석했는데 진짜 잘 만들었더라." 나는 들으면서 고개만 끄덕였다. 모르는 얘기다. 걔가 물었다. "너는 요즘 뭐 깊게 파고 있어?" 아무 말도 못 했다. 파는 게 없다. 넓게 긁고 있다. 연봉은 비슷하다. 근데 3년 뒤는? 5년 뒤는? 걔는 Java Spring 전문가가 된다. 시니어 백엔드 개발자다. 나는? "여러 가지 좀 할 줄 아는 사람"이다. 시장 가치가 다르다. 확실히. 채용 공고를 보면 요즘 채용 공고를 자주 본다. 이직 준비다. 우대사항을 본다. "React 성능 최적화 경험"있다. 근데 React.memo 쓰고 useMemo 쓴 정도다. 깊이는 없다."대용량 트래픽 처리 경험"없다. 우리 서비스 DAU 2000명이다."DB 쿼리 최적화 경험"있다. 근데 인덱스 걸고 쿼리 다시 짠 정도다. 실행 계획 깊이 분석한 적 없다."AWS 아키텍처 설계 경험"있다. 근데 EC2, RDS 띄운 정도다. Auto Scaling, Load Balancer 제대로 써본 적 없다."CI/CD 파이프라인 구축 경험"있다. 근데 GitHub Actions로 빌드-배포 자동화한 정도다. Jenkins 안 써봤다.모든 항목이 "있긴 한데 깊지는 않다"다. 경력 3년인데 이력서는 1년 차같다. 넓게 1년씩 해서 3년이다. 기술 부채는 내가 모르는 것들 코드베이스를 본다. 기술 부채가 보인다. React 컴포넌트가 2000줄이다. 리팩토링 필요하다. 근데 어떻게? "컴포넌트 분리 전략" 검색한다. 블로그 본다. 따라한다. 근데 이게 맞는지 모른다. 더 좋은 방법이 있는지 모른다. API 응답이 느리다. 캐싱 필요하다. Redis 쓴다. 근데 캐싱 전략은? TTL은 얼마로? Eviction 정책은? 검색한다. 또. "Redis caching strategy" "Redis memory optimization" 적용한다. 근데 최선인지 모른다. DB 쿼리가 느리다. 인덱스 건다. 근데 어떤 걸? "PostgreSQL index best practice" 검색한다. 읽는다. 적용한다. 나아진다. 근데 최적인지 모른다. 모든 해결이 "일단 돌아가게"다. "최선으로"가 아니다. 기술 부채의 반은 내가 모르는 것들이다. 혼자라서 더 심하다 회사에 개발자가 나 하나다. 코드리뷰 없다. 누가 봐주지 않는다. 내 코드가 맞는지 틀린지 모른다. 돌아가니까 맞다고 생각한다. 질문할 사람이 없다. 검색한다. 블로그 본다. 스택오버플로우 본다. 답은 찾는다. 근데 이게 최선인지는 모른다. 페어 프로그래밍 없다. 시니어 개발자도 없다. 배울 사람이 없다. 혼자 배운다. 독학한다. 독학의 한계가 있다. 깊이가 없다. 맥락이 없다. 대기업 동기는 시니어한테 배운다. 코드리뷰 받는다. 토론한다. 나는 구글한테 배운다. GPT한테 물어본다. 블로그 본다. 스승이 다르다. 성장 속도가 다르다. 새로운 기술이 또 나온다 어제 Next.js 14 나왔다. Server Actions 추가됐다. 배워야 한다. 또. 이번 주 Bun 1.0 나왔다. Node.js보다 빠르다고 한다. 알아봐야 한다. 또. PostgreSQL 16 나왔다. 성능 개선 항목 읽어야 한다. 공부해야 한다. 또. 배울 게 끝이 없다. 쌓이기만 한다. 근데 기존 것도 제대로 모른다. React 18도 다 모르는데 Next.js 14를 배운다. Node.js도 다 모르는데 Bun을 본다. 기초가 약한데 최신만 쫓는다. 넓어지기만 한다. 깊어지지 않는다. 채용이 안 되는 이유 회사가 개발자를 뽑으려 한다. 6개월째 안 뽑힌다. 면접 봤다. 10명 넘게. 다 탈락이다. 왜? 기술 스택이 안 맞아서. 어떤 사람은 React만 한다. 백엔드 모른다. 어떤 사람은 Java Spring만 한다. Node.js 모른다. 어떤 사람은 백엔드만 한다. 프론트 모른다. 대표가 말한다. "다 할 줄 아는 사람 뽑아야지." 근데 그런 사람은 안 온다. 왜? 여기보다 좋은 데 간다. 결국 못 뽑는다. 나는 계속 혼자다. 역설이다. 다 할 줄 아는 사람은 희귀하다. 근데 회사는 그런 사람을 원한다. 나는 다 할 줄 안다. 근데 다 못한다. 다 중간이다. 진짜 잘하는 사람은 하나를 깊게 한다. 그 사람들이 대우받는다. 이제는 선택해야 한다 고민한다. 이대로 가면 안 된다. 3년 더 이러면 6년 차가 된다. 근데 실력은 3년 차다. 선택이 필요하다. 프론트를 깊게 팔까? React 전문가? 백엔드를 깊게 팔까? Node.js 아키텍트? 인프라를 깊게 팔까? DevOps 엔지니어? 근데 선택이 안 된다. 회사에서 다 해야 한다. 이직해야 한다. 전문화된 팀으로. 프론트팀 있고 백엔드팀 있는 곳. 한 가지만 깊게 할 수 있는 곳. 근데 연봉이 걱정이다. 경력 3년인데 깊이는 1년이면 주니어 연봉 받을까? 그래도 가야 한다. 지금 여기 있으면 계속 얕다. 넓고 얕은 5년 차보다 좁고 깊은 3년 차가 낫다.풀스택이라는 말이 멋있게 들렸다. 이제는 함정이 보인다. 다 하는 것과 다 잘하는 것은 다르다. 내년에는 하나를 깊게 파고 싶다. 그게 뭔지는 아직 모르겠지만.