AI Sparkup

복잡한 AI 세상을 읽는 힘 ⚡

AI로 코딩하면 쉬워질까? 정보이론이 말하는 Vibe Coding의 함정

“이제 코딩 배울 필요 없어. AI한테 시키면 돼.” 요즘 자주 듣는 말입니다. 구글 CEO는 비개발자들이 AI로 앱을 만드는 시대가 왔다고 말하죠. 그런데 정보이론 전문가는 정반대 주장을 합니다. 복잡성은 사라지지 않고 다른 곳으로 옮겨갈 뿐이라고요.

사진 출처: TechSpot

헬싱키 기반 AI 전문가 Matias Heikkilä의 정보이론 분석과 구글 CEO 순다르 피차이의 최근 발언은 ‘Vibe Coding'(AI에게 자연어로 지시해 코드를 생성하는 방식)을 둘러싼 상반된 시각을 보여줍니다. 한쪽은 “복잡성의 본질은 변하지 않는다”고 주장하고, 다른 쪽은 “소프트웨어 개발의 민주화가 시작됐다”고 말합니다.

출처:

구글 내부에서 일어나는 변화

피차이는 최근 구글 개발자 팟캐스트에서 회사 내부의 변화를 구체적으로 언급했습니다. HR 직원, 회계사 같은 비개발자들이 ChatGPT, Gemini, Claude 같은 도구로 간단한 앱을 만들어 회의에 가져온다는 겁니다. 명세서를 작성해 엔지니어링 팀에 넘기고 기다리는 대신, 작동하는 데모를 직접 만들어 동료와 경영진에게 보여주죠.

구글 내부 저장소에서는 처음으로 코드 변경을 제출하는 사람들이 급증했다고 합니다. 메타에서도 비슷한 현상이 나타났습니다. 제품 매니저들이 AI 도구로 프로토타입 앱을 만들어 CEO 마크 저커버그에게 직접 보여주는 사례가 늘었습니다.

피차이는 이를 긍정적으로 봅니다. 사람들이 아이디어를 테스트하는 장벽이 낮아졌고, 코딩이 “더 즐겁고 접근하기 쉬워졌다”는 겁니다. 단, 그도 한계는 분명히 했습니다. “보안이 중요한 대규모 코드베이스”에는 Vibe Coding을 적용하지 않는다고요.

“복잡성은 사라지지 않는다”

10년 넘게 복잡한 소프트웨어와 AI 프로젝트를 이끌어온 Matias Heikkilä는 정보이론적 관점에서 Vibe Coding에 회의적입니다. 핵심 논리는 Kolmogorov 복잡도에 기반합니다. Kolmogorov 복잡도란 특정 결과물을 만드는 데 필요한 최소한의 정보량을 뜻합니다. 복잡한 프로그램은 본질적으로 많은 정보를 담고 있죠.

저자는 “No Free Lunch”(공짜 점심은 없다) 상황이 생긴다고 주장합니다. 복잡한 프로그램을 만들려면 평균적으로 긴 프롬프트가 필요하다는 겁니다. 이론적으로는 한 줄 프롬프트로 소프트웨어를 만들 수 있지만, 그 프롬프트 자체가 복잡해지는 순간 그것도 하나의 프로젝트가 됩니다.

“복잡성은 변형될 수 있지만 제거될 수는 없다”는 게 핵심입니다. 프로그래밍 복잡성이 프롬프트 엔지니어링 복잡성으로 옮겨갈 뿐이라는 거죠. 마치 그래픽 유저 인터페이스(GUI)가 명령어 입력의 복잡성을 줄였지만, 소프트웨어 자체의 복잡성은 여전히 존재하는 것처럼요.

저자는 또 다른 비유를 듭니다. 오라클(완벽한 AI)이 있어서 어떤 프로그램이든 요청하면 오류 없이 만들어준다고 가정해봅시다. “이제 소프트웨어 개발이 끝났네!” 싶지만, 실제로는 방대한 정보를 탐색하는 작업 자체가 어려운 문제입니다. 무엇을 만들지 정의하고, 필요한 기능을 명확히 하고, 예외 상황을 처리하는 방법을 설명하는 일은 여전히 복잡합니다.

