메뉴
HN
Hacker News 1일 전

AI가 프론트엔드의 잃어버린 10년을 되풀이하는가?

IMP
8/10
핵심 요약

본 글은 현재 AI가 프로그래밍 직무를 단순화(deskilling)시키는 현상이 지난 10년간 JS 프레임워크가 프론트엔드 개발을 겪었던 하향 평준화와 본질적으로 동일하다고 지적합니다. 저자는 프레임워크와 AI 기술의 도입이 기업의 비용 절감과 노동자의 교섭력 약화로 이어졌으며, 결과적으로 장인정신의 상실과 작업 품질의 저하를 초래했다고 분석합니다.

번역된 본문

AI가 프론트엔드의 '잃어버린 10년(Lost Decade)'을 반복하고 있는가? 마우로 비크(Mauro Bieg), 2026년 5월 23일

AI가 프로그래머의 일자리에 미치는 영향은 우리 프론트엔드 개발자 다수에게 매우 익숙하게 느껴집니다. 왜냐하면 우리는 이미 이 일을 겪어봤기 때문입니다. 먼저 기술의 단순화(deskilling)라는 관점을 통해 프론트엔드의 변화와 에이전트 기반 코딩(agentic coding)을 살펴보고, 이후 더 높은 수준의 추상화(abstraction)라는 관점을 통해 두 가지 변화를 모두 조명해 보겠습니다. 마지막으로 스택 오버플로우(Stack Overflow)의 코드 복붙(copy-pasta)과 같은 이전의 변화들, 그리고 산업화가 심화되던 시기에 바우하우스(Bauhaus) 운동이 어떻게 반응했는지를 살펴볼 것입니다.

기술의 단순화(Deskilling)

지금 AI가 프로그래밍 기술을 단순화시키고 있는 것처럼, 지난 10년 동안 자바스크립트(JavaScript) 프레임워크 역시 프론트엔드 개발을 단순화시켰습니다. 저는 HTML과 CSS, 그리고 약간의 PHP로 시작해 나중에는 루비 온 레일즈(Ruby on Rails)를 다뤘고, 주요 스위스 신문사의 프론트엔드 팀 리드(당시 Next.js 사용)를 역임한 사람으로서 이러한 변화를 직접 목격했습니다. 제 말만 믿으실 필요는 없습니다! 저는 이런 말을 처음 하는 사람이 아닙니다. 알렉스 러셀(Alex Russell)은 이를 '프론트엔드의 잃어버린 10년'이라고 불렀습니다.

기술의 단순화란 무엇일까요? 위키피디아에 따르면 다음과 같습니다: "기술의 단순화(deskilling)는 반숙련된 또는 미숙련된 노동자가 운영하는 기술의 도입으로 인해 산업이나 경제 내의 숙련된 노동이 배제되는 과정이다. 이는 비용 절감으로 이어지며 [...] 진입 장벽을 낮추고 [노동자의] 교섭력을 약화시킨다."

이러한 현상이 프론트엔드에 어떻게 적용되는지, 그리고 에이전트 코딩에는 어떻게 적용되는지 살펴보겠습니다.

프론트엔드의 기술 단순화

많은 프로그래머들이 잘 모를 수도 있지만, 과거의 프론트엔드는 시맨틱 HTML, CSS, 다양한 브라우저 간의 차이, 접근성, 점진적 향상(progressive enhancement), 네트워크 성능, 인터페이스 디자인, 사용자 테스트 등에 대한 지식이 필요한 고도로 전문화된 기술이었습니다. 여기서 몇 가지만 예로 들었습니다. 그들이 하는 일이 오늘날의 '프론트엔드'가 된 것과 구별하기 위해, 이 신비로운 기술을 다루는 실무자들은 요즘 종종 이를 '프론트엔드의 프론트엔드(front of the frontend)'라고 부릅니다.

프론트엔드의 기술 단순화는 브라우저를 단순한 컴파일 대상으로 취급하는 프레임워크 및 기타 도구의 도입이었습니다. 즉, 다른 앱 런타임(예: JVM 또는 iOS)과 같이 취급한 것입니다. 그런 다음에는 Shadcn 라디오 버튼과 같은 괴물 같은 요소를 그냥 로드하면 되므로, 기반이 되는 HTML, 다양한 브라우저와 관련된 미묘한 차이, 페이지 로드 성능 및 접근성을 이해할 필요가 없어졌습니다.

