Skip to main content

Command Palette

Search for a command to run...

소프트웨어 엔지니어로서 Ai 혁명에서 살아남기

희망이 아직 남아 있을까요?

Published
소프트웨어 엔지니어로서 Ai 혁명에서 살아남기

원문: César Soto Valero, "Surviving the AI Revolution as a Software Engineer"

소프트웨어 엔지니어 여러분, 이미 아시다시피 AI는 이제 피할 수 없는 현실이 되었고 모든 것을 변화시키고 있습니다. OpenAI의 ChatGPT가 할 수 있는 일에 대해 걱정하고 계신다면 잠시만 진정하세요. 이는 시작에 불과합니다. 예상보다 훨씬 더 빠르게 아주 강력하고 특화된 AI 모델의 물결이 다가오고 있습니다. 앞으로 몇 년 안에 AI의 광범위한 도입은 우리 삶의 모든 측면에 영향을 미치게 될 것입니다. 하지만 이 글은 수십 년 전 공상 과학 소설가들이 이미 예견했던 AI가 지배하는 사회의 문제를 다루려는 것이 아닙니다. 대신 저는 이 변화가 소프트웨어 산업에 미칠 영향에 주목하려고 합니다. AI가 지배하는 새로운 세상에서 개발자들이 어떻게 일자리를 지킬 수 있을지에 대한 제 의견을 이 글에 담았습니다. 향후 몇 년간 필수적인 10가지 능력을 다루며, 주로 소프트웨어 엔지니어링 일자리에 중점을 두지만 여기에 언급된 대부분의 원칙은 다른 어떤 직업군에도 적용될 수 있습니다. 이 생존 지침에서는 AI 모델의 급속한 발전에도 불구하고 변하지 않을 것이라고 생각되는 사실들만 다룹니다. 예를 들어 저는 생성형 AI가 결국 소스 코드뿐만 아니라 이미지, 음악, 영상 등 모든 종류의 디지털 콘텐츠를 인간보다 더 잘 만들어낼 것이라고 생각합니다.[1] 그렇다면 우리는 이 변화의 물결에 어떻게 적응해야 할까요?

© 사랑스러운 테디 베어에 작별을 고한다면... 이제 키보드가 그 자리를 차지할까요?

💡
© 사랑스러운 테디 베어에 작별을 고한다면... 이제 키보드가 그 자리를 차지할까요?

게임의 판도가 바뀌었다

2021년 7월 "은둔형 프로그래머의 시대는 끝났다"라는 제목의 블로그 글을 게시했습니다. 놀랍게도 이 글은 Hacker News(HN)에서 큰 반발을 일으켰고 100개가 넘는 부정적인 댓글을 받았습니다.[2] 안타깝게도 당시 제가 전달하고자 했던 핵심 논점은 실제로 오해를 받았던 것 같습니다. (제가 믿고 싶기로) 그 이유는 여전히 미숙한 제 글쓰기 실력 때문일 것입니다. 제 주장은 AI와 클라우드 컴퓨팅으로 인해 소프트웨어 개발자에게 적용되는 게임의 법칙이 크게 바뀌어 혼자 일하는 프로그래머의 전형이 더 이상 유효하지 않다는 것이었습니다. 저는 (그때나 지금이나) 프로그래머의 성공을 좌우하는 것은 코드를 작성하는 능력이 아니라 사회적 기술이라고 믿었습니다. 제 예상은 시간이 지날수록 이런 상황이 더욱 심화된다는 것이었습니다. 예를 들어 저는 "코드를 잔뜩 작성하는 것이 더 이상 멋진 일이 되지 않을 것"이라거나 "미래에는 오직 우리의 독특한 인간적 능력만이 가치를 인정받을 것"이라고 말했습니다. 이에 대해 HN의 누군가가 "이 사람은 자신이 무슨 말을 하고 있는지 전혀 모르는 것 같다"라는 댓글을 남겼습니다. 흥미롭게도 그 이후 많은 것들이 변했습니다. 이제 그 변화를 설명해 보겠습니다.

2년이 지나고 보니, 특히 개발자들에게 닥칠 AI의 위협에 관한 제 예상이 맞았다는 것이 드러났습니다. 오늘날 AI는 체스나 바둑에서 인간을 능가하는 것뿐만 아니라 소스 코드를 포함한 다양한 텍스트 기반 콘텐츠를 만드는 데에서도 더 뛰어난 성과를 보이고 있습니다. 딥 러닝(DL) 알고리즘의 발전, 트랜스포머 같은 신경망 구조의 혁신, 끊임없이 증가하는 연산 능력, 그리고 인터넷에서 수집된 방대한 학습 데이터세트에 대한 접근성 덕분에 자연어 처리(NLP) 분야에서 진정한 혁신이 일어났습니다. 이러한 발전은 대형 언어 모델(LLM)의 탄생을 이끌었고,[3] 이 모델들은 창의성과 추론이 요구되는 여러 평가 지표에서 인간 수준의 성과에 근접할 수 있음을 증명했습니다.[4]

이전의 기계 학습(ML) 모델들과 다른 현대 AI 시스템의 독특한 특성은 판별형이 아니라 생성형이라는 점입니다. 현대 AI 시스템은 방대한 양의 데이터를 관찰하고 패턴을 학습하여 이전에 존재하지 않았던 새로운 데이터를 생성할 수 있습니다. 이 생성 능력은 소프트웨어 개발자들에게 새로운 가능성의 범위를 넓혀줍니다.

