프론트엔드 개발의 종말

이라운·2023년 3월 26일
4

📰 이번에 다룬 뉴스:

Josh W Comeau 의
The End of Front-End Development
⚠️ 작성자 편한대로, 이해한 대로, 기억하고 싶은 부분만 번역했습니다. 믿지 마시고, 되도록이면 위의 원문을 봐주세요.
⚡️ 해당 이모지가 있는 부분은 원문에 없는 작성자의 사족입니다.

✒️ 느낀 점

최근 챗 gpt 를 보면서 불안한 마음이 들었던 것도 사실이다. 하지만 이 글을 보며 꽤 합리적으로 핑크빛 미래를 그릴 수 있게 된 것 같다.

🔤 번역

프론트엔드 개발의 종말

최근 몇 달간 많은 신입 개발자들과 이야기를 나누었는데, 그들이 인공지능 기술인 GPT-4와 같은 도구들의 점점 더 인상적인 데모를 보면서 불안해하고 있다. HTML/CSS/JS에 능숙해질 쯤이면 일자리가 사라질 것 같아 걱정하는 것이다.

현재 Twitter에서도 이런 감정이 널리 퍼져 있다.

나는 전혀 동의하지 않는다. 웹 개발자 직업이 사라질 것 같지 않다. 그리고 온라인에서 퍼지고 있는 불안감(FUD - Fear, Uncertainty, and Doubt)에 대해 꽤 질리고 있다.

그래서 이번 블로그 포스트에서는 제가 예측하는 바를 공유하겠다. 일부 변화는 있겠지만, 사람들이 무서워하는 그런 방식으로 변화하지는 않을 것이다.

시작에 앞서 내가 이 분야에 대한 이해관계가 있음을 밝히는 바이다: 나는 온라인에서 소프트웨어 개발 강의를 하고 있다. 개발자의 직업이 사라진다면 나에게는 불리할 것이다.
하지민, 이 블로그의 내용은 오롯이 내 신념에 기반한다. 그 신념이 편향되어 있는지는 여러분이 스스로 판단하기를 바란다.

또 시작이네

CSS 언어는 1996년에 인터넷 익스플로러 3에서 처음 출시되었다. 그리고 2년 안에 최초의 "노 코드" 웹사이트 빌더인 Homestead가 출시되었다.

Homestead는 개인들이 코드 한 줄도 쓰지 않고 사용자 정의 웹 페이지를 만들 수 있도록 서비스를 제공했다.

웹 개발자가 새로운 기술에 의해 대체될 우려는 처음부터 있었다. 2000년대에는 워드프레스, 2010년대에는 웹플로우였다. 초기 2020년대에는 "노 코드" 도구들이 그 우려를 더욱 부추겼다.

그리고 어느 정도 웹 개발자들은 대체되기도 했다! 요즘에는 지역 빵집, 치과, 예술가 등이 웹사이트가 필요하면 개발자를 고용하고 수만 달러를 지불하여 처음부터 무언가를 구축하지 않는다. 대신 SquareSpace에 들어가서 마음에 드는 템플릿을 찾아 월 20달러를 지불한다.

그런데도 웹 개발자는 여전히 존재한다.

지난 주 OpenAI는 GPT-4를 쇼케이스했다. 이는 꽤 인상적인 데모였으며: GPT-4는 손으로 그린 웹사이트 스케치를 가져와 "Punchline 공개" 버튼을 제어하기 위한 조각의 JS를 포함한 완전히 기능적인 웹사이트로 변환할 수 있었다.

⚡️ 솔직히 이와 같은 형태의 그림을 프로그램으로 만들어버리는 성능은 무섭다..

이것은 매우 놀랍다. 그리고 프로토타입 작성에 많은 잠재력이 있다고 생각한다... 하지만 분명히 해야 할 것은 우리가 이러한 종류의 페이지를 만드는 데 웹 개발자가 수십 년 동안 필요하지 않다는 것이다. 이 HTML 문서와 프론트엔드 개발자들이 오늘날 작성하는 코드 간에는 엄청난 차이가 있다.