위의 위키피디아 인용문에서 지적했듯이, 이는 기업에게 '비용 절감'을 가져다줍니다. 왜냐하면 기업은 일반적인 프로그래머라면 누구나 쉽게 프론트엔드 작업에 투입할 수 있기 때문입니다. 안타깝게도 '풀스택 개발자'는 프론트엔드와 백엔드를 모두 깊이 이해하는 사람이라기보다는, JavaScript 프레임워크를 다루어 둘 다 처리할 수 있는 약간의 지식만 가진 일반주의자(Generalist)인 경우가 많습니다. 이를 통해 기업은 프로그래머를 여러 프로젝트 사이에서 쉽게 전환시킬 수 있습니다. 동일한 일반주의자는 React Native와 Electron을 사용하여 네이티브 앱까지도 만들 수 있습니다!

위키피디아 인용문을 마무리하자면, 이러한 현상은 '진입 장벽을 낮춥니다'(이는 제가 항상 소중하게 여겼던 것입니다). 하지만 동시에 '노동자들의 교섭력을 약화시킵니다'.

AI는 프로그래밍을 단순화하고 있다

프로그래머에게 지금 일어나고 있는 일은 일반적으로 웹 개발자들이 이미 겪고 있는 일과 매우 흡사해 보입니다. 코드를 수동으로 작성하는 숙련된 작업이 '반숙련된 또는 미숙련된 노동자가 운영하는 기술의 도입으로 인해 배제되고' 있습니다.

이러한 변환이 끝날 때쯤 에이전트 AI를 다루는 노동자에게 정확히 어떤 기술 세트가 필요할지, 그리고 노동력과 로컬 및 원격 LLM(대형 언어 모델) 모두에 대해 어느 가격대에 도달할지 아직 알 수 없습니다. 그러나 기업이 이 기술을 비용 절감과 노동자의 교섭력 약화를 위해 절대적으로 사용할 것이라는 점은 이미 명백합니다.

깊은 상실감

1세기 전에 조립라인 노동자로 대체된 장인과 수공업자들처럼, 우리 역시 깊은 상실감을 느낍니다. 우리는 반평생을 들여 갈고닦은 기술이 더 이상 시장에서 가치 있게 평가받지 못하는 것에 대해 애도합니다. 그리고 새로운 프로세스가 결과적으로 낮은 품질의 작업을 만들어낸다는 사실에 슬퍼합니다.