요컨대 대형 언어 모델(LLM)의 엄청난 성공 비결은 아래의 세 가지 주요 개선 사항을 결합한 것에 있습니다.

  1. 모델의 복잡성.

"(파라미터의) 크기가 커질수록 (AI의) 능력도 강력해집니다."

기계 학습(ML) 모델의 크기는 파라미터 수 (즉, 인공 뉴런 연결 간의 계산된 가중치 수)로 측정되며, 최근 몇 년간 그 크기가 기하급수적으로 증가했습니다. 이는 NVIDIA GPU 같은 강력한 하드웨어의 도입과 Adam 확률적 최적화 및 주의 메커니즘 같이 더 효율적인 학습 알고리즘의 개발 덕분에 가능해졌습니다. 이러한 알고리즘들은 각 파라미터에 맞춰 적응형 학습률을 효율적으로 계산하여 역전파 기법을 개선합니다. 연구에 따르면 GPT-3의 1,750억 개의 파라미터 이후 어느 시점부터 어떤 마법 같은 일이 발생하여 텍스트 기반 모델이 엄청나게 강력해진다고 합니다.[5]

  1. 학습 데이터의 크기.

연구자들은 또한 학습 데이터세트의 크기를 늘릴수록 대형 언어 모델(LLM)의 능력이 크게 향상된다는 것을 발견했습니다.[6] 예를 들어 생성형 사전 훈련 변환기(GPT) 모델의 경우 아마도 전 세계의 공개 데이터로 훈련됩니다. 여기에는 Stack Overflow의 전체 Q&A 데이터베이스, GitHub의 공개 오픈 소스 프로젝트의 전체 코드베이스, 프레임워크와 API, 기술 문서의 모든 출처, 그리고 공개 웹사이트에 게시된 모든 코드가 포함됩니다.

  1. 인간의 피드백.

연구에 따르면 AI의 능력은 시스템이 인간과 상호작용할 수 있을 때 기하급수적으로 향상됩니다. 강화 학습(RL)을 통해 인간의 피드백으로 미세 조정된 AI 모델은 이전의 대규모 학습 데이터세트를 가진 모델보다 성능이 우수합니다.[7] 현재의 ChatGPT 모델은 인간 전문가와 일반 사용자에 의해 지속적으로 지시되고 개선됩니다. 우선 레이블 작성자가 작성한 프롬프트 세트를 사용하여 조정하고, 그다음에는 사용자들이 OpenAI의 API를 통해 직접 제출한 프롬프트를 기반으로 개선됩니다.

"파운데이션 모델은 대규모 자기 지도 학습을 통해 방대한 양의 데이터로 훈련된 범용 대형 언어 모델(LLM)로, 다양한 하위 과제를 수행할 수 있습니다."

현재 우리가 알고 있는 생성형 AI는 여러 층으로 구성된 시스템이라는 점을 주목하는 것이 중요합니다.[8] 가장 아래층에는 대형 언어 모델(LLM) 기반 모델이 있으며,[9] 그 위에는 특정 맥락에 맞춘 훈련 데이터의 "모사체"가 있습니다. 이 특정 맥락 층은 모델과의 지속적인 상호작용을 통해 개선됩니다 (예: 목적 구체화하기, 사양 추가하기, 도메인 지식 데이터세트 확대하기 등). 모사체 위의 부분은 모델의 특성으로, 인간의 추가적인 피드백을 통해 다듬어진 소비 가능한 층입니다. 이 최상위 층이 AI 시스템의 가치를 궁극적으로 결정합니다. 소스 코드의 맥락에서 모델의 특성은 프로그래밍 언어, 코딩 스타일, 특정 프레임워크, 소프트웨어 애플리케이션의 비즈니스 규칙으로 표현됩니다.

새로운 모델을 최대한 활용하기 위한 시장의 경쟁이 치열합니다. 빅테크 기업들은 비즈니스와 개발자들을 위한 다음 AI 플랫폼이 되기 위해 극심하게 경쟁하고 있습니다. 현재 마이크로소프트가 경쟁에서 가장 앞서 있으며, OpenAI와 직접 파트너십을 통해 자사의 AI 생태계를 적극 활용하고, OpenAI의 성공적인 GPT 모델을 자사의 Bing 검색 엔진과 GitHub Copilot에 성공적으로 배포하고 있습니다. 반면 메타는 자사의 LLaMa 2 모델을 오픈 소스로 출시했으며 (잘한 결정입니다, 마크!), 구글은 뒤늦게 Bard[10] 모델을 자사의 Duet AI 플랫폼에 배포하며 뒤처지지 않으려 애쓰고 있습니다.

"간단히 말해 (개발자로서) 오늘 AI를 사용하지 않으면 내일 아침에는 시장에서 도태되어 있을 것입니다."

AI가 소프트웨어 산업을 근본적으로 뒤흔들 잠재력이 있기 때문에 이에 대한 투자가 막대하게 이루어지고 있습니다. 빌 게이츠는 AI가 인터넷 발명 이후 가장 큰 진전이라고 믿고 있습니다. 실용적인 관점에서 AI를 활용하는 것은 사람, 특히 개발자를 고용하는 것보다 비용 효율적입니다.[11] 게다가 AI는 노동 절약 및 문제 해결 능력이 뛰어나고, 관리자와 이해관계자 등 폭넓은 대중이 쉽게 접근할 수 있다는 장점이 있습니다.

