“님들보다 코드 잘 짜는 AI 나왔음(개발 공부 왜 함).”
요즘 개발자 꿈나무들이 즐겨보는 유튜브에는 ‘코딩하는 인공지능(AI)’ 소개 영상이 종종 등장한다. 이름부터 어마무시하다. 인간의 일자리를 뺏는 건 둘째치고 자기복제를 해서 인류를 위협하는 로봇군단이 떠오를 지경이다.
하지만 실제 현장에서 ‘코딩하는 AI’를 부르는 명칭은 그리 웅장하지 않다. 개발자들은 소박하게 노코드 툴(No-Code Tools)이라고 부른다. 이름에서 알 수 있듯이 아직은 도구(Tool) 수준이다. 노코드 툴은 그동안 웹 사이트와 애플리케이션 개발 분야에서 주로 발전했다. 코딩 없이 마우스 클릭만으로 쉽고 빠르게 웹이나 앱을 개발할 수 있게 도와준다.
최근에는 한 단계 더 도약했다. 코드를 학습시켜 다양한 분야에서 코딩을 도와줄 수 있는 수준까지 발전한 것이다. 2019년 탭나인과 카이트가 AI로 자동완성 툴을 선보여 주목을 받았다. 뒤이어 거대 빅테크 기업들이 거대언어모델을 기반으로 한 노코딩 AI 툴을 개발했다. 마이크로소프트(MS)가 지난해 6월 공개했던 ‘깃허브 코파일럿’과 올해 2월 구글 딥마인드가 발표한 ‘알파코드’가 대표적이다. 이들은 코드 자동완성을 넘어 자연어(일상어)와 컴퓨터를 연결한다.
완전히 새로운 코드는 짤 수 없다
현직 개발자들은 코파일럿을 어떻게 느끼고 있을까. 김유빈 엑스트라이버 머신러닝 엔지니어는 코파일럿이 상용화된 뒤 석 달째 이용하고 있다. 그는 코파일럿으로 업무가 편해졌다고 했다.
우선 반복적인 코드를 쓰는 상황에서 유용하다. 기존과 비슷한 코드를 짜야 하는 상황이 생길 경우 코파일럿은 코드의 전체 맥락과 패턴을 파악해서 필요한 코드를 제안한다.
검색에 드는 시간과 노력도 줄인다. 검색은 개발에서 큰 비중을 차지한다. 코드에 오류가 발생했을 때 전 세계 프로와 아마추어 개발자들이 질문을 올리고 답변하는 ‘스택오버플로우’와 같은 사이트나 각종 솔루션이 정리된 블로그가 답을 주기 때문이다. 코파일럿은 이미 다른 사람들이 짠 코드를 학습한 AI다. 코딩을 하다 막혔을 경우 어떻게 해결해야 하는지 많은 답을 알고 있다.
또한 코드를 짜면 주석을 대신 달아준다. 주석이란 코드를 설명하는 메모다. 주석을 다는 건 비교적 간단한 일이지만, 영어가 모국어가 아닌 개발자들에게는 일처럼 느껴진다. 코파일럿이 주석을 대신 달아주면 조금 틀리더라도 그 부분만 수정하면 된다.
하지만 김 엔지니어는 코파일럿의 한계가 뚜렷하다고 했다. 새로 개발하는 모델에서 핵심이 되는 알고리즘을 짤 때 코파일럿이 전혀 작동하지 않았다. 필요한 코드를 기존의 맥락에서 유추할 수 없었기 때문이다. 코파일럿이 학습한 수십억 개의 코드에서 정확하게 찾는 코드가 없는 경우 쉽게 벽에 부딪힌다. 다시 말해 코파일럿은 ‘완전히 새로운 코드’를 추천해주는 능력을 아직 갖추지 못했다.
“개발자는 문제를 풀어내는 사람”
코파일럿이 완전히 새로운 코드를 추천해주기 위해서는 AI가 단순히 학습데이터만을 가지고 결괏값을 내놓는 단계에서 벗어나야 한다. 즉 AI가 당면한 문제를 이해하고 가장 적합한 해결방안을 찾을 수 있어야 하는 것이다.
이재호 업스테이지 소프트웨어 엔지니어는 ‘문제 이해 능력’에서 인간과 AI의 격차가 있기에 노코드 툴이 개발자의 미래를 위협하지 않을 거라 예측한다. 이 엔지니어는 “개발자는 단순히 코드를 짜는 사람이 아닌 문제를 풀어내는 사람”이라고 강조했다. 또 문제 이해는 맥락과 비용, 효율성 같은 다양한 요소들이 뒤섞여 단순히 예제나 답안으로 답할 수 없는 영역이라고 설명했다. AI가 단순 데이터를 기반으로 한 패턴 인식의 한계를 넘어서는 돌파구를 찾지 않는 한 개발자들에게 위협적인 존재가 되지 않을 것이란 의견이다.
반면 김 엔지니어는 AI가 최근 데이터를 넘어선 이해 영역에 도달했다고 봤다. 올해 4월 구글이 ‘PaLM’이란 거대언어모델에 대한 논문을 발표했는데 여기서 PaLM이 ‘학습시킨 적 없는 농담’을 이해하는 모습을 보였기 때문이다. 그는 “거대언어모델의 잠재력이 아직 다 드러나지 않았기에 기술 발전은 희망적”이라고 말했다. 코파일럿도 거대언어모델인 ‘GPT-3’에 기반한 ‘코덱스’란 모델로 만들어졌다.
그럼에도 김 엔지니어 역시 “노코드 툴이 개발자의 미래를 위협할 것이라 생각하느냐”는 질문에 “아니”라고 했다. 그는 오히려 노코드 툴이 개발자에게 새로운 기회를 줄 거라고 했다.
“컴퓨터 그래픽(CG)이 등장하고 보편화되면서 영화 제작 방식이 변했지만 영화 소품팀이나 미술팀은 건재해요. 영화는 소품과 그래픽을 적절히 사용해 만들고 있습니다. 노코드 툴은 CG처럼 우리 개발자들에게 새로운 기회가 생기는 패턴이라 생각합니다.”
미래의 개발자들은 어떤 준비를 해야 할까
개발자를 꿈꾸는 사람들은 어떤 역량을 개발하는 게 좋을까. 이재호 엔지니어는 앞서 말한 “문제해결 능력”의 중요성을 한 번 더 강조했다. 조건을 이해하고 맥락을 고려해 여러 안을 도출한 뒤 각각의 장·단점을 파악하는 능력, 그리고 현재 상황의 리스크를 줄일 수 있는 최종안을 만들어내는 능력이 필요하다는 설명이다.
“아마추어 개발자라면 매 순간 내리는 결정의 장단점을 스스로 묻고 답해보세요. 그리고 생각을 문서로 만들어 결정의 근거를 명료하게 정리해보고요. 이를 기반으로 다른 개발자들의 피드백을 받으며 본인의 안목을 키워가는 훈련을 해보세요. 이 과정이 문제해결 능력을 키워 줄 겁니다.”
코딩을 배우는 단계에서 코파일럿과 같은 노코딩 AI툴을 사용하는 게 도움이 될까. 김유빈 엔지니어는 부정적이라고 답했다.
“스스로 코드를 짤 줄 알고, 당면한 문제에서 어떤 방식으로 해결해 나가야 하는지 아는 상태라면 코파일럿이 도움이 돼요. 코파일럿이 추천한 코드가 나에게 필요한지 아닌지를 판단할 수 있는 수준에 이르렀다면요. 하지만 코딩을 배우는 과정에서 코파일럿을 쓴다면 자신의 창의성을 개발하지 못하고 코파일럿에 의존할 수 있어요.”
● 인터뷰
GitHub 코파일럿의 아버지
“AI와 개발자는 한 팀”
코파일럿은 부조종사란 뜻이다. 개발의 조종간은 인간이 쥐고 있음을 은유적으로 보여준다. 코파일럿 개발을 이끌었던 외게 드 무어 깃허브 리서치 부사장과 e메일 인터뷰를 진행했다. 노코드 툴과 인공지능(AI)이 일으키는 개발자 생태계 변화에 대한 그의 생각을 물었다.
Q 코파일럿이 개발자의 자리를 위협할까요?
우리는 코파일럿이 개발자를 대체할 거라고 생각하지 않습니다. 코파일럿은 개발자와 협력해 생산성을 높이고 시간과 노력을 들여야 하는 주요 작업에 개발자들이 집중할 수 있게 도와줄 것입니다.
Q 개발자를 어떻게 도와줄까요.
개발자들은 지루한 반복 작업을 해왔습니다. 불필요한 세부 지식 하나하나를 전부 알아야 했어요. 이런 개발 환경 아래서 개발자들이 창조적인 아이디어를 발휘하기 어려웠습니다. AI는 반복 작업을 덜어주고, 개발자들이 세세한 정보를 얻기 위해 인터넷에서 검색하지 않아도 되는 개발 환경을 만들어 줍니다.
깃허브는 코파일럿 베타 버전을 공개했던 기간에 이용자들을 대상으로 설문조사를 진행했습니다. 75% 이상의 응답자가 반복적인 프로그래밍 작업에 불필요한 노력을 덜 수 있었다고 대답했습니다. 또 코파일럿 사용 예측 데이터는 개발자의 작업 시간을 절반 이상 줄여줄 것이란 연구 결과를 내놓았어요.
Q 분명 개발자의 역할이 달라지기는 할 텐데요.
개발자의 역할은 더 좋은 쪽으로 달라질 겁니다. 앞으로 소프트웨어 개발의 모든 측면에서 AI와 개발자는 하나의 팀이 될 거예요. 이때 개발자는 설계자가 될 것입니다. 예를 들어 어떤 문제를 맞닥뜨렸을 때 설계자는 하나의 커다란 문제를 여러 문제로 쪼갠 다음 각각의 작은 문제를 어떻게 해결할지를 고안해 내 AI가 솔루션을 수행할 수 있게 지정하는 역할을 해야 합니다. 즉 그 어떤 시기보다 창의성과 문제해결 능력이 강조될 거예요. 그러니 개발자를 꿈꾸는 학생들은 큰 그림을 생각하는 법을 배우는 것이 중요하겠지요.
외게 드 무어는 “코딩 분야에서 커리어의 미래가 이렇게 밝아 보인 적은 없었다”며 인터뷰를 끝맺었다. 이렇듯 현직 개발자들과 AI 전문가는 입 모아 AI에게 일자리를 뺏길까 봐 두려워 개발자 꿈을 포기하지 않아도 된다고 말한다. 오히려 AI가 발달하면 개발자들이 문제를 이해하는 데 자신의 창의성을 발휘할 수 있어 더 인간답게 ‘개발’에 전념할 환경을 만들 거라고 설명한다.