본문으로 건너뛰기

버그 제보

이상한 점을 알려 주시면 고칠게요. 지금 보고 있는 페이지와 브라우저 정보가 함께 담겨요.

페이지:

Frontend

기술 스택 고르기

작성 2026. 10. 21.추가
목차12개 항목
출처와 참고

테오(teo)의 「2024 프론트엔드 기술스택 이야기」(2024.04)를 바탕으로 재구성한 노트다. Grab의 「Front End Guide」를 바탕으로 보강했다. 「캐즘을 넘었는지 알아보는 법」의 통계·채용 공고 확인은 위니브의 「프론트엔드 개발자 가이드」를 바탕으로 보강했다.

기술 스택이란

기술 스택은 프로젝트에 쓰는 언어·프레임워크·DB·인프라·도구의 묶음이다. 개발은 누군가 만든 기술 위에 내 기능을 얹는 일이라, 프로젝트는 고른 스택에 의존할 수밖에 없다. 스택은 개발 속도, 유지 보수, 팀 협업, 사람 뽑기, 장기 생존에 모두 영향을 준다.

스택은 혼자 쓰지 않는다. 누군가 문제를 느껴 새 방법을 내놓고, 비슷한 문제를 겪는 사람들이 묻고 답하며 고치는 과정에서 단단해진다. 그래서 커뮤니티가 스택을 키운다. 커뮤니티가 없는 기술은 막혔을 때 도움을 받을 곳이 없고, 그 인식이 다시 사람을 떠나게 하는 악순환에 빠진다.

유행은 어떻게 만들어지나

기술 수용 주기

성향속마음역할
혁신가(Innovators)"문제가 있네. 새로 만들어야겠다"위험을 감수하고 새 도구를 만든다
얼리어답터(Early Adopters)"이거 좋다! 여러분 이런 게 있어요"발견하고 널리 알린다
초기 다수(Early Majority)"흥미로운데 지금 나한테 필요할까?"비용을 따져 적절한 때 받아들인다
후기 다수(Late Majority)"대세가 되면 그때 하자"증거가 쌓인 뒤 도입한다
회의론자(Laggards)"지금 기술이면 충분해"기존 방식을 끝까지 지킨다. 위험 관리 역할도 한다

캐즘과 하이프 사이클

  • 캐즘(Chasm): 얼리어답터의 열광과 대중의 수용 사이에 있는 깊은 골. 새 기술을 배우고 바꾸는 데는 비용이 들기 때문에 대부분은 주류가 될 것 같을 때에야 움직인다. 이 골을 넘는 기술은 드물다.
  • 하이프 사이클(Hype Cycle): 발표 → 과대 기대 → 현실 검증 → 주류 수용. 얼리어답터가 떠들 때가 가장 시끄럽다. 그들이 열정적으로 홍보하는 이유는 캐즘을 못 넘으면 좋아하는 기술이 사라진다는 걸 알기 때문이다.
  • 프론트엔드는 jQuery → AngularJS → React·Vue·Angular → Svelte·Solid·Qwik으로 10년 넘게 거대한 하이프를 겪은 뒤 안정기에 들어섰다. 하이프가 지난 것은 몰락이 아니라 안정이다. 대안 프레임워크가 내놓은 아이디어(컴파일러 최적화, 시그널 반응성)는 주류 프레임워크가 흡수하는 식으로 퍼진다.

캐즘을 넘었는지 알아보는 법

혁신가는 "이런 새 문제를 풀 수 있다"고 말한다. 주류가 된 기술은 알려진 문제의 해결 과정이 공유된다. 학원 커리큘럼, 취업 블로그, TIL에 등장하면 확실히 넘은 것이다.

수치로 확인할 때는 해마다 나오는 개발자 설문의 사용률과 만족도 추이를 본다. Stack Overflow Developer Survey는 언어·프레임워크 전반을, State of JavaScript·State of CSS는 프론트엔드 도구를 써 본 사람의 재사용 의향까지 보여 주고, GitHub Octoverse는 저장소 활동량으로 생태계 규모를 보여 준다. 사용률은 높은데 만족도가 떨어지는 도구는 레거시로 넘어가는 중이다. 취업 준비라면 가고 싶은 회사 목록을 먼저 뽑아 채용 공고에 적힌 스택을 모으는 것이 가장 직접적인 기준이다.

고르는 기준

기준질문
범용성과 특수성우리 프로젝트에 필요한 기술인가? 기본은 보편 스택(예: TypeScript + React)으로, 뾰족한 문제에는 뾰족한 도구를 섞는다
학습 비용새로 배워야 하나, 배우기 쉬운가? 비슷한 기능이면 사람들은 결국 쉬운 쪽을 고른다 (Redux → Redux Toolkit → Zustand로 옮겨 간 흐름, 강력하지만 어려워 널리 퍼지지 못한 RxJS)
커뮤니티와 지원모르는 에러를 만나면 답을 찾을 수 있는가? 검색해도 안 나오는 에러의 막막함을 떠올려 보라
인력 수급이미 배운 사람을 구하기 쉬운가?
지속 가능성오래 업데이트되고 트렌드에 맞는가? 회사는 10~20년을 본다