개발자들은 AI의 도움으로 코드 개선 제안, 코드 완성 지원, 리팩토링 조정, 문서 및 테스트 생성, 성능 및 보안 분석 수행, 심지어는 러버덕 디버깅까지 다양한 방식으로 큰 혜택을 누릴 수 있습니다. AI의 잠재적 응용 분야는 사실상 무한합니다. AI가 계속 발전함에 따라 정보 흐름 서비스의 모든 측면에 깊숙이 스며들 것으로 예상됩니다. 이는 이메일 응답 자동화부터 고급 데이터 분석을 통해 자율적으로 플롯을 생성하고 대량의 데이터를 종합하여 포괄적인 요약을 변환하는 것까지 포함됩니다. 이러한 발전은 의사 결정 과정을 더 신속하게 할 수 있도록 도와줄 것입니다.

"도구를 가진 바보는 여전히 바보다. – Grady Booch"

제 개인적인 관점으로 볼 때 현재의 대형 언어 모델(LLM)은 강력하지만 기본적으로 모두 단어들의 통계적 모델임을 이해하는 것이 중요합니다. 그럼에도 불구하고 이들은 새로운 형태의 생성형 검색 능력을 제공하기 때문에 개발자에게 매우 유용합니다. 예를 들어 핀테크 산업에서 일하는 개발자를 상상해 보십시오. 일반적인 작업 중 하나는 주식의 ISIN 번호를 매핑하는 것입니다. 오늘날의 GitHub Copilot은 이 번호를 IDE에서 자동으로 검색할 수 있을 뿐만 아니라, 특정 주식의 국가를 표시하고 요청에 따라 더 세부적인 관련 정보를 제공할 수도 있습니다. 이렇게 빠르고 정확하게 검색할 수 있는 능력은 AI를 일상적인 코딩 작업에서 매우 유용하게 작용하도록 만듭니다.

GitHub Next는 차세대 소프트웨어 개발 도구의 표준을 설정하고 있습니다. 그 기대치가 너무 높고 놀라워서, AI가 곧 개발자를 지원하는 단계를 넘어 그들의 자리를 대신할 것이라고 믿기 시작하는 사람들이 생기고 있습니다.[12] 그 생각이 그리 터무니없지는 않습니다. AI가 풀 리퀘스트를 만들고, 코드를 리뷰하며, 문서를 작성한다면... 전 세계 3천만 명이 넘는 개발자들은 남는 모든 시간에 무엇을 하게 될까요? 과연 그들이 계속 필요할까요?

우리의 생존 탈출구

AI 혁명에서 살아남기 위해서는 우리가 인간으로서 가진 고유한 능력을 키우는 데 집중해야 한다고 믿습니다. 특히 일자리 시장에서 여전히 가치 있는 능력들에 주목해야 합니다. 이러한 능력들을 우리의 타고난 인간적 특성과 결합하는 것은 기계가 모방하거나 자동화하기 어려운 큰 도전이 되며, 잠재적인 노동의 퇴화에 대한 방어막이 됩니다.

아래는 제가 생각하기에 AI가 지배하는 앞으로의 몇 년 동안 단순히 유익할 뿐만 아니라 반드시 필요한 열 가지 능력[13]의 목록입니다.

  1. 이해력 키우기.

우선 현재 AI가 무엇을 할 수 있는지 깊이 이해하는 것이 정말 중요합니다. 현재 이 시스템들은 사람들이 무엇을 해야 하는지 알려주지 않으면 작동할 수 없습니다. (현재로서는) 우리가 그들을 제어하고 필요한 모든 지시를 내리는 존재입니다. 중요한 결정을 내리는 관리자들은 종종 이러한 AI 시스템과 직접 작업할 수 있는 지식과 시간이 부족합니다. 따라서 AI 기술을 이해하는 개발자는 사고하는 이들과 실현하는 이들 사이에서 소통의 다리 역할을 할 수 있으며, 이는 점점 더 중요해지는 능력입니다. 역사적으로 돌아보면 산업 혁명 동안 기계는 우리가 수행할 수 있는 작업의 양을 증가시켰지만 여전히 사람들의 조작이 필요했던 유사한 패턴을 볼 수 있습니다. 따라서 AI가 현재 제공할 수 있는 것을 최대한 활용하기 위해서는 그 기능에 대해 배우는 것이 매우 중요합니다. 단순히 뒤처지지 않기 위한 것이 아니라 AI의 힘을 현명하고 효과적으로 활용하는 길잡이가 되기 위해서 말이죠.

  1. 비판적 사고하기.

현재의 대형 언어 모델(LLM)은 기존 지식이나 대량의 데이터 분석을 기반으로 사실적인 답변을 제공합니다. 그러나 명확하게 정의되지 않은 문제들이 여전히 많으며 이러한 문제들은 특별한 비판적 사고를 요구합니다. 비판적 사고는 거의 인간 고유의 능력입니다. 예를 들어 특정 용도에 맞는 확장 가능한 시스템을 설계하거나 특정 회사에 적합한 데이터 마이그레이션 전략을 결정하는 것은 AI가 현재 해결할 수 있는 문제가 아닙니다. 이러한 문제들은 여러 단계의 추상화와 문제 영역에 대한 깊은 이해를 필요로 하기 때문입니다. 우리는 AI가 문제를 해결할 수 있도록 더 나은 질문을 만들고, 이를 명확하고 정밀하게 공식화하는 방법을 배워야 합니다. 윤리적 문제, 개인 정보 보호, 보안 등과 같은 사안들도 AI가 절대적으로 올바른 결정을 내릴 수 없는 영역입니다.[14]

  1. 의견 유지하기.

