6일 동안 AI 개발툴과 바이브 코딩하며 느낀 점

프로젝트 후반부 수정 지옥을 미리 피하는 방법

토요일부터 오늘까지 틈틈이 시간내서 AI 개발 툴(replit)과 웹 앱(보통 웹사이트라고 한다)을 함께 만들어 보고 느낀 점을 기록해 둔다. 블로그니까 로그를 기록하는게 당연하겠..제목을 ‘6일 동안 AI 개발툴과 바이브 코딩하며 느낀 점’이라고 뽑았지만 지금 되돌아 보니 내가 AI를 데리고 놀았는지 AI가 나를 데리고 놀았는지 모르겠다. 처음엔 호기심으로 시작해서 중반엔 생각했던 웹사이트가 바로 바로 구현되는 것을 지켜보며 놀랐다가 뒤로 갈수록 수정작업이 내 마음대로 이루어지지 않아 실망과 낙담을 했던 것 같다.

replit
  • AI에게 지시를 내리기 전에 ChatGPT나 제미나이 같은 LLM AI을 이용해 먼저 자신의 아이디어를 논의하고 구체화하는 게 반드시 필요하다. AI 개발 툴에게 간단한 말로 이런 저런 앱을 만들어 줘~ 라고 지시할 수도 있지만 홈페이지 같은 정적인 웹사이트(이런 작업들은 AI가 지금 바로 사람을 대체할 정도로 정말 빠르고 훌륭하게 수행한다)를 만드는 게 아니라면 반드시 LLM AI를 이용해서 아이디어를 구체적으로 설계하고 어떤 기능들이 필요한 지 미리 논의하는 게 좋다.
  • 이렇게 만든 스크립트를 기본으로 AI 개발툴이 개발 시안을 제시하는데 이때 그냥 바로 수정사항을 이야기하기 보단 시안을 어떤 식으로 만들었는지 개발 AI와 약간의 토론을 해보는 게 좋다. 전달받은 스크립트를 기반으로 어떻게 구현했는지, 그리고 어떤 아이디어를 추가하는 게 좋은지, 구조는 어떻게 만들었는지 같은 전체적인 부분을 사람도 알고 있으면 후반 작업(가장 중요하다)이 수월해진다. 처음에 약간 돌아가거나 쓸데없이 비용이 나간다고 생각하기 쉽지만 의외로 이 부분이 나중에 닥칠 수정 지옥(?)을 조금이라도 피할 수 있는 지름길이다.
  • AI 개발 툴에도 환각이 있다. 마치 작업 지시자가 말하는 모든 게 쉽게 구현될 것처럼 자신있게 말하기 때문에 처음 접하는 나같은 비전공자들은 AI가 하는 말에 바로 속아넘어가기 쉽다. AI가 한 말만 믿고 덜컥 작업을 진행시켰다가 나중에 이를 수정하기 위해 정말 많은 시간과 돈과 에너지를 소모하게 된다. 물론 아무리 오랜 시간이 걸렸더라도 산출물이 시원찮을 땐 바로 그 전 단계로 롤백할 수도 있지만 그에 따른 기회비용과 매몰비용은 피할 수 없다. 개인적인 생각이지만 이럴 경우 AI에게 화를 내거나 비난하는 투로 지시하면 아웃풋이 더 나빠지는 것 같다. 감정이 없는 AI라도 살살 달래고 우쭈쭈하면서 지내는 게 더 나았다.
  • AI에게 작업 지시는 구체적으로 해야한다. AI 개발툴에게 작업을 지시하기 전에 다른 AI에게 작업에 대해 물어보거나 아니면 따로 조사해서 대안을 찾아 제시하면 찰떡같이 잘 알아 듣고 빠르게 분석한다. AI가 인간보다 훨씬 뛰어난 장점이니 그냥 단순한 지시만 하고 끝나는 게 아니라 본인이 먼저 구체적인 계획을 세우고 계획에 대한 대안을 다방면으로 찾고 조사해서 그 결과를 복사해서 던져 주는, 개발 주도권을 일정 부분 가지고 있어야 한다. 당연한 말이지만 결국 사람이 가지고 있는 만들고자 하는 앱에 대한 도메인 지식의 크기가 AI 개발 성능에 가장 큰 영향을 끼친다. 당연히 S/W 개발 지식이 있다면 훨씬 더 유리해진다. 상급 개발자의 경우 AI 개발 툴을 잘 활용한다면 정말 무시무시한 성과를 낼거라 확신한다.
  • AI 개발 툴은 없는 것을 만들거나 새로운 아이디어를 만들어 낼 수 있는 능력은 없다. 아니 설령 있더라도 사람이 올바르게 지시하지 않는 한 만들지 못한다. 스티브 잡스가 말했듯 고객은 자신들이 무엇을 필요로 하는지 모르는 것처럼 지시하는 사람 역시 자신이 무엇을 만들지 미리 정확하게 알고 지시하지 못한다. AI 개발 툴이 가장 잘 하는 것은 큰 덩어리들을 잘게 쪼개어 (이미 존재하는) 작은 작업으로 지시했을 때 그 작은 작업을 잘 해낸다. 그러려면 먼저 사람이 자신이 하고자 하는 일의 큰 덩어리와 작은 덩어리, 그리고 아이디어를 디벨롭하면서 생겨나는 추가 덩어리들에 대한 생각을 먼저 가지고 난 후에 지시해야 한다. 앞에서 AI에게만 맡기지 말고 자신이 직접 계획을 세워야 한다고 강조한 부분과 겹치는 말이다.
  • AI가 작은 작업을 잘한다는 것을 장점이라고 했지만 그래서 오히려 전체적인 연동에서 문제가 생기기 쉽다. 작은 작업의 퍼포먼스는 너무 뛰어나지만 그 작업을 했을 때 그 작업과 연결된 다른 작업과의 상호 연동에 대해서 미리 고민하지 않기 때문에 그냥 지시받은대로 아무 고민없이 작은 작업부터 바로 시작하는 경우를 많이 봤다. 프로젝트 후반부로 갈수록 연동된 작업들이 늘어나기 때문에 AI의 이런 작은 작업에서 발생하는 자잘한 실수들은 결국 프로젝트 후반부에서 시간과 비용을 잡아 먹는 가장 큰 요인이 되고 때론 프로젝트 실패의 가장 큰 이유가 된다.
  • AI는 단기 기억상실증인 사람처럼 행동하는 경우도 많다. 바로 전에 지시해서 작업을 완료했는데 그 부분을 다시 물어 보며 지시하면 마치 처음 듣는 것처럼 반응하는 경우도 있고 이미 했던 작업과 모순되는 지시를 받더라도 미리 모순을 찾아내지 못하고 일단 먼저 진행하고 문제를 만나면 그때서야 허둥대는 경우가 많았다. 작은 작업들은 뛰어나지만 전체적인 구조를 보고 상호 연결해서 입체적으로 보는 능력이나 진행하는 작업들을 기억하며 병렬로 처리하는 부분에선 아직 많이 부족해 보였다. 그래서 프로젝트의 끝부분으로 갈수록 수정 지옥(?)이 벌어지고 전체를 뒤집어 엎을 일도 종종 생기게 된다..ㅋ
  • 6일 동안 AI 개발툴과 바이브 코딩하며 느낀 점을 나열하다 보니 가장 최근에 느낀 후반부 수정 지옥을 떠올리며 나같은 실수를 하지 말란 의미에서 AI의 장점 보다 단점 위주로 많이 이야기했지만 AI 개발 툴을 직접 사용해 본 소감은 그야말로 깜짝 놀랄 수준으로 올라왔다고 느꼈다. 개발자 입장에서 생각한다면 이제 더이상 AI를 이용한 개발은 개발자의 선택 사항이 아닌 필수가 됐다고 본다. 개발자라면 무조건 AI를 받아들여 자신의 날개로 삼아야 한다. 물론 나같은 비전공자들도 AI 개발툴을 한번씩 이용해서 평소 자신이 생각만 하고 있던 아이디어를 실현해 본다거나 작더라도 자신의 업무 자동화 툴을 한번 만들어 본다면 아마 또다른 세상이 열릴 것이다~