원문 보기
원문 보기 (영어)
Is AI causing a repeat of Frontend’s Lost Decade? Mauro Bieg on May 23, 2026 What AI is doing to the jobs of programmers feels very familiar to a lot of us frontend developers – because it has happened to us before. Let’s first look at the transformation of the frontend and agentic coding through the lens of deskilling , and then look at both changes through the lens of a higher level of abstraction . Finally, we’ll look at previous changes, like the advent of copy-pasta from Stack Overflow, and how the Bauhaus movement reacted to rising industrialization. Deskilling Just like AI is deskilling programming now, JavaScript frameworks have deskilled frontend development in the last decade. As someone who started with HTML/CSS and a bit of PHP, later did Ruby on Rails, and then was frontend team lead of a major Swiss newspaper (Next.js at the time), I’ve seen the transformation first-hand. And no need to take my word for it! I’m not the first to say so . Alex Russell called it Frontend’s Lost Decade . What is deskilling? From Wikipedia : Deskilling is the process by which skilled labor within an industry or economy is eliminated by the introduction of technologies operated by semi- or unskilled workers. This results in cost savings […] and reduces barriers to entry, weakening the bargaining power of [workers]. Let’s see how this applies to the frontend, and then to agentic coding. The deskilling of the frontend A lot of programmers may not know this, but frontend used to be a highly specialized skill, requiring knowledge of semantic HTML, CSS, the differences of various browsers, accessibility, progressive enhancement, network performance, interface design and user testing – to just name a few. To distinguish what they’re doing from what “frontend” has become, practitioners of this arcane art nowadays often refer to it as the “front of the frontend”. The deskilling of the frontend was the introduction of frameworks and other tooling that treats the browser as a mere compilation target – just like any other app runtime (e.g. JVM or iOS). Then you can just load in the monstrosity that is a Shadcn radio button , and don’t need to understand the underlying HTML, any subtleties involving different browsers, page load performance, and accessibility. As the Wikipedia quote above points out, this “results in cost savings” for businesses, since they then can easily put any general programmer to work on the frontend. Often, a “full-stack developer” is unfortunately not somebody who deeply understands the frontend and the backend, but a generalist who just knows enough to wrangle a JavaScript framework to do both. This allows businesses to easily switch programmers around between different projects . The same generalist can even also do native apps with React Native and Electron! To finish the Wikipedia quote: this “reduces barriers to entry” (which is something I’ve always cherished), but it also “weakens the bargaining power of workers”. AI is deskilling programming What’s currently happening to programmers more generally seems very similar to what web developers in particular have been going through already. The skilled job of writing code manually is being “eliminated by the introduction of technologies, operated by semi- or unskilled workers.” We still don’t know exactly what skillset the workers wrangling agentic AI will need to have at the end of this transformation, and at what price point we’ll arrive at – for both labour, and for local and remote LLMs. But it is already clear now, that businesses absolutely will use this technology for cost savings and weakening of the bargaining power of workers. A profound sense of loss Just like artisans and craftsmen that were replaced by assembly line workers more than a century ago, we feel a profound sense of loss. We grieve that a skill, that we spent half a lifetime honing, is not being valued by the market anymore. And we’re saddened that the new process results in lower quality work, and that a lot of people just don’t seem to care. Operating at a higher level of abstraction An alternative way to look at “deskilling” is of course to argue that this is just increasing efficiency using automation. And what engineer doesn’t like automating things? It’s a big part of our job after all! In this framing, the new technology introduced simply works on a higher level of abstraction, allowing the person operating it to focus on the bigger picture, without having to bother about unimportant details. But exactly which details are deemed “unimportant” is a very consequential and sometimes subjective decision. And eventually, the details always leak through . “Modern” frontend: a tower of leaky abstractions It’s common for an abstraction to come at a cost of performance. But since computers are very fast nowadays, we were often willing to trade some runtime performance for increased developer productivity (garbage collection is one example). And for high-powered servers under moderate load, this is a very sensible tradeoff. But mobile phones on slow networks are a different beast. By using a heavy client-side JavaScript framework like React, and a lot of packages from that ecosystem, you’re abstracting over things like accessibility , and performance on lower-end phones, or on slow networks . In effect, you’re choosing not to think about those things, and you’re choosing not to care about them. Agentic coding: an undeterministic abstraction By using agentic AI to code a feature or fix a bug, you’re describing the change at a higher level of abstraction, writing fewer words than writing all code by hand. The AI will fill in the details you omitted by looking at its training data and surrounding context – sometimes guessing well, other times not. Whether you find this useful or not depends to a large degree on your opinions on what’s important when coding. But compared to previous abstractions in programming, agentic coding is a very leaky abstraction. It’s not deterministic like a compiler, and slight variations in input or model can give very different results. That has led people to compare AI to “junior engineers”, since those are also not deterministic. But one difference is of course that people are capable of learning, without you having to endlessly tweak their AGENTS.md or SKILL.md files. LLMs as an extension of copy-pasta from Stack Overflow As such, the best analogy for using LLMs I’ve found so far is how a Google search used to behave. It was a skill all of us had to learn at some point: choosing just the right keywords, so that the right forum post (and later Stack Overflow post) would surface on the first Google results page. Just like prompting an LLM, in order to return the right assemblage of its training data, a fuzzy web search is a lookup in a very high-dimensional space. And just like with LLMs, the lookup used to be very sensitive to slight variations of wording, and changes to Google’s search index. In recent years, among other things, Google has changed the search to normalize entered terms much more aggressively. For people who were not versed in the dark art of Google-fu, this made the search much easier to use. But for those of us that had acquired that skill, it made Google search much less powerful. Specialized keywords used to bring us directly to an answer. Now they get normalized to a synonym, or to a closely associated word, and we land on a more generic page. But the advent of Google, and later Stack Overflow, irreversibly changed programming. Instead of reading the f***ing manual, programmers could now just blindly copy & paste answers from Stack Overflow, and surprisingly often got something that kind of worked. Seen through this lens, LLMs are just a continuation of the same trend: tools and abstractions that make people that know what they’re doing slightly faster, and enable people who don’t really know what they’re doing to arrive at something that often kind of works. And you know wha