LLM 사용에 대한 실증적 연구는 비판적 사고 능력이 미래에 필요한 중요한 기술이 될 것임을 보여줍니다.[15] 다시 말해 단순히 명령에 따르는 수동적인 개발자는 오늘날 어려움을 겪을 수 있습니다. 기계가 이미 그런 역할을 당신보다 더 잘 수행할 수 있기 때문입니다. 반면에 AI는 자신의 실수에 전적인 책임을 지지 않기 때문에 인간의 의견은 앞으로도 여전히 가치가 있을 것이라고 믿습니다. 또한 우리는 인간의 의견을 좋아하며, 항상 다른 인간으로부터 듣는 것을 선호할 것입니다. 예를 들어 리누스 토발즈를 보세요. 그는 (때때로 비판을 받기도 하지만) 자신의 의견에 기반한 아키텍처 결정을 통해 리눅스를 지속적으로 개선해 왔고, 논란이 있는 결정을 내릴 뿐만 아니라 소프트웨어 개발 분야 전반에 걸쳐 논의를 형성해 왔습니다. 이러한 개인적인 접근은 날카로운 관찰력과 책임감이 결합되어 있으며, 현재 AI가 도달할 수 없는 영역입니다.

  1. 창의성 발휘하기.

AI는 현재 인간의 유머를 이해하고 생성하는 데 큰 어려움을 겪고 있습니다. 이는 미묘한 감정, 풍자, 문화적 맥락을 깊이 이해해야 하는 과제로, 이러한 요소들은 모두 우리 인간의 본성에 내재되어 있습니다. 무에서 유를 창조하고 고안하거나 문제에 대한 예상치 못한 해결책을 찾아내는 능력은 대형 언어 모델(LLM)의 한계를 넘어서는 독특한 인간의 특성입니다. 스티브 잡스와 같은 혁신가처럼 창의성의 원천이 되는 것은 획기적인 발전을 이끌어내는 환경을 조성할 수 있습니다. 잡스는 기능성과 예술성을 결합한 독특한 기술 접근 방식으로 개인용 컴퓨터와 모바일 산업에 혁신을 가져왔습니다. 마찬가지로 창의성을 기르는 개발자는 AI가 복제할 수 없는 깊이 있는 시각과 개인적인 접근을 프로젝트에 부여하여 대체 불가능한 자산이 될 수 있습니다. 따라서 우리의 고유한 창의성을 보호하는 것은 단지 필수가 아닌 혁신의 초석이 되어, 우리가 미지의 영역으로 나아가고 진정으로 혁신적인 발전을 이끌어 낼 수 있도록 합니다.

  1. 주도성 발휘하기.

현재 AI는 스스로 첫 단계를 내딛지 못하며 인간의 지도가 필요합니다. AI가 해결책을 찾는 데 도움을 줄 수는 있지만 프로그램을 만드는 과정은 문제를 깊이 이해하고 이를 단계별로 분해하여 해결하는 것을 포함하기 때문에 AI는 프로그래머를 완전히 대체할 수는 없습니다. 어떤 문제를 해결할지 아는 것은 전투의 중요한 부분입니다. 예를 들어 인간은 AI가 이해할 수 없는 새로운 인간의 필요를 파악함으로써 제품 시장 적합성을 발견할 수 있는 능력을 가집니다. 다시 말하자면 프로그래밍은 단순히 AI에게 문제를 해결하라고 하는 것이 아니라, 프로그래머가 자신의 전문성과 추진력을 바탕으로 새로운 문제와 그 해결책을 스스로 찾아내는 과정입니다. 따라서 주도성을 발휘하는 능력은 앞으로도 여전히 중요한 기술로 남을 것입니다.

  1. 공감 능력 보여주기.

AI는 코드 작성에서 인간보다 우수하지만 이는 계산기가 수학에서 인간보다 뛰어난 것과 같습니다. (여러분이 정말 이상하지 않다면) 계산기와 사랑에 빠지지는 않을 것입니다. AI도 마찬가지로 인간의 조건을 이해할 수 없기 때문에 다른 인간처럼 우리와 공감할 수는 없습니다. 공감은 다른 사람의 감정을 이해하고 나누게 해주는 독특한 인간의 특성으로, 우리의 사회적 상호작용의 핵심 요소입니다. 미래의 개발자는 사용자와 관리자에 공감하고 그들의 필요와 욕구를 이해할 수 있어야 합니다. 농담이 아니라 AI와의 차별성을 이해하는 것이 비즈니스의 인간적 측면에서 훨씬 더 중요해질 것입니다. 이는 단순히 반복적인 코드를 작성하는 능력보다 훨씬 더 중요한 능력이 될 것입니다.

  1. 호기심 유지하기.