두 관점이 모두 맞을 수 있는 이유

언뜻 모순처럼 보이지만, 두 주장은 다른 맥락을 말하고 있습니다.

피차이가 말하는 건 프로토타입과 저위험 도구입니다. HR 직원이 간단한 데이터 처리 스크립트를 만들거나, 제품 매니저가 아이디어 검증용 데모를 만드는 상황이죠. 이런 경우 “제대로 작동하기만 하면” 됩니다. 코드 한 줄 한 줄을 이해할 필요도 없고, 엣지 케이스를 완벽히 처리할 필요도 없습니다.

Heikkilä가 말하는 건 프로덕션급 소프트웨어입니다. 수백만 명이 쓰는 서비스, 금융 거래를 처리하는 시스템, 보안이 중요한 애플리케이션 같은 거죠. 여기서는 “대충 돌아가는 것”과 “제대로 작동하는 것” 사이에 엄청난 차이가 있습니다. 그 차이를 메우려면 여전히 복잡한 명세, 테스트, 검증이 필요합니다.

피차이 본인도 이를 인정합니다. 그는 “정말 제대로 해야 하는” 대규모 코드베이스에는 Vibe Coding을 쓰지 않는다고 명시했습니다. 결국 AI 코딩 도구는 소프트웨어 개발의 스펙트럼에서 “진입 장벽 낮추기”에는 성공했지만, “복잡성 제거”와는 다른 이야기입니다.

프로그래밍 언어는 난독화가 아니다

Heikkilä는 중요한 지적을 하나 더 합니다. 많은 사람들이 프로그래밍 언어를 “어렵고 암호 같은 것”으로 봅니다. 마치 전문가들이 일부러 어렵게 만든 것처럼요. 하지만 실상은 정반대입니다.

Python, JavaScript 같은 현대 프로그래밍 언어는 “극도로 복잡한 것을 가능한 한 단순하게 만들려는 최선의 노력”입니다. 컴퓨터에게 정확히 무엇을 해야 하는지 알려주는 일은 본질적으로 복잡합니다. 프로그래밍 언어는 그 복잡성을 다루기 위한 도구이지, 복잡성의 원인이 아닙니다.

AI가 자연어 인터페이스를 제공하면 “쉬워 보이는” 건 사실입니다. 하지만 소프트웨어가 다루는 문제 자체의 복잡성은 여전히 존재합니다. 어떤 도구를 쓰든, 그 복잡성과 씨름해야 합니다.

그래서 Vibe Coding은 쓸모없나?

전혀 그렇지 않습니다. 피차이의 사례가 보여주듯, Vibe Coding은 특정 맥락에서 강력한 도구입니다:

  • 빠른 프로토타이핑: 아이디어를 검증하고 싶을 때
  • 일회성 스크립트: 데이터 정리, 파일 변환 같은 단순 작업
  • 학습 도구: 코드가 어떻게 작동하는지 보면서 배울 때
  • 생산성 향상: 반복적인 보일러플레이트 코드 생성

하지만 복잡한 시스템, 보안이 중요한 애플리케이션, 장기적으로 유지보수할 소프트웨어에는 여전히 깊은 이해가 필요합니다. AI가 코드를 만들어줘도, 그 코드가 무엇을 하는지, 어떤 문제를 일으킬 수 있는지 판단하는 건 사람의 몫입니다.

Heikkilä가 말했듯, “절대적인 제어가 필요한 한, 복잡성을 다루는 방법은 피할 수 없습니다.” AI는 그 복잡성을 다루는 방식을 바꿀 수 있지만, 복잡성 자체를 없애지는 못합니다. 결국 “코딩을 배울 필요가 없다”가 아니라, “코딩을 배우는 방식이 달라진다”가 더 정확한 표현일 겁니다.

참고자료:


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

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