회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
AWS 이용 중이라면 최대 700만 원 지원받으세요
본문은 요즘IT와 번역가 Chase가 함께 조쉬 코모(Josh Comeau)의 글 <프론트엔드 개발의 종말(The End of Front-End Development)>를 번역한 글입니다. 필자인 조쉬 코모는 언스플래쉬, 칸 아카데미 등에서 일했고 현재는 웹사이트 Joshwcomeau.com를 운영하며 리액트, CSS, 애니메이션 등에 대한 다양한 아티클과 강의를 제공하고 있습니다. 이 글은 ChatGPT-4와 같은 AI 툴의 등장으로 ‘프론트엔드 개발자’의 종말을 걱정하는 이들에게 건네는 조언이 담겨 있습니다.
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
본문은 요즘IT와 번역가 Chase가 함께 조쉬 코모(Josh Comeau)의 글 <프론트엔드 개발의 종말(The End of Front-End Development)>를 번역한 글입니다. 필자인 조쉬 코모는 언스플래쉬, 칸 아카데미 등에서 일했고 현재는 웹사이트 Joshwcomeau.com를 운영하며 리액트, CSS, 애니메이션 등에 대한 다양한 아티클과 강의를 제공하고 있습니다. 이 글은 ChatGPT-4와 같은 AI 툴의 등장으로 ‘프론트엔드 개발자’의 종말을 걱정하는 이들에게 건네는 조언이 담겨 있습니다.
필자에게 허락을 받고 번역했으며, 글에 포함된 각주(*표시)와 링크는 모두 필자가 작성한 것을 따라 표시했습니다. 이 글은 2023년 5월에 발행된 글로, ‘지난주’와 같은 시간 표현은 발행 일을 기준으로 한 시점임을 미리 밝힙니다.
저는 지난 몇 달 동안 AI의 등장에 불안해하는 많은 주니어 개발자와 이야기를 나눴습니다. 그들은 GPT-4와 같은 AI 툴이 단기간에 비약적으로 발전하는 것을 보았고, 본인이 HTML/CSS/JS에 능숙해질 무렵에는 개발자로 취업할 기회가 사라지지 않을까 걱정하고 있었습니다.
이와 같은 분위기는 트위터에도 만연합니다:
저는 이 우려에 전적으로 반대합니다. 웹 개발자의 일자리는 사라지지 않을 겁니다. 그리고 저는 온라인에서 퍼지고 있는 FUD(Fear, Uncertainty, and Doubt)에도 반감이 있습니다.
그래서 이 글에서는 미래가 어떻게 바뀔지에 대한 저의 가설을 공유하려고 합니다. 신기술의 발전에 따라 상황은 분명히 지금과 달라지겠지만 사람들이 걱정하는 무서운 방향은 아닐 것입니다.
먼저 솔직히 말씀드리겠습니다.
저는 온라인에서 소프트웨어 개발을 가르치는 만큼 이 주제에 대해 편향된 의견을 가지고 있을 수 있습니다.
개발자 일자리가 사라지기 시작하면 제 사업에 좋지 않은 영향이 있을 겁니다. 그렇지만 이 글의 모든 내용은 저의 진실한 신념에 근거한 것입니다. 저의 신념이 편견인지 아닌지는 독자 여러분이 직접 판단해주세요.
1996년 인터넷 익스플로러 3에서 CSS가 처음 출시된 이후 2년 만에 최초의 '노코드' 웹사이트 빌더인 홈스테드(Homestead)가 출시되었습니다. 홈스테드를 통해 사람들은 코드를 단 한 줄도 작성하지 않고도 웹 페이지를 구축할 수 있게 되었죠.
웹 개발자들이 새로운 기술에 밀려서 일자리를 잃게 될 것이라는 우려는 아주 예전부터 있었습니다. 2000년대에 워드프레스가 등장했을 때도 그랬고, 2010년대에는 웹플로우(Webflow)가 공개되었을 때도 마찬가지였습니다. 심지어 2020년대 초반에는 '노코드' 도구도 등장했습니다.
그리고 어떤 의미에서 웹 개발자는 이미 쓸모없는 존재가 되었습니다! 요즘에는 동네 빵집이나 치과를 운영하는 사장님, 혹은 예술가들이 굳이 수천만 원을 지출하며 개발자를 고용해서 웹사이트를 만들지 않습니다. 이들은 스퀘어스페이스(SquareSpace) 같은 곳에 접속하여 마음에 드는 템플릿을 찾은 후 월 20달러(한화 약 2만 6천 원) 정도를 지출하는 선택을 하겠죠.
그런데도 웹 개발자 직군은 지금도 계속 존재합니다.
지난주에는 OpenAI가 GPT-4 쇼케이스에서 꽤 인상적인 데모를 선보였습니다. GPT-4는 손으로 그린 웹 사이트 스케치를 읽어 와서 약간의 자바스크립트를 더해서 'Reveal Punchline' 버튼을 연결하는 등, 전체적인 기능을 갖춘 온전한 웹 사이트를 만들어냈습니다.
아주 놀라운 성능이죠. GPT의 이 기능은 프로토타입을 제작하는 데에 상당히 큰 도움이 될 거라고 생각합니다. 하지만 분명하게 말씀드리자면, 지난 수십 년을 돌아봐도 이 수준의 페이지를 제작하는 데 굳이 웹 개발자가 필요하지 않았습니다. 이러한 HTML 기반의 문서와 현대의 프론트엔드 개발자가 작성하는 코드 사이에는 엄청난 차이가 있습니다.
지금까지 제가 본 툴의 데모들은 간단한 HTML 페이지나 단일 자바스크립트 함수 등 매우 제한적인 수준의 작업을 수행했습니다. 개발자 한 명이 반나절이면 만들 수 있는 수준이죠.
물론 AI는 이제 막 진화하기 시작했습니다! 지금과 같은 속도로 계속 발전한다면 몇 년 안에는 AI로 애플리케이션을 통째로 구축할 수준까지 올라갈 수도 있겠죠.
저는 GPT-4와 같은 LLM 분야의 전문가는 아니지만, *LLM이 고수준(high level)에서 작동하는 원리는 이해하고 있습니다.
*Large Language Model(거대 언어 모델)의 약어 인간의 언어를 이해하고 생성하도록 훈련된 일종의 인공지능 모델
기본적으로 LLM은 매우 강력한 텍스트 예측 도구입니다. 프롬프트가 주어지면 머신러닝을 사용하여 프롬프트 다음에 나올 가능성이 가장 높은 문자 집합을 찾아냅니다.
OpenAI와 같은 회사들은 결과물을 개선하기 위해 모델을 조정하는 데 엄청나게 많은 시간과 에너지를 소비합니다. 인간 *라벨러 군단이 모델이 출력한 결과물에 ‘등급’을 매기면 모델은 이를 학습하고 진화합니다.
*라벨링(labelling)이란 인공지능이 스스로 학습할 수 있는 형태로 데이터를 가공하는 작업을 의미. 라벨을 붙이고 이를 AI에 주입해 AI의 학습데이터를 생성함.
Chat GPT나 Bing의 AI 기반 검색과 같은 도구를 사용해 본 적이 있다면, 응답의 정확도가 80% 정도라는 것을 알 수 있을 것입니다.
또한 LLM은 스스로의 가정을 검증하거나 가설을 테스트할 수 없습니다. 그들은 자신이 말하는 것이 사실인지 아닌지 검증할 수도 없습니다. 이런 툴들은 단순히 확률 게임을 하고 있으며, 특정한 문자열의 집합이 프롬프트의 문자열과 호환되는 것 같다고 예측하는 수준입니다.
심지어 LLM은 때때로 말도 안 되는 응답을 하는 경우도 있습니다. OpenAI 팀은 이를 ‘환각(hallucinations)’이라고 부릅니다. 기술이 고도화됨에 따라 AI의 성능이 개선되겠지만, 이러한 툴에는 응답을 객관적으로 검증할 수 있는 메커니즘이 없기 때문에 어느 정도의 근본적인 부정확성은 항상 존재할 것입니다.
따라서 정확도는 개선되겠지만 완벽하지는 않을 것입니다. 이 부분은 웹 개발자들이 필요 없어질 것이라는 주장에 반대되는 증거입니다. 프로그래머가 아닌 사람은 코드의 어떤 부분이 정확한지, 어디까지가 ‘환각’인지 아닌지 구분할 수 없기 때문이죠.
하지만 잠깐만요, 우리는 GPT-4 데모에서 AI가 오류 메시지를 복사/붙여넣으면서 문제를 고치는 것도 보았습니다!
맞습니다. 하지만 모든 환각이 오류로 발견되지는 않습니다. 예를 들어, 최근에 GPT-4로 리액트(React)를 사용하여 <모달> 컴포넌트를 생성했는데, 결과물은 놀라울 정도로 좋았지만 몇 가지 접근성 문제를 일으켰습니다. 앱의 개발자가 코딩할 때는 이런 문제를 알아차리지 못할 수도 있지만, 최종 사용자는 분명 불편함을 느낄 겁니다.
또 코드의 보안 취약점은 어떤가요? 만약 일이 끔찍하게 잘못되면 책임은 누가 져야 하나요?
한 가지 더 말씀드리자면, 50줄짜리 HTML 문서를 생성하는 것과 프로덕션 레벨의 웹 애플리케이션의 코드를 자동 생성하는 것 사이에는 엄청난 수준 차이가 있습니다. 이 블로그와 같은 작은 응용프로그램에도 900개 이상의 파일에 나눠진 약 65,000줄의 자바스크립트와 타입스크립트 코드가 있습니다.
AI의 정확도가 95%가 되어도 디버깅하기는 엄청나게 어려울 것입니다. 이는 마치 개발자가 큰 규모의 프로젝트에 수개월 동안 참여하면서 코드가 100% 완성될 때까지 코드를 실제로 실행해 보지도 않는 것과 같습니다. 듣기만 해도 악몽 같죠.
AI는 마법이 아닙니다. AI는 딱 학습한 데이터의 퀄리티만큼의 수준만 보여줄 뿐입니다. AI가 비교적 우수한 성능을 보이는 코드 조각(snippet)들은 인터넷에서 쉽게 찾아볼 수 있고, 제너럴한 경우가 많기 때문에 상대적으로 학습하기 용이합니다. 반면에 모든 코드베이스는 각자가 고유하며, 특히 대규모 오픈소스 코드베이스는 거의 없습니다. 그 말인즉 AI가 대규모 프로젝트를 학습할 데이터를 확보하기 어렵다는 얘기이며, AI 만으로 대규모 프로젝트를 구축하는 것은 비현실적이라는 말과 같습니다.
비개발자가 챗봇을 사용해서 소규모의 프로젝트를 만들 수 있는 세상이 매우 빠르게 다가오고 있습니다. 마치 오늘날 비개발자가 웹플로우와 같은 도구를 사용하여 웹을 구축할 수 있는 것과 비슷한 변화입니다. 정말 멋진 일이죠!
하지만 주요 테크 기업들이 개발자를 프롬프트 엔지니어로 대체하기에는 아직 갈 길이 멀다고 생각합니다. 이를 실현하는 데 걸림돌이 되는 몇 가지 문제(미래에도 해결할 수 없을지 모르는)가 있다고 생각합니다.
제 블로그가 왜 이렇게 크냐면요
앞서 제 블로그가 약 6만 5천 줄의 코드로 이루어졌다고 언급했습니다. 제가 하는 일을 잘 모르는 독자라면 이렇게 단순해 보이는 블로그에 이 정도로 많은 코드가 있는 게 이해하기 어려울 수 있습니다. 너무 과하게 설계된 것 같아 보일 수도 있죠.
코드가 많은 이유는 대부분의 블로그 게시물들은 Flexbox에 대한 인터랙티브 가이드와 같은 커스텀 인터랙티브 요소가 대부분이기 때문입니다:
또한 그래디언트 생성기 및 자바스크립트 연산자 검색 엔진과 같은 여러 개의 사이드 프로젝트도 동일한 코드베이스에서 호스팅하고 있습니다.
지금까지 글의 흐름 상 모르셨겠지만 저는 사실 AI에 대해 꽤 낙관적입니다. 제 생각에 가장 현실적인 시나리오는 GPT-4와 같은 도구가 개발자 도구에 통합되어서 숙련된 개발자의 업무 효율을 증가시키는 것입니다.
마치 목수가 전동 공구로 대체되지 않았고, 회계사가 스프레드시트로 대체되지 않았으며, 사진가가 디지털카메라/스마트폰*으로 대체되지 않았듯이, 개발자도 LLM으로 대체지 않을 거라고 생각합니다.
*믿기 어렵겠지만, 전문 사진작가의 수는 해마다 증가하고 있습니다. 미국 노동 통계국은 향후 10년간 일자리 수가 매년 9%씩 증가할 것으로 예상하고 있습니다. 참고로 전체 산업 평균은 5%입니다.
개발자 개개인의 업무 효율이 훨씬 더 높아지면 개발자 일자리가 줄어들까 걱정되시나요? 그렇지 않습니다. 현재 소프트웨어 개발자에 대한 수요는 공급보다 훨씬 더 많습니다. 제가 일했던 모든 회사만 해도 기획하는 일에 비해 개발자가 턱없이 부족했습니다.
개발자의 생산성이 갑자기 2배로 높아진다면 어떻게 될까요? 더 많은 버그가 수정되고, 더 많은 기능을 붙일 수 있으며, 이로 인해 더 많은 수익이 창출될 것입니다. 개발해야 할 일이 부족하지 않으니 개발자가 필요 없어지지 않을 겁니다.
저는 되려 개발자의 일자리가 늘어날 수도 있다고 생각합니다. 오늘날에는 소프트웨어 개발자를 전혀 고용하지 않는 회사가 너무 많습니다. 저는 큰 회사들(주로 유명한 기업들)을 위해 웹 애플리케이션을 구축하는 에이전시인 Konrad Group에서 일한 적이 있습니다. 에어전시에 의뢰하는 기업 입장에서는 개발 비용이 너무 비싸기 때문에 개발자를 사내에서 고용하는 것보다 에이전시에 외주를 주는 것이 더 경제적입니다.
이러한 포춘 500대 기업은 현재 소프트웨어 개발 비용을 기준으로 채용과 외주 사이에서 계산을 하고 있습니다. 몇 가지 숫자로 예를 들어보겠습니다. 프로젝트에 네 명의 개발자가 필요하고, 개발자 한 명을 고용하는데 연간 15만 달러(한화 약 2억 원)씩, 총 연간 60만 달러(한화 약 8억 원)의 지출이 필요하다고 가정해 보겠습니다. 이 경우에는 에이전시에 50만 달러(한화 약 6억 6천만 원)를 지불하는 것이 더 합리적입니다. 하지만 LLM이 정말로 개발자의 생산성을 향상시킨다면, 동일한 양의 작업을 수행하기 위해 각각 15만 달러에 개발자 2명만 고용하면 되게 됩니다. 갑자기 채용이 더 매력적으로 느껴지지 않나요?
경제학자들은 이런 상황을 '제번스 역설(Jevons Paradox)'라는 용어로 표현합니다. 이 역설은 1865년으로 거슬러 올라갑니다!
분명히 말씀드리지만 저는 경제학자가 아니고, 제 가설은 모두 추측에 불과합니다. 제 가설대로 미래가 바뀔 거라고 확신할 수도 없습니다. 다만 제가 말씀드리고 싶은 것은 AI의 발달이 개발자에게 무조건 나쁜 상황은 아닐 거라는 것입니다. 앞으로 상황이 어떻게 전개될지 아무도 모르는데, 자꾸 사람들이 최악의 시나리오가 기정사실인 것처럼 행동하는 것에 사실 조금 지쳐가고 있습니다.
애런 블레이즈(Aaron Blaise)는 애니메이터이자 일러스트레이터입니다. 그는 거의 20년 동안 디즈니에서 일하면서 미녀와 야수(1991), 알라딘(1992), 포카혼타스(1995) 등 디즈니의 고전 영화 제작에 참여한 베테랑이죠.
애런은 몇 주 전에 “AI 애니메이션에 대한 디즈니 애니메이터의 반응” 영상을 유튜브에 게시했습니다. 여러분이 저의 게시물을 읽고 나서 애런의 견해를 들으면 비슷한 결이라고 느끼실 겁니다. 아론 또한 새로운 도구의 등장을 위협으로 보지 않으며, 애니메이터의 생산성을 높이고 더 많은 애니메이터 일자리를 창출할 수 있는 기회라고 보고 있습니다.
이 외에도 수십 개 산업 분야의 아티스트와 지식 근로자들이 GPT-4, DALL-E 2, Midjourney와 같은 인공지능이 자신들의 일자리를 잠식할까 봐 걱정하고 있습니다.
일례로 변호사들은 GPT-4가 상위 10%의 점수로 모의 변호사 시험에 합격할 수 있을지에 대한 논쟁을 하고 있죠. 제 사견으로 대부분의 현업 전문가들은 인공지능 기술을 워크플로우에 통합하여 생산성과 가치를 높일 수 있는 방법을 찾을 것이라고 생각합니다. 기존 업무 중 일부는 인공지능에게 위임할 수 있지만, 그렇지 못하는 업무도 분명히 있을 겁니다.
하지만 제가 틀렸고 LLM이 소프트웨어 개발자를 완전히 대체할 수 있다면 어떻게 될까요? 만약 그렇다면 LLM이 개발뿐만 아니라 상당수의 지식 근로자를 대체해 버릴 겁니다.
그렇다면 이것은 개발자가 커리어를 전환한다고 해서 피할 수 있는 쓰나미가 아닙니다. 그러니 미래에 어떤 일이 일어날지 도박을 하는 대신 자신이 열정을 가지고 있는 분야, 관심 있는 분야, 잘하는 분야에 집중하는 것은 어떨까요?
프론트엔드 vs 다른 엔지니어링 분야
온라인에서 일부 사람들은 프론트엔드가 특히 AI에 위협받을 것이기 때문에 개발자들이 백엔드 또는 데이터 엔지니어링으로 전환해야 한다고 말합니다.
저는 정반대라고 생각합니다. 어떤 개발자도 쓸모 없어지는 것에 대해 걱정할 필요는 없다고 생각하지만, 만약 취약한 분야가 있다면 백엔드일겁니다.
지난주 OpenAI의 GPT-4 라이브스트림에서는 코드 관련 데모 두 가지를 선보였습니다:
- "농담 웹사이트(Joke Website)"의 프론트엔드
- 파이썬 기반 디스코드 봇
위의 두 데모 중 파이썬 코드가 훨씬 더 프로덕션에 적합해 보였습니다. 저도 최근에 Node.js를 사용하여 디스코드 봇을 만들었는데, 데모의 코드가 꽤 유사해 보였습니다.
반면에 농담 웹사이트를 위해 생성된 기본 HTML 문서와 제가 매일 작성하는 프론트엔드 코드 사이에는 많은 차이가 있습니다.
지나친 일반화이긴 하지만, 지난 10여 년 동안 많은 복잡한 엔지니어링 기법들이 서버에서 클라이언트로 이동해 왔습니다. 모놀리식 익스프레스 애플리케이션은 서버리스 기능 모음으로 바뀌었고, 프론트엔드는 하이퍼링크된 디지털 문서에서 본격적인 데스크톱급 애플리케이션으로 진화했습니다.
또 명심해야 할 것은 기업들이 자사 브랜드에 맞게 독특하고 세심하게 제작된 맞춤형 제품을 원한다는 겁니다. 프론트엔드는 제품이 직접 사용자와 상호작용하는 부분이기 때문에 기업들은 프론트엔드에 더 신경을 쓰죠. 반면 백엔드는 눈에 보이지 않기 때문에 보다 제너럴하게 개발되어도 괜찮은 편입니다.
업계에서는 우울할 정도로 많은 사람들이 백엔드 개발이 프론트엔드 개발보다 더 어렵거나 복잡하다고 생각하며, '진짜' 엔지니어링은 서버에서 이루어진다고 생각합니다. 이건 말도 안 되는 이야기입니다.
저는 풀스택 개발자입니다. 저는 PHP와 Ruby on Rails 기반의 백엔드로 커리어를 시작했습니다. 지금도 강의 플랫폼의 백엔드 코드를 작성하는 데 많은 시간을 할애하고 있고요. 스택의 두 측면은 서로 다른 방식으로 어렵습니다. 둘 다 복잡하고 어렵습니다.
(참고로 프론트엔드는 JS 프레임워크가 아니더라도 여전히 복잡하고 어렵습니다. 저는 사용성과 접근성에 중점을 두고 HTML, CSS, 바닐라 자바스크립트를 사용하여 고품질 웹사이트를 전문적으로 제작하는 분들을 정말 존경합니다. 그리고 이들이 조만간 AI로 대체될 것이라고 생각하지 않습니다.)
저는 몇몇 분들로부터 ChatGPT가 기술 학습에 정말 도움이 되었다는 이야기를 들었습니다. 튜토리얼에서 헷갈리는 부분이 있으면 바로바로 인공지능에게 질문할 수 있기 때문이죠. 정말 흥미로운 사용 사례입니다. 기본적으로 ChatGPT는 이해가 안 되는 부분을 이해하도록 도와주는 페어 프로그래머와 같은 역할을 할 수 있습니다. 구체적인 질문을 하면 구체적인 답변을 얻을 수 있죠.
하지만 주의해야 할 점이 있습니다. 이렇게 툴을 사용해서 공부하는 데에는 올바른 방법과 잘못된 방법이 있습니다.
잘못된 방법은 툴을 네비게이션처럼 사용하는 것입니다. 저는 어딘가로 운전해야 할 때 GPS에 주소를 입력하고 별생각 없이 안내를 따릅니다. 그러면 정신적인 노력을 전혀 들이지 않아도 대체로 목적지에 도착하기는 합니다. 하지만 그 대가로 방향 감각이 많이 사라졌죠. 지금은 길을 안내하는 기계 음성이 없으면 아무 데도 갈 수 없게 되었습니다.
저의 제안은 LLM을 네비게이션처럼 취급하는 대신 증언대에 선 LLM을 판결하는 법정의 배심원이 된 것처럼 대하는 겁니다. LLM이 하는 말을 듣기는 하겠지만 절대적인 사실로 받아들이지는 않아야 합니다. 회의적인 태도를 취하고 모든 말에 대해 비판적으로 생각하는 게 좋습니다.
ChatGPT가 생성한 코드를 무턱대고 복사/붙여넣기하지 말고, 한 줄 한 줄 살펴보며 이해해야 합니다. 잘 모르겠으면 추가 설명을 요청하세요. 그리고 의심스러운 부분은 공신력 있는 출처(예 : 공식 문서)를 통해 다시 확인하세요. LLM은 100% 확신하는 태도로 얘기하지만 실상 100% 정확하지 않다는 점을 명심하세요.
저의 제안을 따른다면 LLM을 더 가치 있게 쓸 수 있을 거라고 생각합니다.
사실 저는 웹 개발을 배우는 과정에서 이 분야 전체가 곧 쓸모 없어질 텐데 이런 기술을 익히는 데 시간과 에너지를 쏟을 필요가 있나 하는 불안감과 낙담감을 느끼는 분들을 위해 이 글을 썼습니다.
저는 분명 AI가 우리의 업무 방식에 영향을 미칠 것이라고 생각하고, 미래가 지금과 같을 것이라고 약속할 수는 없습니다. 다만 제가 할 수 있는 이야기는, 개발자는 항상 기술과 함께 진화하기 위해 적응력을 갖춰야 했다는 것입니다. 제가 2007년에 HTML/CSS/JS를 다루기 시작한 이래로도 상황이 많이 바뀌었습니다.
저는 개발자들의 직업이 위험에 직면했다고 생각하지 않습니다. 비개발자가 웹 기술을 이해하지 않고도 전체 웹 애플리케이션을 구축할 수 있다면 어떤 모습일지 상상해 보았는데, 향후 GPT가 “환각"을 덜 일으키게 된다고 해도, 이런 미래가 오기 어려운 이유가 많이 떠올랐습니다.
물론 제가 틀릴 수도 있습니다. 제가 미래를 볼 수는 없으니까요. 하지만 저는 웹 개발자가 쓸모 없어지는 시대가 도래했다고 생각하지 않습니다. 그리고 많은 개발자 지망생들이 괜한 걱정으로 일에서 발을 떼고 있는 것은 아닌지 걱정됩니다.
5년 후 소프트웨어 개발자의 수요가 더 많아졌을 때 꿈을 포기한 것을 후회하지 않았으면 좋겠습니다.
<원문>
The End of Front-End Development
위 번역글의 원 저작권은 Josh Comeau에게 있으며, 요즘IT는 해당 글로 수익을 창출하지 않습니다.