내가 만들었던 아이디어는 버핏이 매일 8시간 이상을 500페이지가 넘는 사업보고서나 책을 읽는다는데 비록 버핏이 읽는 책(지혜의 원천)을 자동화할 수는 없겠지만 기업의 사업보고서에서 버핏이 볼만한 핵심 숫자들은 AI가 빠르게 자동화해서 단 10초만에 정리할 수 있지 않을까 하는 아이디어였다. 그래서 우리의 DART에 해당하는 EDGAR(다트보다 훨씬 표준화가 잘 됐다는 말만 믿고 덜컥..ㅋ)를 건드렸다가 XBRL…지옥을 맛봤다.ㅋㅋ

Replit을 이용한 바이브 코딩

오히려 나같은 비전공자와 S/W 개발자들에겐 새로운 기회가 될지도.

현재 AI가 큰 영향을 미치는 분야 중 하나가 S/W 개발 분야다. 관련 뉴스들이 그야말로 쏟아지고 있다. AI에 엄청난 CAPEX 투자를 하고 있는 빅테크는 작년부터 인력 감축에 들어가 대규모 구조조정을 하고 있다. 쉽게 AI로 대체할 수 있는 초급 개발자 수요가 급속히 줄면서 컴퓨터공학(컴공)과 졸업생들의 일자리가 급감하고 있다. 도대체 AI 코딩이 어느 정도 수준이기에 이렇게 초급 개발자를 대체하는 걸까…궁금한 마음에 주말을 이용해서 직접 AI를 이용한 바이브 코딩을 해보기로 마음먹었다.