기술 산업에서 우리는 하나의 잠재적인 문제를 마주하고 있습니다. 바로 호기심의 상실입니다! 과거에는 코딩 문제를 해결하려면 Stack Overflow의 여러 글을 읽고 스스로 많은 실험을 해야 했습니다. 그러나 이제 AI는 즉각적으로 해답을 제공합니다. 이로 인해 우리가 이전에는 할 수 없었던 것들을 할 수 있게 되었지만 동시에 스스로 문제를 해결하는 과정에서 느끼는 흥미를 빼앗기기도 합니다. AI로부터 진정한 혜택을 얻기 위해서는 여전히 호기심을 유지하고, 새로운 것들을 시도하며 배우고, 실패도 감수할 수 있어야 합니다 (이건 AI가 동기 부여를 느끼지 않는 부분이기도 합니다). "이 매개변수를 바꾸면 어떤 일이 일어날까?" 혹은 "이 문제를 다른 방식으로 접근해 보면 어떨까?"와 같은 질문을 계속 던져야 한다는 것이죠. 게다가 정보 과부하는 이미 문제가 되고 있으며 AI로 인해 더욱 심화될 것입니다. 요즘에는 배워야 할 것이 너무 많아서 어떤 분야에 집중할지 결정하는 것만으로도 부담스러울 수 있으며, AI가 모든 것을 우리보다 더 잘할 것이라는 인식이 확산될 것입니다. 그렇기에 우리는 앞으로 지식을 잘 정리해 주고 학습 여정을 안내해 줄 멘토가 더욱 필요하게 될 것입니다. 호기심을 기르는 것은 미래의 개발자들에게 중요한 능력이 될 것입니다.

  1. 스토리텔링 능력 기르기.

기계에는 우리 모두가 가지는 몇 가지 요소가 결여되어 있습니다. 바로 시간에 대한 자연스러운 이해와 다양한 개인적인 기억입니다. 이는 기계가 인간처럼 사람들과 진정으로 연결되는 이야기를 할 수 없다는 것을 의미합니다. 인공지능 에이전트가 센서를 통해 물리적 공간을 이해하고 시간을 측정하는 법을 배울 수는 있겠지만 시간의 개념을 진정으로 이해하는 것은 훨씬 더 어려운 과제입니다. 저는 훌륭한 스토리텔링 능력이 개발자에게 매우 중요한 기술이라고 생각합니다. 복잡한 아이디어를 간단하고 흥미롭게 설명하게 해 주기 때문이죠. 예를 들어 다음과 같은 질문을 던질 수 있죠. 1년 전 서버가 다운되었을 때 무슨 일이 있었나요? 어떻게 해결했나요? 같은 주제에 대해 이전에 작성한 제 글이 왜 Hacker News에서 그렇게 비판을 받았나요? 여러분이 보시다시피, 훌륭한 스토리텔러로서 이야기를 만들어가는 능력은 사람들을 몰입시키는 원동력이며 AI가 익히기에는 어려운 기술입니다.

  1. 인과관계 이해하기.

현재 AI와 대화하는 것은 많은 사실을 알고 있지만 그 의미나 연결성을 깊이 이해하지 못하는 사람과 이야기하는 것과 비슷합니다. 예를 들어 소프트웨어 개발자가 동시에 너무 많은 사람들이 웹사이트에 접속해 서버가 다운된 문제를 처리하고 있다면 AI는 서버가 언제 정확히 실패했는지를 찾는 데 도움을 줄 수 있습니다. 하지만 AI는 실제로 방금 시작된 바이럴 마케팅 캠페인과 같은 현실 세계의 사건이 갑작스러운 방문자 증가와 그로 인한 서버 다운의 원인이라는 것을 자연스럽게 이해하지 못할 것입니다. 요컨대 AI는 인간에게는 자연스러운 인과관계를 이해하는 데 어려움을 겪습니다.

  1. 연구자가 되기.

AI는 이미 존재하는 정보를 기반으로 추론을 하기 때문에 일반적인 질문에 대한 답을 쉽게 찾도록 도와줄 수 있습니다. 하지만 완전히 새로운 것을 창조하거나 미래의 트렌드를 예측하는 데는 어려움을 겪습니다. AI는 인간처럼 생각하거나 상상할 수 없기 때문입니다. 예를 들어 AI는 잘 알려진 웹사이트 구축 도구를 제안할 수는 있지만, 이전에 없던 새로운 기계 학습 알고리즘에 대한 혁신적인 아이디어에는 큰 도움을 주지 못합니다. 따라서 미래에는 새로운 문제에 대한 해결책을 찾고 연구할 수 있는 능력이 매우 중요해질 것입니다. 이는 더 많은 개발자들이 빅테크 기업의 다른 직무 대신 연구직을 선택하여 자신의 분야에서 두각을 나타내려는 경향을 불러일으킬 수도 있습니다.

예상할 수 없는 미래

소프트웨어 개발은 끊임없이 진화하고 있습니다. 지난 몇십 년 동안 IDE, VCS, 클라우드 컴퓨팅 같은 혁신적인 도구들이 소프트웨어를 개발하고 유지관리하는 방식을 크게 변화시켰습니다. 그러나 AI는 이와 다른 차원의 변화입니다. AI는 많은 프로그래밍 작업을 우리보다 더 잘 수행할 뿐만 아니라 가능성의 여지를 탐색하며 새로운 작업을 창출합니다.[16] 기존의 도구들과는 달리 AI는 질문에 대한 답변을 종합하고 프롬프트가 나타나는 동안 새로운 콘텐츠를 생성할 수 있습니다. 이제 우리는 AI를 활용한 소프트웨어 개발이라는 불확실한 시대에 진입하고 있으며, 이는 새로운 도전과 가능성을 동반합니다.