잘 모르면 커뮤니티가 큰 도구를, 팀원이 가장 많이 아는 도구를 고르는 게 대부분 안전하다.

비주류를 고르면 생기는 일

결과물에 문제가 없어도 비주류 스택(자체 제작 프레임워크 포함)에는 대가가 따른다.

  • 쓰는 사람의 이력에 주류 프레임워크 경험이 비게 된다. 채용은 경험을 요구하고, 경험은 채용돼야 쌓인다.
  • 인수인계가 어렵다. 문서 없는 자체 프레임워크나 작은 생태계의 기술은 담당 팀이 바뀌면 주류 스택으로 다시 짜이기 쉽다.
  • 생태계가 작으면 필요한 것을 찾기 전에 직접 만들어야 하고, 베스트 프랙티스가 없다.

좋은 기술이라는 것과 회사에서 쓸 기술이라는 것은 다르다. 비주류 기술은 사이드 프로젝트로 해 보기에 좋다.

큰 팀은 유지 보수성과 안정성을 먼저 본다

팀이 빠르게 커지고 백엔드 개발자·신입까지 프론트엔드 코드를 만지면 기준의 무게가 바뀐다. 한 사람의 생산성보다 처음 온 사람이 고쳐도 깨지지 않는가가 중요해진다. 코드는 쓰는 횟수보다 읽는 횟수가 많기 때문이다.

결정 축큰 팀에서의 판단예
관례인가, 도구가 강제하나관례는 한 사람이 어기면 깨진다. 도구가 강제하는 쪽을 고른다BEM 이름 규칙 대신 CSS Modules·@layer, 리뷰 지적 대신 Prettier·린터, 주석 대신 타입
경계가 분명한가입력과 출력이 뚜렷하면 테스트와 대규모 리팩터링이 쉽다같은 props면 어디로 옮겨도 되는 컴포넌트, 「이전 state + 액션 → 새 state」인 reducer
클라이언트와 서버를 나누나API 계약만 지키면 따로 개발·배포한다. 여러 클라이언트가 한 API를 쓰면 이득이 크다SPA + API 서버
업그레이드 길이 있나메이저 버전마다 codemod와 마이그레이션 가이드를 주는가React·Next.js의 공식 codemod(Babel과 AST 변환)
개발 경험상태를 들여다보는 도구와 즉시 반영이 있는가React DevTools, Redux DevTools, HMR
재현되나누가 언제 설치·빌드·배포해도 결과가 같은가lock 파일, 한 번 빌드한 산출물을 환경마다 승격(CI/CD)

작은 팀과 짧은 프로젝트에서는 이 비용(설정, 타입, 린트 규칙)이 이득보다 클 수 있다. 결정은 팀의 크기와 코드의 수명에 맞춘다.

선택은 계층마다 「무엇을 · 왜 · 대안은」으로 적어 둔다. 그 문서가 새 팀원의 학습 가이드가 되고, 나중에 다시 평가할 때 기준이 된다. 「지금은 Flow, TypeScript와의 격차가 벌어지면 다시 본다」처럼 재평가 조건까지 적으면 결정이 낡았는지 알아보기 쉽다. 경쟁 도구가 비슷하면 「하나라도 쓰는 것이 안 쓰는 것보다 낫다」가 기준이 된다. Flow를 고른 팀도 문법이 비슷해 TypeScript로 큰 비용 없이 옮겨 갔다.

트렌드는 범주로 읽는다

스택 숙련도와 스택 이해도는 다르다. 숙련도는 특정 도구로 문제를 풀어 본 경험(짬)이고, 이해도는 그 도구가 어떤 범주의 어떤 문제를 풀려는지 아는 것이다. React·Vue·Angular는 모두 "DOM 직접 조작보다 데이터 기반 컴포넌트 렌더링이 낫다"는 같은 범주에 있다. 하나를 잘하면 나머지도 금방 한다.

개발 언어 · 프레임워크 · 메타 프레임워크 · 상태 관리 · 서버 상태 관리
유틸리티 CSS · CSS 방법론 · 컴포넌트 라이브러리 · 디자인 시스템
패키지 관리자 · 런타임 · 번들러·빌드 도구 · 포매터 · 테스트 도구 · 문서화 도구

새 기술이 나오면 두 가지만 묻는다.

  1. 기존 범주의 어떤 문제를 개선하려는가?
  2. 전에 없던 새 범주와 패러다임을 만드는가? (jQuery → 프레임워크처럼) 이쪽이면 더 주의 깊게 본다.

범주마다 주류 하나를 숙련하고 나머지는 배경과 코어 컨셉만 이해해도 트렌드를 따라가기에 충분하다.

계층별 기본 선택 (2026)

캐즘을 넘어 기본값이 된 조합이다. 코드를 짜는 계층뿐 아니라 코드를 사용자에게 보내고 지켜보는 계층까지 한 줄씩 정해야 스택이 완성된다.