미래를 보자

지금까지 본 대부분의 데모는 범위가 제한적이다. 간단한 HTML 페이지나 하나의 JavaScript 함수 정도로, 개발자 한 명이 하루쯤이면 만들어낼 수 있는 것들이다.

하지만 이것은 초기 단계에 불과하다! 만약 이 속도로 계속 진행된다면, 몇 년 안에 전체 애플리케이션을 만들어낼 수 있을 것으로 보인다.

나는 LLMs(GPT-4 같은)에 대해서 전문가는 아니지만, 그들이 어떻게 작동하는지는 대략적으로 이해하고 있다.

근본적으로, LLMs는 매우 강력한 텍스트 예측기이다. 프롬프트가 주어지면 기계 학습을 사용하여 프롬프트 다음으로 가장 가능성이 높은 문자열을 만들어낸다.

OpenAI와 같은 회사들은 모델의 출력을 개선하기 위해 많은 시간과 노력을 들이고 있다. 인간 라벨러들의 대규모 그레이딩 작업을 통해 모델은 학습하고 진화한다.

Chat GPT나 Bing의 AI 기반 검색 같은 도구를 실험해 본 적이 있다면, 대답이 대개 80% 정도는 맞는 것 같지만, 절대적이고 독단적인 자신감으로 말하는 것을 느꼈을 것이다.

LLMs는 자신의 가정을 검증하거나 가설을 검사할 수 없다. 그들은 그들이 말하는 것이 참인지 아닌지를 확인할 수 없다. 그들은 확률 게임을 하며, 이 문자열이 프롬프트의 문자열과 호환되는 것으로 추정한다.

가끔 그 응답의 일부는 무의미하다. OpenAI 팀은 이를 "환각(hallucinations)"이라고 부른다.

기술이 개선됨에 따라, 어떤 부분은 개선될 것으로 기대할 수 있지만, 근본적으로 항상 일부 정확성의 한계가 있을 것이다. 이러한 도구들은 자신의 응답을 객관적으로 검증할 수 있는 메커니즘이 없기 때문이다.

따라서 정확도는 개선될 것이지만 완벽하지는 않을 것이다. 그리고 이 때문에 웹 개발자들을 불필요하게 만들어버리는 것에 대해 이야기하는 것은 문제가 된다. 프로그래머가 아니라면, 어떤 부분이 정확하고 어떤 부분이 그렇지 않은지를 알 수 없다. 환각을 인지할 수 없을 것이다.

그러나, GPT-4 데모에서 우리는 인공지능이 스스로 수정할 수 있다는 것을 보았다. 오류 메시지를 복사하여 붙여넣으면 문제를 찾아 수정할 수 있었다.

하지만, 모든 환각이 예외로 이어지지는 않는다. 예를 들어, 최근에 React를 사용하여 컴포넌트를 생성하는 데 GPT-4를 사용했을 때, 출력은 놀랍도록 좋았지만 몇 가지 접근성 오류가 있었다. 앱을 만드는 사람은 이러한 문제를 인지하지 못할 수 있지만 최종 사용자는 분명히 인지할 것이다!

코드에서 보안 취약점은 어떨까? 일이 심각하게 잘못될 때 누가 책임을 져야 할까?


한 가지 더 말하자면, 50줄짜리 HTML 문서를 생성하는 것과 완성된 프로덕션 웹 애플리케이션을 만드는 것에는 거대한 차이가 있다. 이 블로그와 같은 작은 JS 앱은 900개 이상의 파일에서 약 65,000줄의 코드를 가지고 있다. 이는 콘텐츠를 제외한 자바스크립트와 타입스크립트만을 포함한 수치이다.

심지어 95%의 정확도로도 이는 굉장히 디버깅하기 어려울 것이다. 이것은 개발자가 수개월 동안 거대한 건물을 지으며 100% 완성될 때까지 단 한 번도 실행시키지 않으면서 개발하는 것과 같은 것아다. 이것은 그 자체로 악몽이다.