저는 특히 복잡한 문제 해결에 있어 생성형 AI의 능력에 깊은 인상을 받고 있습니다. 최근 연구에 따르면 AI는 소크라테스식 질문법을 통해 스스로를 성찰하며 자신의 실수로부터 학습할 수 있고, P ≠ NP 증명과 같이 깊은 인간의 미지의 문제를 해결하는 데 필요한 안내를 제공할 수 있습니다.[17] AI는 단순히 설명하는 것에 그치지 않고 이런 종류의 문제를 다루기 위해 엄격한 수학적 증명(과 코드)도 제공할 수 있습니다. 미래에는 AI가 모든 실용적인 결정 하나하나에 도움을 주고 결국 우리의 직관보다 더 신뢰받게 될 것입니다. 예를 들어 "데이터베이스 스키마를 이렇게 저렇게 변경하면 그 영향은 무엇인가?"와 같은 질문에 답할 수 있을 것입니다. 우리는 곧 AI 기반 의사 결정으로 전환할 것이며, 문제는 그 과정에서 발생할 비용이 얼마일지입니다.

자동화된 소프트웨어 엔지니어링은 계속 확장될 것입니다.[18] 미래에는 AI가 코드 품질을 향상하고, 다른 언어로 트랜스파일링하며, 심지어 새로운 도메인 특화 언어(DSL)를 만들어 낼 것입니다. 이는 많은 주요 시스템들이 COBOL과 같은 구식 프로그래밍 언어로 작성되어 있는 현재 상황에서 매우 중요합니다. 이러한 레거시는 기업에 큰 과제를 제시하며 특히 재무 분야에서는 이를 유지관리할 수 있는 기술을 보유한 개발자를 찾는 것이 중대합니다. 생성형 AI는 COBOL 코드의 복잡한 작동 방식을 설명할 뿐만 아니라 파이썬이나 자바스크립트와 같은 현대 언어로 번역할 수 있습니다. 그러나 현재의 AI 시스템을 사용할 때는 주의가 필요합니다. 여러분의 코드가 은행과 같이 민감한 데이터를 다룬다면 코드가 제삼자의 서버로 전송되기 때문에 AI 기반 솔루션을 사용하는 것이 안전하지 않을 수 있습니다. 머지않아 기업에서는 자체 오픈 소스 모델을 배포하여 데이터 보호를 강화할 수 있게 될 것입니다.

비즈니스 관점에서 AI는 게임 체인저가 될 것으로 보입니다. 비즈니스 이해관계자들은 AI가 기적의 해결책이 되어 비용을 10배 이상 줄일 것으로 기대합니다. 그들은 AI가 고액의 급여를 받는 개발자에 대한 의존도를 줄여 비즈니스 비용의 효율성을 높일 것으로 믿습니다. 이러한 발전은 소프트웨어 개발 인력에 새로운 도전을 가져올 수 있습니다. 전통 경제와 마찬가지로 일정 품질이 달성되면 모든 것이 가격에 관한 문제가 됩니다. 그러나 AI는 기술 산업에 혁신을 가져오고 있으며 엔지니어의 비용은 높은 생산성과 혁신의 잠재력에 의해 무시될 정도로 중요성이 줄어들고 있습니다. 결과적으로 높은 생산성을 가진 개발자는 비록 더 높은 채용 비용이 든다 하더라도 덜 생산적인 개발자보다 훨씬 더 많은 가치를 창출할 수 있습니다.

현재 AI 기술의 한계는 결정론적이지도 않고 설명 가능하지도 않다는 점입니다. 이는 중요한 시스템에 AI를 도입하는 데 장애가 될 수 있습니다. "신뢰하지 말고 검증하라"는 모토는 (현재에도) AI의 지원을 받는 개발자들에게 여전히 유효합니다. 따라서 이러한 모델을 제대로 사용하려면 AI가 생성한 답변을 최대한 활용할 수 있어야 합니다. 이는 시니어 엔지니어가 매우 잘할 수 있는 일이지만 주니어 엔지니어에게는 도전이 될 수 있습니다. 시니어 개발자들은 대형 언어 모델(LLM)이 제공한 응답을 이해할 수 있기 때문에 이 기술로부터 큰 도움을 받습니다. 예를 들어 주니어 엔지니어는 정확히 무엇을 물어봐야 할지 모르거나, 때로는 응답을 이해하는 데 시간이 더 필요할 수 있습니다. 저는 멘토의 지도 아래 실수를 통해 배우며 시니어로 성장하는 전통적인 경로가 기업들이 주니어 역할을 AI로 대체하기 시작하면서 중단될 수 있다고 생각합니다. 이는 "더 이상 주니어를 멘토링할 시니어가 없다면 어떻게 될까?"라는 질문을 제기합니다.

지난 십 년 동안 초기 의도와는 반대로 소셜 네트워크는 사람들 간의 진정한 사회적 연결과 신뢰를 약화시켰습니다. 하루에 몇 시간씩 이러한 플랫폼에 머무는 것이 정신 건강과 비판적 사고 능력의 심각한 저하와 연관이 있다는 경고가 나왔습니다. 여러 나라의 사회가 만연한 "가짜 뉴스"로 인해 깊게 분열되었고 사람들은 이를 비판적인 평가 없이 소비하고 있습니다. 마찬가지로 AI도 대중을 위한 새로운 아편으로 등장할 수 있습니다. ChatGPT와 같은 도구들은 전문적이고 독립적인 언론을 대체하여 추적이 불가능하고 설명하기 어려운 가짜 뉴스를 퍼뜨릴 가능성도 있습니다. 개발자로서 우리는 이러한 위험을 해결하는 데 적극적으로 나서야 합니다. 이번에는 역사가 다르게 흘러가, 더 설명 가능한 AI가 사회적 단절이나 더 정교한 조작의 도구가 되는 대신 더 큰 투명성을 제공하기를 바랍니다. 어쨌든 AI의 미래는 개발자들에 의해 결정될 것입니다.

