A.I. 시대에 소프트웨어 개발이란?

A.I. 시대에 소프트웨어 개발이란?

2022년 11월 ChatGPT가 본격적인 A.I.의 서막을 알렸으니 A.I. 붐이 일어난지 아직 3년이 채 못 된 시점이다. 비록 짧은 기간이지만 근래 우리 피부에 와닿는 이 기술의 파급력은 어마어마하다. 초기 그렇게 덩치가 컸던 A.I. 모델도 3년도 안돼 휴대폰 속까지 들어와버렸으니 A.I.를 모르는 사람은 거의 없을 지경이다. 이렇게 전 세계적으로 파급력도 크고 전파력도 강한 A.I.가 일상생활 속에서 느끼는 체감이 이정도인데 이 업계에 몸담고 있는 나로서는 오죽하겠는가! A.I.가 만들어 내는 결과물을 접하는 이용자의 시각과 A.I.를 활용해 결과물을 만들어 내는 개발자의 입장에서 바라보는 관점은 사뭇 다를 것이다. 이 글에서는 A.I.를 이용해 소프트웨어를 개발하는 패러다임이 어떻게 변화되고, 이로 인해 소프트웨어 개발에 미치는 파급력이 어느 정도인지 개발자의 시각에서 얘기해 보고자 한다.

사실 ChatGPT가 세상에 알려지고 이 기술의 핵심인 LLM(Large Language Model)을 접하기 전까지는 머신러닝(Machine Learning), 딥러닝(DeepLearning), AI학습관련 용어 – Supervised, Unsupervised – 등이 A.I. 를 대표하는 주요 키워드였다. 비록 새로운 방법이 시도된다고 해도 이 범주에서 크게 벗어나지는 않았다. 하지만 LLM이 나오면서부터 이런 핵심 용어들은 A.I. 업계에서 대부분 사라져 버렸다. 단적인 예로 서점을 둘러 보면 LLM이 나오전 전까지 각광받던 기술 서적들은 대부분 자취를 감춰 버렸다. 당연하다. 물리학의 통일장 이론처럼 LLM이, 앞 서 나온 모든 기술과 개념들을 아우르면서 A.I.를 대표해 버렸기 때문이다.

개발자 입장에서 보통 “A.I. 개발을 한다”라고 하면 지금까지는 프로그램 코딩보다 A.I 학습을 위한 데이터 정제, 데이터셋 분리(학습/검증)와 같은 데이터 엔지니어링에 가까웠다. 일반적인 인식과 달리 그 형태와 방법은 기존의 개발 문법과는 차이가 컸다. 많은 데이터에서 일정 패턴을 찾아내기 위해 데이터를 가공하고 정제한 다음, 모델을 학습시키고 그 결과를 테스트하는 반복적 행위에 가까웠다. 비유하자면 이런 A.I. 학습 과정을 옹알이 시기에 애기와 나눈 대화 정도로 이해하면 맞을 것이다. 애기가 태어난 후 옹알이를 주로 하다 말을 배우기 시작하면서부터 인지기능이 폭발적으로 늘어난다. 긴 옹알이 기간 동안 애기와 나눈 많은 양의 대화처럼 인터넷 상에 존재하는 엄청난 양의 문서자료를 학습 시켰더니 사람과 구분되지 않을 정도의 성능을 내는 모델 만들어 져 버린 것이다. 이 모델을 LLM이라고 하며 인지기능이 폭발하는 시기에 형성된 애기 두뇌를 LLM으로 비유하면 무리가 없을 것이다.

이렇게 되면서 일반적으로 인식되던 개발의 역할은 A.I. 성장 초기 데이터 엔지니어링에 그 자리를 내어주기 시작하다가 LLM이 나오면서부터 프로그래밍 기술을 이용하여 A.I. 에 기여할 수 있는 개발 영역은 많은 부분 줄어들게 되었다. 또한 LLM이 대부분의 A.I. 기술을 집어삼켜 버려 이전에 각광받던 기술들은 거의 쓸모없는 꼴이 되어 버렸다. 더구나 LLM 을 만들어 보고 싶다 손 치더라도 GPU로 대표되는 핵심 부품과 전력으로 지출되는 어마어마한 비용을 감안하면 엄두도 못낼 처지가 돼버린 셈이다. 이런 연유로 A.I 개발은 울며 겨자먹기 식으로 비용을 지불하면서까지 OpenAI, 구글과 같은 세계적 A.I. 기업이 제공하는 API(Application Programming Interface)를 활용할 수 밖에 없는 형태로 전락해 버렸다.