계층주류고르는 이유대안·과거
언어TypeScript (7.0부터 Go로 다시 쓴 네이티브 컴파일러)리팩터링할 때의 확신, 타입이 곧 문서라 온보딩이 빠르다(TypeScript)JavaScript. 과거에는 Flow가 「배우기 쉽고 파일 단위로 옮길 수 있다」는 이유로 경쟁했다
UI 프레임워크React (React Compiler로 메모이제이션 자동화)화면을 props·state의 함수로 선언한다. API가 작고 잘 안 바뀌며 생태계가 가장 크다Vue, Svelte 5, Angular(다른 프레임워크)
메타 프레임워크Next.js라우팅·SSR·코드 스플리팅을 정해진 구조로 받는다React Router(구 Remix), Nuxt, SvelteKit, Astro. 과거 Create React App은 지원 종료됐다
서버 상태TanStack Query캐시·재요청·로딩 상태를 직접 짜지 않는다SWR
클라이언트 상태Zustand학습 비용과 보일러플레이트가 작다Jotai, Redux Toolkit(액션 기록·미들웨어가 중요할 때). 과거에는 Redux가 사실상 기본이었다
스타일Tailwind CSS v4디자인 토큰을 강제하고 전역 이름 충돌이 없다CSS Modules, zero-runtime CSS-in-JS(CSS-in-JS와 CSS Modules). 과거에는 BEM 같은 이름 규칙에 기댔다
컴포넌트shadcn/ui (Radix 같은 헤드리스 컴포넌트 위)코드를 내 저장소에 복사해 직접 소유한다MUI, Mantine
빌드Vite (Rolldown 번들러)설정이 거의 없고 개발 서버가 즉시 뜬다webpack, Rspack(번들러의 역사와 Vite)
패키지 매니저npm, 모노레포는 pnpmlock 파일로 설치를 재현한다. pnpm은 전역 저장소로 디스크를 아끼고 유령 의존성을 막는다Bun. 과거 Yarn v1이 lock 파일과 오프라인 캐시로 npm을 앞섰지만 npm 5 이후 격차가 줄었다(패키지 매니저)
테스트Vitest, Testing Library, Playwright구현이 아니라 사용자가 보는 행위를 검증한다Jest. 과거 React 컴포넌트는 Enzyme, e2e는 Cypress가 강했다(테스트 도구)
포매터·린터Prettier, ESLint, stylelint스타일 지적을 리뷰에서 없앤다(ESLint와 Prettier)Biome
UI 문서화Storybook컴포넌트를 앱 밖에서 따로 보고 시험한다
CIGitHub Actions저장소에 내장되어 린트·테스트·빌드를 PR마다 돌린다GitLab CI, CircleCI. 과거 Travis CI가 오픈소스의 기본이었다
호스팅·CDNVercel·Netlify, 또는 S3 + CloudFront정적 산출물은 앱 서버 없이 스토리지 + CDN으로 낸다(S3·CloudFront)Cloudflare Pages
배포PR 미리보기 + 버전별 산출물 승격롤백은 이전 버전 재배포로 끝난다과거에는 Ansible Tower 같은 별도 배포 도구를 썼다
모니터링Sentry + Web Vitals 실사용자 측정앱 로직 에러와 실제 성능을 본다. 네트워크 장애는 CDN 지표로 따로 본다(에러 핸들링)

레거시를 대하는 자세

  • 기술은 사람들이 더 이상 배우고 싶어 하지 않을 때 레거시가 된다. 오래된 것이 곧 레거시는 아니다. 아직 쓰인다면 이유가 있다.
  • 표준이 바뀌는 데는 시간이 오래 걸린다. 늦은 다수여도 괜찮다. 다만 미루다 컴포트 존에 숨는 기술 꼰대가 되지는 않는다.
  • 커리어에서 스택 전환은 최소 한두 번 온다. 불안해할 필요는 없지만 준비는 한다.
  • 내 성향과 팀원의 성향이 수용 주기의 어디인지 알면 스택 논쟁이 편해진다. 성향은 틀린 게 아니라 다른 것이다.

정리

  • 스택은 함께 쓰는 것이라 커뮤니티와 생태계가 기술의 수명을 정한다.
  • 새 기술 대부분은 캐즘을 넘지 못한다. 가장 시끄러운 때는 얼리어답터 구간이니 조급해할 필요 없다.
  • 범용성·학습 비용·커뮤니티·인력·지속 가능성으로 고르고, 모르면 다수가 쓰는 것을 쓴다.
  • 큰 팀은 관례보다 도구가 강제하는 쪽, 경계가 분명하고 재현되는 쪽을 고른다. 계층마다 무엇을·왜·대안을 적어 두고 재평가 조건을 단다.
  • 도구 하나보다 범주와 문제 인식을 이해하면 무엇이 나와도 따라갈 수 있다.

관련 노트: 프론트엔드 개발자의 업무 범위와 역량, React와 Vue 말고: 다른 프론트엔드 프레임워크, 번들러의 역사와 Vite, 프론트엔드 학습 로드맵

원본 기록5

댓글

GitHub 계정으로 댓글을 남길 수 있어요.