다음은 무엇일까요? 아무도 알 수 없지만 AI가 계속해서 강력해지고 경험을 쌓아가리라는 것은 의심의 여지가 없습니다. 현재 AI는 주로 텍스트 기반의 세계를 학습하는 단계에 있으며, 다음으로 시각, 청각, 촉각 등을 통해 세상을 더 잘 인식하게 될 것입니다. 이후 단계에서는 AI 시스템이 물리적인 행동을 통해 세상과 상호작용할 수 있게 되며, 경험으로부터 자율적으로 학습하는 사회적 에이전트로서 인간과 구별이 어려울 정도로 발전할 것입니다. 결국 AI가 인간을 능가하고 권력을 차지할 수도 있겠지만 이 일이 다음 10년 내에 일어날 것 같지는 않습니다. 적어도 저는 그렇게 되기를 희망합니다.

결론

새로운 능력 덕분에 AI는 소프트웨어 개발자인 우리에게 필수적인 도구가 되었습니다. 우리가 AI를 이해하지 못하더라도 가치의 원천이자 전달자로 활용할 수 있습니다. 현재의 AI 모델이 대부분의 코딩 작업에서 인간보다 우수하며 구현 노력을 몇 배나 줄여주는 것을 보면서 저는 상당히 충격을 받았습니다. 따라서 생성형 AI는 소프트웨어 개발을 가속화할 것입니다. 하지만 모든 과장된 마케팅과 잘못된 지름길은 경계해야 합니다. 이들은 현재 (저를 포함해) 대다수가 이해하지 못하는 신비로운 블랙박스 기술을 기반으로 안전하고 탄력적인 소프트웨어를 만들 수 있다고 약속합니다.

생성형 AI와 저코드(low-code) 환경의 세계에서 소프트웨어 엔지니어가 오늘날처럼 높은 급여를 받는 미래는 상상하기 어렵습니다. 현재의 발전 속도를 감안하면 앞으로 3년 안에 대부분의 소프트웨어 기업들이 AI를 활용한 개발 및 테스트 전략을 도입할 것으로 예상됩니다. 현재는 극소수의 기업만이 이러한 전략을 채택하고 있습니다. 많은 인터넷 콘텐츠와 모바일 앱이 완전히 또는 대부분 생성형 AI에 의해 강화될 것입니다. 소프트웨어 개발자는 자동으로 생성된 소프트웨어를 유지관리하고, 기계 학습 알고리즘에 자료를 제공하며, AI로 설명할 수 없는 행동을 탐색하는 등의 새로운 역량을 갖추어야 할 것입니다.

여러분이 해당 분야를 잘 알고 있다면 지루하고 시간이 많이 걸리는 작업들은 AI 덕분에 매우 빠르게 처리됩니다. AI는 생산성을 수 배로 향상할 수 있습니다. 예를 들어 AI는 API 설계를 위한 완벽한 명세를 몇 초 안에 제시할 수 있습니다 (이 작업은 보통 며칠이 걸리던 일이죠). 공상 과학 소설 "영원한 전쟁" (1974) 속 인간이 외계 문명과의 항성 간 전쟁에서 싸우며, 병사들이 광속에 가까운 속도로 전선에 보내지고 수십 년 후에 지구로 돌아오는 이야기와 유사하게, 우리는 AI가 개발자들 사이의 게임의 법칙을 어떻게 변화시키는지를 목격할 수 있습니다. AI 개발의 빠른 속도 때문에 갱신된 방법으로 아예 새롭게 시작하는 것이 더 유리할 수 있으며, 빠르게 발전하여 늦게 시작한 사람들을 능가할 가능성도 있습니다.

그러나 현재 AI는 단지 수학적으로 도출된 결과를 종합하는 데 그치며, 생성형 AI는 인간사를 "진정으로" 이해하지 못합니다.[19] 실제로 AI는 현실 세계를 알지 못합니다. 언어 모델은 읽기 좋은 글이나 코드로 "사실"을 생성하지만 이러한 주장을 검증하는 것은 사용자의 책임입니다. 개발자로서 AI의 작동 방식을 깊이 이해하고, 비판적 사고를 기르며, 개인적인 의견, 창의성, 공감 능력, 주도성, 호기심을 강하게 유지하는 것이 여러분과 가장 강력한 AI가 만든 결과물을 구별 짓는 가장 중요한 특성입니다.