이름만 나열해도 구글의 안티그래비티를 위시해서 그 유명한 커서, 피그마, 깃허브, V0, 러버블, 볼트…그리고 내가 선택한 Replit. 우연히 유튜브로 본 동영상때문에 선택했다. 나는 단순한 정적 홈페이지나 블로그를 만들고 싶은 게 아니라 DB가 포함된 일종의 SaaS 프로토타입을 만들고 싶었기 때문이다. 대부분의 툴은 사용자가 보는 프론트엔드에 집중되어 있는데 Replit는 밑단의 백엔드와 배포까지 한번에 처리할 수 있는 것으로 소개됐기 때문이었다.

Replit 회사가 궁금해서 검색했더니 “2016년 설립된 리플릿은 빠른 성장세를 보이고 있다. 회사는 지난해 280만달러였던 연간 매출을 1억5000만달러로 끌어올렸으며, 9월 자금 조달 라운드에서 기업 가치를 30억달러로 평가받았다. 핀테크 기업 램프(Ramp)에 따르면 리플릿은 소프트웨어 공급업체 중 신규 고객 증가 속도가 가장 빠른 기업으로 꼽힌다.” 30억 달러 기업가치에다 바로 얼마전 구글과 다년간 전략적 파트너십을 체결했다.

Replit이 30억 달러 기업으로 평가받는데 이미 커서는 기업 가치가 293억 달러로 평가되고 있는 거대 시장이다. 커서는 개발자들이 많이 사용하는 것으로만 알고 있는데 나같은 초보자는 보다 쉽고 유저프렌들리한 툴을 써보는 게 좋겠다 싶어 Replit으로. Replit은 무료 가입자(추천 제도로 마케팅을 한다. 내 추천으로 가입하면 나도 가입자도 서로 이익을 얻는 구조니 한번 사용하고 싶다면 이걸로 가입해 보시길~)로 시작할 수 있다. 하지만 뭘 만들다 보면 금방 무료 사용량을 초과하게 된다. 나처럼ㅋ

