프론트엔드 트레드밀(러닝머신)
(polotek.net)- 많은 프론트엔드 팀이 프론트엔드를 새로 작성하면 성공할 것이라고 확신함
- 하지만 프론트엔드 프레임워크 선택은 장기적인 제품 개발에서 가장 중요하지 않은 기술적 결정임
- 프레임워크 선택에 시간을 낭비하는 것은 비효율적임
- 프레임워크는 5년 안에 구식이 될 가능성이 높음
- 프론트엔드 커뮤니티는 빠르게 변화하기 때문에 프레임워크는 자주 업데이트되거나 새 버전으로 대체됨
스마트한 프로덕트 팀의 접근 방식
- 똑똑한 제품 팀은 프레임워크를 바꾸는 대신 현재 프레임워크에 대한 깊은 이해를 추구함
- 프레임워크 변경은 함정임
- 현재 사용하는 도구를 깊이 이해하고, 작업에 방해가 되지 않도록 하는 것이 중요함
구직 엔지니어를 위한 조언
- 특정 프레임워크에 강한 선호가 있다면, 그것을 기준으로 일자리를 찾을 것
- 기존 팀에 들어가서 프레임워크 변경을 설득하려 하지 말 것
- 이는 팀에 큰 비용과 혼란을 초래함
프론트엔드 기술 비용을 줄이는 방법
- 기본 웹 기술에 집중해야 함
- 복잡한 추상화 계층을 줄이고, 웹 플랫폼의 기본 기능을 재학습해야 함
- 이를 통해 장기적으로 더 나은 가치 제공 가능
- 핵심 웹 기술에 가까운 상태를 유지하면 새로운 엔지니어를 쉽게 채용할 수 있음
- 대규모 코드 리팩토링 없이도 생산성 유지 가능
엔지니어의 장기적인 경력 관리 전략
- 핵심 웹 기술을 깊이 이해하면 장기적인 경력 가치가 높아짐
- React 이전에도 있었고, React 이후에도 살아남을 수 있음
- 최신 인기 기술을 배우는 데 집중하는 것보다 기본 기술을 익히는 것이 더 유리함
- 기술 변화로 인해 해고될 가능성은 항상 존재함
- 특정 기술에 의존하기보다 기본기를 강화하는 것이 더 안정적임
현업에서 솔직하게 말하기 어려운 이유
- 관리직에 있을 때는 이런 솔직한 발언이 어려움
- 동기가 의심받거나 팀의 반발을 살 수 있음
- 20년 이상 경험에서 얻은 교훈이므로 현실적인 조언임
프론트엔드 생태계의 문제점
- 현재 프론트엔드 생태계는 복잡함
- 신입 개발자가 필요한 기술을 배우기가 어려움
- 복잡한 툴 때문에 좌절하고 있음
- 기본적인 개발자 채용도 어려워지고 있음
- 현재 기술 생태계에서 배운 기술은 추상화가 너무 심함
- 기술 변화 시 큰 불리함으로 작용할 수 있음
웹의 정체와 도구의 문제점
- 웹의 정체는 도구의 복잡성이 원인
- 개발자들이 창의적이고 멋진 것을 만들고 싶어 하지만 도구가 방해됨
- 기본 웹 기술 학습이 비효율적이라는 인식이 문제임
개인적인 입장
- 필자는 오랫동안 웹 개발에 열정적이었음
- 웹은 여전히 강력하고 독특한 플랫폼임
- 웹 플랫폼의 기본 도구는 매우 우수함
- 하지만 현재의 프레임워크 계층은 웹 플랫폼의 본질에 역행하고 있음
Hacker News 의견
-
최근 FE 코드의 빌드 시스템을 yarn에서 pnpm으로 교체하는 작업을 하고 있음
- 백엔드 엔지니어지만 JS 작업도 많이 해왔음
- FE 작업을 하면서 가장 답답한 점은 거의 모든 것이 사용 중단된다는 것임
- 예를 들어, 2022년에 apollo CLI를 사용했는데, 이제는 사용 중단되어 graphql-client를 배워야 함
- 의존성을 패치 업그레이드하려고 하면 타입 시그니처에 의존하지 않기를 바라는 수밖에 없음
- 결국 빌드가 완료되지만, 수백 개의 사용 중단 경고가 나옴
- FE 개발은 변화와 사용 중단을 너무 쉽게 받아들이는 것 같음
- Rust 프로젝트에서는 4년 동안 몇 번의 작은 변화만 있었음
- JS에서는 6개월마다 무언가를 다시 작성해야 하는 것 같음
-
FE에서 20년 가까이 일해왔고 여러 패러다임 변화를 경험했음
- 핵심 웹 기술을 아는 것이 더 다재다능한 엔지니어가 되는 데 도움이 된다고 생각함
- 그러나 이것이 취업 시장에서 더 매력적으로 만드는지는 의문임
- React에 매우 능숙해야 시장 가치를 극대화할 수 있음
-
프론트엔드 개발자가 아니지만, React를 10년 동안 사용해왔음
- Svelte로의 이동이 있지만, React가 여전히 강력함
- 프론트엔드 개발은 빠르게 변하지만 그렇게 나쁘지는 않음
-
프론트엔드 프레임워크를 사용하지 않는 것이 트레드밀에서 벗어나는 방법임
- 서버 사이드 렌더링과 필요한 경우에만 JavaScript 사용
-
LLM이 더 두드러지면서 새로운 기술에 대한 관심이 줄어들 것임
- Bevy와 Svelte에서의 경험을 통해 새로운 도구보다 기존 도구를 선호하게 될 것임
-
Vanilla JS와 CSS의 발전으로 서버에서 템플릿 HTML과 필요한 곳에서 JS를 사용하는 것이 더 의미가 있음
- React와 같은 프레임워크가 여전히 강력하지만, 서버에서의 UI 상태 관리가 더 쉬움
-
프론트엔드 문제가 아니라 큰 생태계의 문제임
- Java에서도 비슷한 상황을 경험했음
- 백엔드에서는 새로운 언어로의 전환이 더 큰 문제임
-
웹 개발 초기에 Svelte와 React에 대한 이야기를 들었지만, MDN을 읽고 다른 것은 무시하는 것이 좋음
-
React를 10년 넘게 사용해왔고, 프레임워크가 5년 안에 구식이 된다는 주장에 동의하지 않음
-
20년 넘게 웹 개발을 해왔고 CHAMP 스택에 만족함
- CHAMP는 CSS, HTML, Apache, MySQL, PHP를 의미함
- 프레임워크를 사용하지 않고 기존 기술을 고수한 것이 만족스러움