각주

  1. 결국 AI는 사실상 모든 것을 알게 될 것입니다. 우리가 정보의 유효성을 검증할 수 있도록 AI는 정보의 출처를 함께 제공할 것입니다.

  2. 논의의 맥락을 잃어버리지 않도록 원문을 수정하거나 개선하지 않기로 결정했습니다.

  3. "대형 언어 모델(Large Language Models) 개관"을 참고하세요.

  4. "ChatGPT는 인간 전문가에 얼마나 근접한가? 비교 코퍼스, 평가, 탐지"를 참고하세요.

  5. "인공 일반 지능의 등장 신호: GPT-4 초기 실험"을 참고하세요.

  6. "GPT-4 기술 보고서"를 참고하세요.

  7. "인간의 피드백을 반영하여 명령에 따르는 언어 모델 훈련하기"를 참고하세요.

  8. "HuggingGPT: ChatGPT와 그 친구들, Hugging Face를 활용하여 AI 과제 해결하기"를 참고하세요.

  9. "LLaMA: 개방적이고 효율적인 기초 언어 모델"을 참고하세요.

  10. 구글의 Bard라는 이름보다 더 나쁜 제품 이름은 생각할 수 없습니다. 레벤슈타인(Levenshtein) 거리로 "Bad"와의 차이는 1입니다.

  11. 이 글을 쓰는 시점에서 ChatGPT 4.0의 구독료는 월 $25입니다.

  12. "AI가 얼마나 빨리 프로그래머들을 해고하기 시작할 것인가"를 참고하세요.

  13. 이 지침은 앞으로 10년 이내에만 유효합니다. 그 이후의 일은 아무도 예상할 수 없기 때문입니다.

  14. "ChatGPT는 당신이 필요한 전부가 아니다. 최신 대형 생성 AI 모델 리뷰"를 참고하세요.

  15. "Copilot으로 비행하기: AI 기반 짝 프로그래밍 도구의 초기 통찰과 기회"를 참고하세요.

  16. "대형 언어 모델에서 정신 이론이 자발적으로 나타났을 수도 있다"를 참고하세요.

  17. "과학을 위한 대형 언어 모델: P 대 NP에 관한 연구"를 참고하세요.

  18. 다가오는 트렌드를 이해하기 위하여 자동화 소프트웨어 엔지니어링(ASE) 콘퍼런스 논문집을 참고할 수 있습니다.

  19. "추론, 허위 정보, 상호작용에 대한 ChatGPT의 다중 작업, 다언어, 멀티모달 평가"를 참고하세요.

More from this blog

나의 오픈 소스 시작 이야기

원문: TkDoDo, “My Open Source Origin Story“ 가끔씩 제가 받는 질문이 하나 있는데, 바로 오픈 소스와 리액트 쿼리(React Query)를 어떻게 시작하게 되었는지입니다. 저의 기본 원칙은 어떤 질문을 세 번 받으면 더 이상 답변할 필요가 없도록 질문에 대해 글로 쓴다는 것입니다. 하지만 이 질문은 주로 직접 만났을 때 받는 질문이라 글로 작성할 생각을 한 적이 없었습니다. 최근에 오프라인 컨퍼런스에 더 많이 참...

Jul 30, 2025
나의 오픈 소스 시작 이야기

이더넷이란?

원문: baeldung, “What Is Ethernet?“ 1. 소개 이 튜토리얼에서는 이더넷(Ethernet)과 이를 통해 이루어지는 데이터 전송에 대해 알아보겠습니다. 2. 이더넷이란? 이더넷은 근거리 통신망(LAN) 또는 광역 네트워크(WAN) 내에서 장치들이 데이터를 주고받고 통신하기 쉽게 만들어 주는 널리 사용되는 기술입니다. 컴퓨터, 프린터, 서버는 물론 스마트 홈 기기까지도 이더넷으로 연결됩니다. 가정이나 사무실처럼 제한된 공간...

Jul 20, 2025
이더넷이란?

포스트 개발자 시대

원문: Josh W. Comeau, "The Post-Developer Era" 2년 전 2023년 3월, "프런트엔드 개발의 종말"이라는 제목의 블로그 글을 발행했습니다. 이는 OpenAI가 GPT-4 쇼케이스를 발표한 직후였고, 당시 업계 분위기는 머지않아 인간 소프트웨어 개발자는 필요 없어지고 앞으로는 소프트웨어 개발을 AI가 전담하게 될 것이라는 전망이 지배적이었습니다. 저는 이런 주장에 회의적이었고 그 블로그 글에서 소프트웨어 개발...

Jul 10, 2025
포스트 개발자 시대

널리 사용되는 네트워크 프로토콜

원문: Subham Datta, "Popular Network Protocols" 1. 개요 이 튜토리얼에서는 가장 널리 사용되고 인기 있는 네트워크 프로토콜들을 소개합니다. 2. 네트워크 프로토콜 소개 의사소통과 정보 교환은 현대 사회에서 가장 중요하고 강력한 역량입니다. 컴퓨터 네트워킹이란 여러 대의 컴퓨터와 장치를 케이블이나 위성을 통해 서로 연결하여, 거리와 상관없이 정보·자원·데이터베이스 등을 공유할 수 있게 하는 것을 말합니다. 네...

Jun 20, 2025
널리 사용되는 네트워크 프로토콜

커맨드 라인에 편해지는 법

원문: Julia Evans, "What helps people get comfortable on the command line?" 가끔 커맨드 라인을 써야 하는 친구들과 이야기하다 보면 많은 이들이 여전히 터미널을 두려워하고 있다는 걸 느낍니다. 그럴 때마다 어떤 조언을 할지 잘 모르겠더라고요. 저는 워낙 오래전부터 터미널을 써왔기 때문이죠. 그래서 Mastodon에 이렇게 물어봤습니다. 최근 1~3년 사이에 터미널 공포(?)를 극복한 분...

Jun 10, 2025
커맨드 라인에 편해지는 법
C

CodeSnap

84 posts

한국어로 전달하는 웹 개발 번역 매거진