AI는 마법이 아니다. 이것은 그저 학습 데이터만큼 좋은 성능을 제공한다. 코드 스니펫은 인터넷에 널려 있다. 대조적으로, 모든 코드베이스는 고유한 형태를 가진다. 큰 오픈소스 코드베이스는 매우 적은 수만 제공되고 있다. AI는 어떻게 대규모 실제 프로젝트를 만드는 방법을 배울 수 있을까?

우리는 매우 빠르게 비개발자들이 챗봇과 함께 앉아 작은 자체 포함 프로젝트를 만들어낼 수 있는 시점에 다다르고 있다. 이는 현재 Webflow와 같은 도구를 사용하여 구축하는 것과 비슷하다. 그리고 이것은 멋진 일이다!

하지만 내가 생각하기에는 대규모 기술 회사들이 개발자 직원을 해고하고 대신 프롬프트 엔지니어로 대체하는 것은 아직 매우 먼 길이 남아 있다. 이것이 현실이 되기 위해 해결할 수 없는 문제가 몇 가지 있다.

늘릴 것이다, 대체하는 것이 아니라

이 글을 보면 그렇게 생각하지 않을 수 있지만, 나는 실제로는 인공지능에 대해 꽤 낙관적이다. 😅

나는 GPT-4 같은 도구가 개발자 도구에 통합되어 숙련된 개발자가 할 수 있는 일을 증폭시키는 데 사용될 것이라고 생각한다.

목수는 전기 공구로 대체되지 않았고, 회계사는 스프레드시트로 대체되지 않았으며, 사진 작가는 디지털 카메라 / 스마트 폰으로 대체되지 않았다. 개발자도 LLM으로 대체되지 않을 것이라고 생각한다.

개발자 직군의 총 수가 줄어들 수도 있을 것 같다고 느낄수도 있다. 개발자가 상당히 더 효과적으로 일할 수 있다면, 개발자가 적을 수도 있지 않을까?

그렇지 않다. 현재 소프트웨어 개발자에 대한 수요가 공급보다 훨씬 많다. 내가 일한 모든 회사에서 우리는 하고 싶은 일이 많았지만, 우리가 가진 개발자 수는 제한되어 있었다.

개발자가 갑자기 2배 이상 생산적이 된다면 어떻게 될까? 더 많은 버그가 수정되고, 더 많은 기능이 출시되며, 더 많은 이윤이 발생할 것이다. 만들어야 할 것이 부족하지 않으므로 개발자에게 할 일이 부족해지지는 않을 것으로 보인다.

사실 이것은 오히려 전체 개발자 직군 수를 늘릴 수도 있다.

오늘날 소프트웨어 개발자를 전혀 고용하지 않는 많은 회사가 있다. 나는 다른 회사를 위한 웹 애플리케이션을 만드는 에이전시인 Konrad Group에서 일했었다. 그중 많은 회사가 유명 브랜드였습니다. 개발 비용이 너무 높기 때문에 개발자를 직접 고용하는 것보다 개발 필요를 외주로 맡기는 것이 더 합리적이다.

이미 Fortune 500 기업들은 소프트웨어 개발의 현재 비용을 기반으로 그 비용을 계산하고 있다. 예를 들어 4명의 개발자가 필요하다면 연간 60만 달러의 비용이 들것이지만, 이 경우 개발을 대행하는 대행사에게 50만 달러를 지불하는 것이 더 합리적이다. 그러나 LLM이 개발자 생산성을 실제로 증대시키면, 같은 양의 일을 할 수 있는 개발자 2명을 연간 30만 달러씩 고용할 선택지가 생기게 된다. 갑자기 이 계산은 훨씬 더 유리해지는 것과 같다.

분명히 말씀드리자면, 저는 경제학자가 아니며 이 모든 것은 예측의 영역을 벗어나는 것이다. 다만 아무도 이것이 어떻게 해결될 지 모르며, 최악의 시나리오가 이미 예견된 것처럼 대처할 필요는 없다.

단어

obsolete: 불필요한
vested interest: 기득권, 이해관계자
augment: 늘리다, 증대하다

profile
Programmer + Poet = Proet

0개의 댓글