LLM이 처음 나온 이후부터 ChatGPT와 같은 챗봇류의 앱들이 줄곧 전세계적으로 주목을 받아왔다. 그러던 중 작년(2024) 말부터 이 기류에 변화의 조짐이 나타났다. A.I.를 이용한 단순 정보 획득을 지나 실생활에 도움이 되는 기술이 나오기 시작한 것이다. 예를 들어, 구매하고 싶은 상품이 있다면 기존에는 직접 여러 인터넷 쇼핑몰을 비교해 보고, 후기가 좋고 가격이 저렴한 물건을 직접 골랐다면 이제는 A.I.가 알아서 여러 쇼핑몰을 검색하고 관련 상품들 중 사용자의 요구사항을 가장 잘 충족시켜주는 상품을 대신 찾아 사용자의 최종 선택과 결제만 하면 되도록 해주는 것이다. 즉, 사람이 했던 일을 A.I. 가 대신 해 주는 것이다. 이런 기술을 A.I. Agent라고 한다. A.I. Agent와 같은 기술을 활용하여 무엇을 만들더라도 그 핵심에는 사람의 두뇌에 해당하는 LLM이 존재한다는 것을 잊지 말아야 한다.

이런 기류를 타고 A.I. 업계의 구글, Anthropic은 근래 “A2A: Agent-to-Agent protocol“, “MCP: Model Context Protocol“와 같이 A.I. Agent 제작을 위한 표준 기술들을 발표하면서 소프트웨어 개발이 일정 역할을 할 수 있도록 단초를 제공해 준 것이다. 머지않아 이런 개발도 자동화 형태로 대체되고 최종적으로는 소프트웨어 업계에서 개발이 차지할 공간은 영원히 사리지리라는 예감이 들긴 하지만 그래도 개발로 다시 뭘 해볼 수 있겠다는 기대감이 커지는 것도 사실이다.

MCP, A2A 기술들이 A.I. 업계에 화두가 되면서 이 기술이 어떤 것이고 어떻게 활용되며 앞으로 어떻게 진화해 나갈지 개발자로서 궁금증을 갖는 것은 당연하다. 그런 측면에서 근래 짧은 시간이지만 이 기술을 학습하고 간단한 개념구현 정도까지 해보면서 느꼈던 점을 풀어 보고자 한다.

우선, 개발이란 기존의 고정관념과 패러다임을 바꿔야 할 것 같다. 지금까지의 개발은 업무 생산성을 위해 사람이 명령하는 특정 작업을 컴퓨터가 대신 하도록 프로그래밍 언어를 활용하여 일종의 도구(tool)을 만드는 작업 정도로 인식해 왔다. 사실 이 도구 안에는 특정 목적을 달성하기 위해 다양한 업무로직이 구현되며 그런 업무로직을 만드는 것이 개발자들의 역할이자 전유물이었다. 내부적으로 들여다 보면 업무로직은 복잡할 뿐만 아니라 다양한 상황 판단이 들어가며 경우에 따라서는 외부의 자료도 참조해야 한다. 어떻게 보면 이런 업무로직을 개발하는 것이 소프트웨어 개발의 핵심으로 생각할 수도 있다.

이제는 LLM이 나오면서부터 이런 복잡한 업무로직을 A.I. 가 대신 처리해 주는 것이 가능해 졌다. A.I.가 업무로직을 대신 처리한다는 것은 그간 개발자들이 만들어 왔던 소프트웨어가 더이상 필요로 하지 않음을 의미한다. 생각을 좀 더 확대해 보면 업무로직은 A.I.가 대신하고 그 과정에서 외부 자료가 필요할 경우 그 외부자료 접근에 필요한 방법만 제공해 주면 된다. 이는 더이상 사람의 도움이 필요하지 않을 수도 있음을 시사한다. 엄청난 패러다임의 전환기 아닌가! 이런 변화의 핵심에 LLM이 있다고 보면 된다.

이렇게 A.I.가 모든 것을 집어삼킬 것처럼 붐이 일어나고 MCP, A2A와 같이 외부자료에 접근하는 방법과 A.I. Agent끼리 서로 대화하는 방법에 관한 표준이 나온다 하더라도 아직은 일부 개발자의 손이 필요하다. 썩 내키지 않지만 두뇌 역할을 하는 기능을 A.I. 즉 LLM이 담당하고 이 LLM이 지시하는 명령을 수행하기 위한 도구를 이제 개발자들이 만들어야 하는 형국이 되어 버렸다. 어떻게 보면 개발자의 역할은 초라한 모습으로 전락해 버린 셈이다. 그래도 아직까지는 약간의 역할이 필요하다는 것에 위안을 얻어야 할지도 모른다. 소프트웨어 개발자로서 지금까지 이어 온 개발 생태계의 끝자락에라도 참여하고 싶다면 MCP, A2A로 대표되는 기술을 습득하고 개발에 직접 활용해 볼 것을 권한다. 그것도 아니라면, 이렇게 다가오는 거대한 기술의 쓰나미에 쓸려가지 않도록 인식이라도 제대로 하고 대비하는 것이 필요하리라 본다.