어제 무료로 가입하고 프로토타입을 만들다가 바로 유료(한달 $25)로 전환해서 5시간 정도 걸려 기본 뼈대를 완성…하고 보니 한달 사용량을 훌쩍 초과해서 추가까지..얘네 돈 잘버네ㅋㅋ S&P 500 기업명을 입력하면 바로 간단한 기업 분석 정보가 나오는 단 한 페이지. 그리고 검색한 기업이 저평가라고 확인되면 자동으로 저평가 리스트에 등록, 조회할 수 있고 별도로 관심 종목으로 저장해서 잊지않고 팔로우업 할 수 있는 리스트까지 만들었다.

프로토타입 완성하고 초기 화면에서 구글(GOOGL)을 입력하니 바로 정보들이 나온다..^^

구글

애널리스트 목표가 평균과 매출 이익 추이 같은 기본적으로 보고 싶은 정보들을 처음에 배치.

구글 가치평가

다음에 기업 품질과 간단한 밸류에이션, 그리고 관련 뉴스 몇 개를 보여주고 끝. 간단히 살펴 보기엔 딱 필요한 내용들이다. AI와 바이브 코딩을 하면서 특히 내가 놀란건 대부분 해외 뉴스라서 제목이 영문인데 이걸 자동으로 번역하고 긍정적/다소긍정적/중립/다소부정적/부정적으로 랭킹을 매겨서 센티멘털 정보까지 제공한다는 점이었다. 구글을 검색하고 보이는 것처럼 기본 설정된 로직에서 저평가로 판단하자 바로 저평가 리스트로 들어가 있는 것까지 확인했다. 총 5시간 걸렸다. 물론 나는 코딩 1도 못하는 사람..ㅋㅋㅋ 초급 개발자들 일자리 없어지겠단 말 바로 실감했다.

앱이나 웹사이트를 만들면 Replit는 배포까지도 쉽게 되는지라 이걸 블로그 구독자들께만 살짝 공개해 볼까…했지만 아직 수준이 워낙 엉망인지라..ㅋ 혹시라도 S&P 500 기업 중에 궁금한 기업이 있으면 댓글로 티커(예 AAPL 애플)만 적어 주시면 모아서 저와 AI가 만든 프로토타입에서 분석한 저런 한 페이지짜리 화면만 캡처해서 올려보겠습니다~

일종의 시스템 테스트인데 무료로 주가 정보를 가져오는 API가 일일 횟수 제한이 있는지라 한꺼번에 바로바로 돌리기는 힘든 상태. API도 유료로 하면 되겠지만 유료는 비용이 꽤 나간다. 나처럼 혼자 사용하기에는 무료도 충분하다. 국내 기업 정보를 제공하는 제대로 된 API가 있는진 모르겠지만 나중에 시간되면 국내 기업도 한번 만들어 볼까 생각중이다. AI와 바이브 코딩에 비용이 들어가고 배포하고 유지하는 데도 비용이 들어가고 API를 이용해 정보를 가져오는데도 비용이 들어간다. 네이버증권 야후파이낸스 같은 곳들은 정말 천사들이다..ㅋ

추가) 적다가 생각난 김에 바로 국내 주식도 같은 형식으로 분석할 수 있는지 검토시킴..ㅋ 이게 바로 되네?!

AI와 대화 캡처

구현 계획 세우더니 지시하자마자 바로 작업 시작~ 그리고 중간중간 진행사항 보고.

작업 진행상황 보고

초기 구현에 오류가 제법 있어 트러블슈팅을 지시했더니 자기가 알아서 계산..ㅋ 역시 AI에게 지시하는 사람의 도메인 지식 유무가 가장 중요하다.

트러블 슈팅러블 슈팅

