(번역)자바스크립트가 웹을 망가뜨렸습니다. (그리고 이를 진보라고 불렀습니다)
Medium
자극적인 글을 하나 읽었다.
'개발자들이 새로운 기술 도구로 ‘기술 놀이’를 하느라 복잡성과 비용을 키웠다.'
프론트엔드가 지금까지 발전하며 수 많은 고민과 개선이 있었겠지만, 그 결과 20년전 수십 kb로 구현할 수 있던 기능이 이제는 수 mb의 js 파일을 필요로 한다.
그렇다고 유지보수성이나 개발 생산성이 정말로 향상되었는가? Yes 이면서도 No 이다. 프레임워크와 툴체인은 초기 개발과 반복 작업을 빠르게 만들었지만, 그 대가로 가파르게 상승한 복잡도 속에서 사소한 수정조차 전방위적 사이드 이펙트를 일으키는 구조가 되었다. 생산성은 순간적으로 올라갔지만, 유지보수는 점점 더 전문성과 컨텍스트 의존도를 요구하게 된 것이다.
그리고 이제는 그 복잡도를 유지하면서 새로운 기능을 추가하기 위해 조직은 더 많은 인력과 인건비, 세분화된 포지션을 감당해야 한다. 하나의 기능을 구현하기 위해 프론트엔드, 백엔드, DevOps, QA, 기획이 머리를 맞대야 하고, 각 단계마다 파이프라인을 통과해야만 한다. (과거엔 '웹 마스터' 라는 1인 직책이 있었다는 것을 기억하는가?) 개발은 점점 더 느려지고, 사소한 변경도 일정과 리소스의 계산 대상이 된다. 결국 복잡성은 기술적 문제가 아니라 조직 전체의 민첩성과 효율성을 갉아먹는 구조적 비용으로 이어진다.
물론, 지금의 프론트엔드 스택이 만들어낸 복잡성이 전적으로 불필요하다고 말할 수는 없다. 웹이 더 이상 정적인 문서의 나열이 아닌, 복잡한 상호작용과 상태를 갖는 ‘애플리케이션’의 역할을 감당하게 되면서, 그만큼 체계화된 설계와 개발자 경험(DX)을 위한 도구가 필요해졌다는 주장도 충분히 설득력이 있다. 실제로 컴포넌트화, 타입 시스템, 상태 관리 패턴 등은 팀 규모가 커질수록 유지보수성과 협업 효율을 높여주는 도구이기도 하다. 문제는 이 도구들이 ‘필요한 곳’에 쓰이는 것이 아니라, ‘모든 곳’에 일괄적으로 적용되고 있다는 점이다.
2016년, 모 회사의 기술 면접 과제를 해결하기 위해 redux를 처음 익힐 때가 떠오른다. 단순히 버튼 하나 누를 때 값을 바꾸는 작업인데, 액션을 만들고, 타입을 정의하고, 리듀서를 작성하고, 디스패치를 연결해야 했다. '왜 이렇게 어렵고 복잡하게 상태를 관리해야 하지?' 하는 의문이 들었지만, 그땐 '원래 React 개발은 그런가 보다' 하고 넘겼다. 지금 돌이켜보면, 그 복잡함은 필수가 아니라 비판 없이 수용된 일종의 정답처럼 느껴졌다.
SSR도 마찬가지다. React 초기에는 SPA 기반 CSR로 인해 SEO조차 쉽지 않았던 기억이 난다. 백엔드 개발자로 몇 년을 보내고 어느 순간 프론트엔드 개발 트렌드를 보았을 때 Helmet과 같은 React SSR 방식이 유행을 타고 있었다. 그런데 원래 웹 개발은 모두 서버 사이드 렌더링이 아니었던가?
결국 모던 프론트엔드 프레임워크라 불리는 많은 것들이 구현하고 있던 것은 예전부터 기본값으로 주어졌던 기능들의 복잡하고 비효율적인 재현이었다. 라우팅, 메타태그, 템플릿 렌더링, 캐싱 같은 기본기를 다시 자바스크립트 생태계 안에서 어렵게 되살려내며 마치 그것이 혁신인 양 포장하고 있었을지도 모른다.
시간이 지날 수록 복잡한 빌드 파이프라인, 무거운 프레임워크, 과도한 추상화는 개발자에게는 익숙한 환경이 되었지만, 사용자에게는 점점 낯설고 느린 웹을 안겨주고 있다. 이제 마케터는 간단한 콘텐츠 수정조차 개발자에게 의존해야 하고, SEO 담당자는 개발자만이 읽을 수 있는 코드로 가려진 콘텐츠 탓에 검색 노출을 장담할 수 없다. 한 줄의 수정도 수차례 배포를 거쳐야 하며, 정작 페이지는 여전히 느리고 불안정하다.
정말 지금의 모습은 DX (Developer Experience) 를 위해 UX 를 해치고 있는걸까?
다음 내용이 궁금하다면?
이미 회원이신가요?
2025년 7월 17일 오후 5:08
”영리함보다 단순함을 선택하세요. 추상화보다 투명성을 선택하세요. 결과를 아키텍처보다 우선시하세요.“ 좋은 글이네요. 어쩔때는 단순하게 문제에 임해도 된다는 것을 환기시켜주고, 진짜 그간 너무 생산성에 목맨거 같기도 하네요 ㅋㅋ
@One Commit 10년 전에도 비슷한 얘기가 나왔을 거고, 10년 뒤에도 아마 비슷한 얘기가 나오지 싶어요 ㅋㅋ 풀리지 않는 숙제같은...
긴 글이지만 요점은, 웹을 소프트웨어처럼 만드는 방식에서 빠져나와 웹이 가지고 있는 특성 그대로를 살려 만들어야 한다는 것 같네요. 그런데... 그렇게 말하기에는 웹은 그것을 활용하려 하던 파트너들에 비해 너무 발전이 더뎠습니다. 웹 스스로가 하는 말이라 생각하면 양심이 없는 말이겠죠. ㅎㅎ 앱이 등장했을 때 맹목적으로 웹을 어플리케이션화하려는 시도들이 마구 나온 것도 이 때문이지 않았을까요. 필요한 부분에만 적용하기...가 쉽지 않았기 때문에 맹목적이기도 했을 것 같은데, astro같은 도구가 레버리지를 얻을 수 있으면 생태계에 변화가 일어날 수 있겠죠.
우
... 더 보기직장 생활을 하다보면
크고 작은 문제(Problem)들이