이렇게 A.I.가 우리 사회의 많은 부분을 대체해 나간다면, 개발자의 향후 모습은 어떻게 변하게 될까? 앞에서 얘기했지만 적어도 지금 우리가 하고 있는 개발의 모습은 사라질 것으로 본다. 그리고 미미하게나마 남아 있던 개발 영역도 어떤 형태로든 자동화된 방식으로 대체되며 그 자동화된 방식을 결국 A.I.가 대신할 것으로 생각한다.

ChatGPT를 번역이나 통역을 위해 활용해 본 경험이 있다면 그 품질에 놀랐을 것이다. 예를 들어 한국어를 영어로 동시 통역을 시켜보면 깜짝 놀랄 정도로 그 품질이 탁월하다. A.I. 가 맥락만 이해하고 있다면 아마도 사람이 직접 통역하는 것보다 더 잘하리라 생각한다. 심지어 영어 뿐만 아니라 일어, 중국어, 독일어와 같이 동시에 여러 언어로도 통역이 가능하다. 이 기술의 밑바탕에는 임베딩(Embedding)이라는 것이 있다. 자세한 기술은 생략하더라도 이제 언어 통역 분야에서는 이미 기술적 한계를 뛰어넘은 것으로 보는 것이 맞을 것 같다. 그렇다면 자연스럽게 이런 생각으로 이어질 수 있다. 프로그래밍 언어도 우리가 사용하는 언어처럼 컴퓨터가 이해하는 일종의 언어에 불과하므로, A.I.가 사람이 하는 말을 이해한 후 Java, Python과 같은 프로그래밍 언어로 대답하고 실행해 주는 것을 상상해 볼 수 있다. 이렇게만 된다면 인간이 관여하는 개발업무는 대부분의 영역에서 사라지게 될 것이다.

많은 전문가들에 의하면, 전세계적으로 A.I.가 가져올 파급력은 과거 산업혁명을 불러 온 증기기관 보다 훨씬 더 클 것이라고 한다. 이와 관련된 업계에 몸담고 있는 나로서도 이런 예견이 과장되지 않음을 확신한다. 단적인 예로, A.I. 주도권을 차지하기 위해 미국과 중국이 벌이는 첨예한 대립만 보더라도 그렇다. 이는 A.I. 경쟁에 뒤쳐질 경우 세계적 패권이 바뀔 뿐만 아니라 그럴 경우 다시 비교 우위를 차지하는 것은 거의 불가능에 가깝기 때문일 것이다.

A.I.가 주목을 받기 시작하고 이 기술이 소프트웨어 개발 영역을 조금씩 잠식해 올 때 나는 농담처럼 주위에 해 온 말이 있다. “내가 개발자의 마지막 세대가 될 것이다.” 이제 이 말이 조금씩 현실로 다가오고 있음을 직감한다. 1990년대 중반 대학시절 우리나라에 인터넷이 처음 소개되고 Java 언어가 탄생하던 때부터 개발자로서의 나의 경력도 그 궤를 같이 해왔다. 지금 되돌아 보면 처음으로 개발자가 사회 주요 직군으로 인정받고 인터넷 부흥과 함께 그 전성기를 누리기도 했지만 이제 LLM으로 대표되는 A.I.의 탄생과 성장 앞에 지금까지의 나의 개발 경력도 이제 지는 석양을 맞이하는 것 같다.

향후, A.I. 기술을 앞세워 대변혁의 큰 파도가 사회 전반에 덮쳐 올 것이라 확신한다. 이로 인해 삶이 더 풍요로워 지기는 하겠지만 소프트웨어 개발처럼 이면의 그늘도 분명 있을 것이다. 그렇다고 지금 고민한다고 해서 이 큰 물줄기를 바꿀 수는 없다. 그러니 냄비안 개구리와 같이 비참한 결과를 맞지 않기 위해서는 소프트웨어 개발자로 할 수 있는 최선을 다 하되, 주요 기술 트랜드를 파악하는 안목과 사전에 대처하는 힘을 기르는 것이 무엇보다 중요하리라 생각한다. 끝.

2025.07.04 – Skanto

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다