결국 20분 걸려서 구현하긴 했다. 아직 오류가 많아서 그렇지..ㅍㅎ 삼성전자. 아래는 숫자들 고치다 고치다 그만 둔 상태. 버핏 AI도 간단하게 붙여봤는데 Replit이 아직 제대로 붙일 수 없는 상태인지라 ChatGPT에게 간단하게만 학습시킨 낮은 단계..

삼성전자
버핏 AI

일일이 하나하나 다 AI를 가르치면서 수정해야 한다. 그 과정에서 내 돈이 계속 나간다…이걸 내가 왜 하고 있지?!

AI 가르치기

다트 분기별 사업보고서(반기 연간 보고서는 누적인지라..끌끌) 가져와 일일이 뜯는걸 AI에게 하나하나 가르치다보니 끝이 없다. 다트에서 재무데이터를 하나씩 가져오니 속도도 너무 느리고…국내 주식은 그냥 여기서 그만..

댓글 플러그인 변경

피드백은 중독이다. 댓글도 그렇다.

거의 변화가 없던 블로그에 간만에 변화를 줬다. 블로그 댓글 툴을 기본 툴에서 새 플러그인으로 바꿨다. 이유는 딱 하나, 오랫동안 내 생각 저장소로 사용했었던 페이스북의 댓글처럼 사진같은 이미지를 쉽게 붙일 수 있는 댓글로 만들고 싶어서다. 지금까지 사용했던 기본 툴은 댓글에 사진을 올리는 게 꽤나 번거로웠다. 사람은 편리한 것을 추구하기 마련이라 편하고 익숙해진 것을 내려놓기란 정말 어렵다.

하지만 결국 세 단계로 이미지를 올렸던 것을 두 단계로 줄이는 것으로 만족해야만 했다. 내가 원했던 것은 한 단계로 끝나는 것이었는데 거기에 이르진 못했다. 그걸 하려면 누군가 만들어 둔 플러그인이 아니라 내가 직접 소스코드를 손봐야 한다. 요즘은 이런 간단한 개발은 AI를 이용해서 쉽게 할 수 있는 방법을 찾으려면 찾을 수도 있겠지만…블로그에 그렇게까지 시간을 투자하기 싫어서 그만 뒀다. 무엇보다 내 시간이 가장 소중하다..^^

내가 선택한 댓글 플러그인을 둘러보다 보니 다른 SNS 사용자 정보를 이용해서 댓글을 달 수 있는 기능을 제공하고 있었다. 워낙 오래 사용해서 페이스북 정도만이라도 가능하도록 해볼까 하고 시도하다가 바로 그만뒀다. 댓글을 쓰는 사람 자체가 거의 없는데 굳이…라는 생각이 들었고 이 설정을 하려면 페이스북에서 요구하는 항목들이 꽤나 번거로웠기 때문이다. 역시 굳이..ㅋ

그래서 그냥 익명으로도 댓글을 달 수 있게만 하고 글 중간에도 이런 식으로 댓글을 바로 달 수 있는 기능(아무도 사용하지 않겠지만 내가 재밌으니ㅋ)만 세팅하고 끝냈다. 이렇게 하면 스팸댓글이 엄청나게 들어올 수도 있겠지만 그거야 그때 상황을 봐서 또 대책을 세우면 되지 않을까 하는 순진한 생각. 상대는 AI를 이용해서 자동화된 시스템으로 공격이 들어오는데 순진하게 인간적으로 생각하고 있는 나.

국제도서관

서식지에 새로 도서관이 개관해서 잠시 들렀었다. 이렇게 사진찍고 보긴 좋지만 이런 인테리어가 얼마나 실용적일지는…세련된 인테리어와 잘 디자인된 편의 공간들 속 북적대는 사람들, 거기서 비치된 책의 품질을 체크하고 있는 나란 사람…ㅋ 아직 양이나 질 모두 다 부족하다.