설계는 내가 했지만 결과물은 AI가 만들었습니다
- 공유 링크 만들기
- X
- 이메일
- 기타 앱

개발자 게시판을 넘기다가 홍보글 네 개를 연달아 봤습니다. 오목 게임 앱 하나, 테슬라 충전소 위치를 찾아주는 웹앱 하나, 캐릭터 관련 페이지 하나, 그리고 CMS 구축 서비스 하나였습니다.
넘기고 나니 좀 피곤했습니다. 그런데 왜 피곤한지는 한동안 잘 몰랐습니다.
저 넷 중에 만들면 안 되는 건 하나도 없습니다. 오목 앱을 만들었으면 좋은 거고, 15×15 보드에 난이도 열 단계를 붙이고 친구 초대 코드까지 넣었으면 실제로 손이 많이 간 겁니다. 충전소 검색 웹앱도 아마 만든 사람이 진짜 불편했던 데서 시작했을 겁니다. 충전소마다 사업자가 다르고 앱이 따로 노니까 한 화면에서 보고 싶었겠죠. AI를 써서 만들었다는 것도 문제가 아닙니다. 저도 씁니다. 지금 이 블로그가 그렇게 돌아갑니다.
그러니까 피곤했던 건 AI로 만들었다는 것 때문은 아니었습니다. 만든 걸 뭐라고 부르느냐가 걸렸던 것 같습니다. CMS 쪽 글에 이런 문장이 있었습니다.
10년도 이상 웹개발로 쌓은 AI 기술로 웹사이트를 현대화시켰습니다
이 문장을 몇 번 다시 읽었는데 읽을 때마다 앞이랑 뒤가 안 붙었습니다. 말이 틀린 건 아닌 것 같은데 뭔가 하나가 빠져 있는 느낌이었습니다.
제일 이상하게 들렸던 건 「쌓은 AI 기술」이라는 부분이었습니다. 10년 동안 웹개발을 했으면 쌓인 건 웹개발 쪽 감각일 텐데, 문장 안에서는 그게 어느새 AI 기술로 바뀌어 있습니다. 10년 전에는 지금 같은 AI 도구가 없었으니 그 기술을 10년 동안 쌓았을 리는 없습니다. 쓴 사람도 아마 그걸 모르고 쓰진 않았을 것 같습니다. 그냥 두 말을 하나로 묶고 싶었던 거겠죠. 그 묶는 손길이 문장에 그대로 남아 있어서 앞뒤가 안 붙는다는 느낌이 들었던 것 같습니다.
붙지 않는 문장
한 문장 안에 서로 다른 게 두 개 들어 있습니다. 앞은 10년 경력이고 뒤는 그 결과로 나온 물건입니다. 문장은 이 둘을 그냥 나란히 붙여둡니다. 10년이 있었으니까 이게 나왔다는 느낌을 줍니다.
그런데 뒤쪽은 앞쪽이 없어도 나옵니다. CMS 관리자 화면, 에디터, 템플릿 몇 벌, 반응형 레이아웃, 다크 모드, 로그인, 권한 드롭다운. 이건 10년 경력이 있어야 나오는 게 아닙니다. 요구사항을 몇 문장으로 적어서 넣으면 나옵니다. 경력 3개월인 사람이 넣어도 비슷하게 나옵니다.
그러면 저 문장은 붙일 근거가 없는 두 개를 붙인 겁니다. 앞의 경력은 확인할 수가 없고 뒤의 물건은 경력을 증명하지 못합니다. 그런데 나란히 놓으면 읽는 사람 머릿속에서는 앞 때문에 뒤가 나온 것처럼 이어집니다.
만약 같은 내용을 두 문장으로 나눠서 적었다면 어땠을까 싶습니다. 「저는 웹개발을 10년 했습니다. 이번에 AI로 이 사이트를 새로 만들었습니다.」 이렇게요. 담긴 정보는 거의 같은데 읽는 느낌은 꽤 다를 것 같습니다. 두 문장 사이에 빈칸이 생기고, 읽는 사람은 그 빈칸을 스스로 채울지 말지 고를 수 있습니다. 10년이 이번 결과물에 얼마나 들어갔는지는 읽는 사람이 판단하게 됩니다. 한 문장으로 붙이면 그 판단을 쓴 사람이 먼저 해버립니다. 홍보글이니까 당연히 그렇게 쓰고 싶었을 거라는 건 이해가 됩니다. 저라도 홍보글을 쓴다면 붙이고 싶었을 것 같습니다. 그래서 더 찜찜했는지도 모르겠습니다.
네 개 중에 CMS가 제일 걸린 것도 우연은 아닌 것 같았습니다. CMS는 이미 답이 나와 있는 문제입니다. 20년 넘게 사람들이 만들어왔고, 관리자 화면이 어떻게 생겨야 하는지, 글과 카테고리와 태그가 어떤 관계인지, 미디어 라이브러리가 어디 붙는지가 거의 정해져 있습니다. AI는 답이 이미 있는 문제에서 제일 강합니다. 배울 게 많았던 쪽이니까요. 그래서 CMS를 만들어달라고 하면 놀랄 만큼 그럴듯한 게 나옵니다. 화면만 보면 상용 제품이랑 구분이 안 됩니다.
문제는 구분이 안 되는 게 화면까지라는 겁니다. 화면 뒤에서 무슨 일이 일어나는지는 그 화면을 몇 달 써봐야 보이는데, 홍보글은 대개 화면이 나온 날 올라옵니다.
생각해보면 그럴 수밖에 없는 것 같기도 합니다. 화면이 처음 나온 날이 만든 사람이 제일 신나는 날이니까요. 그날 올리고 싶은 마음은 저도 압니다. 몇 달 써보고 나서 올리자고 마음먹으면, 그 몇 달 사이에 신나는 마음은 다 빠지고 고칠 것 목록만 남습니다. 그 상태에서는 홍보글을 쓸 기분이 잘 안 날 겁니다. 그래서 게시판에 올라오는 글은 대부분 제일 신나는 날에 쓰인 글이고, 그날은 하필 아직 아무것도 안 겪어본 날입니다.
화면 뒤에 있는 것들
CMS가 정말 어려운 건 만들 때가 아니라 실제로 운영할 때 나옵니다. 그리고 그건 화면에 안 보입니다.
권한이 그렇습니다. 편집자랑 작성자랑 관리자를 나누는 건 드롭다운 하나면 되는데, 이 사람은 자기가 쓴 글만 고칠 수 있고 발행은 못 하고 남의 초안은 볼 수 있는데 카테고리는 못 만든다, 같은 조합이 실제 조직에서는 나옵니다. 그리고 그게 계속 늘어납니다. 드롭다운은 그대로인데 뒤에서 분기가 계속 붙습니다.
두 사람이 같은 글을 열어놓고 한 명이 저장하면 어떻게 돼야 하는지도 있습니다. 나중에 저장한 쪽이 이기게 두면 앞사람 작업이 날아가고, 막아두면 브라우저를 닫고 간 사람 때문에 글이 잠깁니다. 어느 쪽을 골라도 누군가는 항의하러 옵니다.
제가 저 CMS를 산 회사 담당자라고 생각해보면 이게 제일 먼저 걸릴 것 같습니다. 데모 때는 혼자 써보니까 동시 편집이라는 상황 자체가 안 생깁니다. 계약하고 팀원 다섯 명이 같이 쓰기 시작한 다음 주쯤에 처음 생깁니다. 그때 물어볼 사람은 만든 사람인데, 만든 사람도 그 상황을 처음 보는 거라면 둘이 같이 처음 겪는 셈이 됩니다. 그러면 그건 산 게 아니라 같이 만들기 시작한 것에 가깝습니다. 그것 자체가 나쁘다고는 생각하지 않습니다. 다만 홍보 문장에서는 그 얘기가 하나도 안 보이니까, 산 쪽은 다 된 물건을 샀다고 생각하고 있을 겁니다.
스키마를 바꿔야 하는데 글이 이미 4,000개 쌓여 있고 그중 일부는 예전 에디터로 써서 형식이 다른 경우도 있습니다. 그 일부가 몇 개인지는 돌려보기 전에는 모릅니다. 글을 고쳤는데 목록에는 옛날 제목이 남아 있는 캐시 문제도 있고, 글을 지우면 이미지도 지워야 하는지, 다른 글이 같은 이미지를 쓰고 있으면 어떻게 하는지, 3년 전 첨부는 계속 들고 있어야 하는지 같은 것도 있습니다.
이것들은 답이 기술에 있지 않다는 게 공통점인 것 같습니다. 저 권한 조합은 그 회사 조직도에서 나오고, 동시 편집을 어떻게 할지는 그 팀이 어떻게 일하는지에서 나옵니다. AI한테 물으면 일반적인 답은 줍니다. 그런데 그게 이 조직에 맞는지는 안 알려줍니다. 물어볼 사람이 조직 안에 있어야 알 수 있고, 대개는 몇 번 틀리고 나서야 알게 됩니다.
바이브 코딩이 실제로 걸리는 게 여기라고 봅니다. 안 되는 게 아니라 80%에서 멈춥니다. 그 80%가 하필 눈에 보이는 쪽 전부라서 멈췄다는 게 화면으로는 티가 안 납니다. 데모에서도 하나도 안 나옵니다. 데모는 글 하나 쓰고 이미지 하나 올리고 발행 눌러보는 걸로 끝나니까요. 그런데 실제 비용은 저기서 다 나오고, 남은 20%가 전체 일정의 절반을 먹는 건 별일이 아니라 거의 늘 그렇습니다.
그래서 CMS는 데모랑 제품 사이가 특히 먼 분야고, 그래서 딸깍의 성과가 제일 커 보이는 분야이기도 한 것 같습니다. 화면은 다 돼 보이는데 위에 적은 건 하나도 안 건드려져 있으니까요. 홍보 문구는 그걸 현대화시켰다고 부릅니다. 이미 있던 답을 다시 만들어서 화면까지 온 걸요.
현대화라는 말도 생각해볼수록 좀 묘합니다. 원래 현대화는 오래된 시스템을 지금 방식으로 바꾸는 일이고, 그 일이 어려운 이유는 오래된 시스템 안에 쌓인 사정을 하나도 잃지 않고 새 방식으로 가져와야 하기 때문입니다. 그런데 새로 만든 화면에는 그 사정이 아예 없습니다. 없던 걸 옮길 필요는 없으니 빨리 끝납니다. 빨리 끝난 이유가 어려운 부분을 건너뛰어서라는 건 현대화라는 단어 안에서는 잘 안 보입니다. 단어는 제일 어려운 일을 가리키는데 실제로 한 건 제일 쉬운 일인 셈입니다.
80%가 빨리 나오는 이유
조금 더 생각해보니, 80%가 빨리 나오는 이유랑 그게 남의 것과 구분이 안 되는 이유가 같았습니다.
손으로 만든 코드에는 그 사람만의 이상한 결정이 쌓입니다. 여기서는 이 라이브러리를 안 쓰기로 했고, 저기서는 성능 때문에 캐시를 한 겹 더 넣었고, 이 함수는 예전 데이터 때문에 분기가 세 개고. 그런 결정은 그 사람이 겪은 사정에서 나옵니다. 방금 적은 20%가 딱 그 사정입니다.
AI가 만든 코드는 반대로 제일 표준적인 답 쪽으로 갑니다. 그게 잘 만드는 방식이기도 하고요. 같은 요구를 넣으면 비슷한 구조, 비슷한 폴더 배치, 비슷한 이름이 나옵니다. 이상한 결정이 없습니다. 이상한 사정을 아직 안 겪었으니까요.
그래서 80%는 빨리 나오고 남이 따라 하기도 쉽습니다. 게시판에서 본 사이트들은 하루면 초안이 나오고 일주일이면 클론이 됩니다. 깎아내리려는 게 아니라 그냥 걸리는 시간이 그렇다는 겁니다. 그게 만든 사람 잘못도 아닙니다. AI한테 잘 만들어달라고 하면 표준적으로 만들어줍니다. 그게 좋은 코드니까요. 이상하게 만들어달라고 할 이유가 없습니다.
이상한 결정을 AI한테 미리 알려주면 되지 않느냐는 생각도 잠깐 들었습니다. 우리 조직은 이런 권한 구조고, 예전 데이터는 이런 형식이 섞여 있다고 적어서 넣으면 AI도 그 사정에 맞춰 만들어줄 겁니다. 아마 꽤 잘 맞춰줄 겁니다. 그런데 문제는 그 사정을 적을 수 있으려면 이미 한 번 겪었어야 한다는 겁니다. 처음 만드는 사람은 무엇을 적어야 하는지부터 모릅니다. 아는 사람은 적어서 넣으면 되고 모르는 사람은 적을 게 없으니, 결국 처음 만드는 사람한테는 표준적인 답만 남습니다. 도구가 같아도 손에 쥐고 있는 사정이 다르면 결과물이 다르게 나오는 건데, 그 차이는 화면에서는 안 보입니다.
걸리는 건 그걸 들고 나올 때 뭐라고 하느냐입니다. AI로 이런 걸 만들어봤다는 거랑 제가 이런 걸 만들었다는 건 같은 파일을 가리키면서 전혀 다른 말을 합니다. 앞은 확인할 수 있는 얘기고 뒤는 확인할 수 없는 얘기입니다. 앞처럼 적혀 있으면 읽는 사람도 편합니다. 결과물만 보고 쓸 만한지만 보면 되니까요. 뒤처럼 적혀 있으면 결과물 말고 사람까지 같이 판단해야 하는데 그럴 근거가 글 안에 없습니다. 그게 피곤합니다.
게시판을 넘기면서 피곤했던 게 결국 이거였던 것 같습니다. 결과물이 나빠서가 아니라 80%짜리를 100%라고 부르는 문장을 연달아 읽어서요. 남은 20%가 뭔지는 안 적힌 채로요.
아직 안 만난 것
이런 홍보 문장은 그 일을 오래 한 사람 쪽에서는 잘 안 나오는 것 같습니다. 여러 번 만들어본 사람은 자기 결과물을 봐도 별로 안 놀랍니다. 관리자 화면이 그럴듯하게 나왔다고 그게 뭘 증명한다고 생각하지 않습니다. 원래 그렇게 나오는 걸 아니까요. 그리고 그 사람은 남은 20%를 이미 여러 번 맞아봤습니다. 권한 조합이 조직에서 어떻게 불어나는지, 마이그레이션이 왜 하루 만에 안 끝나는지를 겪어서 압니다. 그러니 화면이 나온 때를 완성이라고 안 부릅니다.
처음 만들어본 사람한테는 화면이 나온 때가 완성입니다. 과장하려는 게 아니라 정말 그렇게 보이는 겁니다. 20%는 아직 안 만났으니까요. 아직 안 만난 건 없는 거랑 구분이 안 됩니다. 화면이 돌아가고 로그인이 되고 글이 저장되는 걸 처음 봤으면 다 된 걸로 보이는 게 당연하고, 그 순간의 기분도 진짜일 겁니다.
그래서 이건 사람이 어떻다는 얘기라기보다 20%를 만나봤느냐 아니냐에 가까운 얘기라고 생각합니다. 그래도 결과는 남습니다. 읽는 쪽에는 피로가 쌓이고, 그 피로는 정직하게 만든 사람한테도 똑같이 갑니다. 충전소 앱을 진짜 불편해서 만든 사람도 홍보글 무더기 사이에 끼면 구별이 안 됩니다. 저는 그게 제일 아깝습니다. 진짜 필요해서 만든 물건이 자랑 섞인 문장들 사이에 묻혀서 같이 넘겨지는 거니까요. 저도 그날 네 개를 다 같은 속도로 넘겼습니다. 그중에 하나는 정말 누군가 불편해서 만든 거였을 수도 있는데요.
읽는 쪽에서 그걸 구별할 방법이 있었을까 생각해보면 딱히 없었던 것 같습니다. 써보는 수밖에 없는데 홍보글 네 개를 다 써볼 시간은 없습니다. 그러니 문장을 보고 고르게 되고, 문장이 다 비슷하게 크면 고를 근거가 사라집니다. 결국 넘기게 됩니다. 저는 그 넘기는 손이 제 손이었다는 게 좀 불편했습니다. 피곤하다고 느낀 것도 어쩌면 그 불편함이 섞여서였을지 모르겠습니다.
제 쪽은
이렇게 쓰고 나면 저한테도 같은 걸 물어봐야 할 것 같습니다.
이 블로그는 자동화 하네스 위에서 돌아갑니다. 역할이 나뉜 에이전트가 여섯 개, 단계별 스킬이 스무 개, 세션 시작이랑 종료랑 커밋 직전에 걸리는 훅이 세 개 있습니다. 주제를 정하고, 조사하고, 쓰고, 다듬고, 문체를 보고, Blogger API로 올리는 것까지 이어집니다. 커밋 직전에는 시크릿이 섞여 들어갔는지도 봅니다. 이렇게 적어놓으면 그럴듯합니다. 그런데 저는 이걸 어디에도 자랑하지 않습니다.
이것도 80%라서 그렇습니다. 그리고 저는 제 20%가 어딘지 압니다. 문체입니다. 발행은 자동인데 글이 사람 글로 읽히느냐는 자동이 아니고, 그 판단을 코드로 옮기려다 실패한 적도 있습니다. 같은 걸 하려는 사람이 같은 도구로 시작하면 며칠이면 비슷한 데까지 옵니다. 에이전트를 역할별로 나누고, 단계마다 파일로 넘기고, 발행을 스크립트로 빼는 건 이 문제를 풀려는 사람이면 대체로 도달하는 답입니다. 제가 발명한 게 아닙니다. 같은 문제를 받으면 누구라도 비슷하게 나눴을 거고, 저도 결국 그 답을 따라간 쪽에 가깝습니다. 그러니 이걸 내세울 이유가 별로 없습니다. 게시판에서 본 것들은 이것보다도 빨리 나옵니다. 제 것도 이미 자랑할 만한 게 아닌데 그보다 더 빨리 나오는 걸 완성이라고 부르고 있으니 피곤했던 것 같습니다.
설계는 제가 했습니다. 어떤 단계로 나눌지, 뭘 게이트로 둘지, 어디서 사람이 끼어들지는 제가 정했습니다. 그런데 결과물은 AI가 만들었습니다. 파일도, 문서도, 스크립트도 그렇습니다.
자랑이라는 건 거의 늘 결과물을 가리킵니다. 스크린샷을 올리고, 파일 개수를 세고, 며칠 만에 나왔다고 씁니다. 그런데 그 결과물이 딱 제가 안 한 부분입니다. 제가 한 건 설계랑 판단인데 그건 보여주기가 어렵습니다. 화면도 없고 스크린샷도 안 됩니다. 이 단계를 빼기로 했다는 문장은 눈으로 보면 아무것도 아닙니다. 그래서 다들 그건 안 내놓고 결과물 화면을 올리는 것 같습니다. 그게 제일 잘 보이니까요.
게이트를 뺀 결정만 해도 그렇습니다. 코드로 보면 몇 줄 지운 게 전부입니다. 커밋 기록에는 줄이 줄었다고만 남고, 왜 줄였는지는 커밋 메시지 한 줄에 겨우 들어갑니다. 그 한 줄을 쓰기까지 걸린 시간은 어디에도 안 남습니다. 지운 걸 자랑할 방법이 없다는 게 좀 우습기도 합니다. 그런데 돌아보면 이 하네스에서 제일 잘한 결정은 대부분 뭔가를 지운 결정이었던 것 같습니다. 게이트를 뺀 것도 그랬고 넉 달치 글을 내린 것도 그랬습니다. 둘 다 결과물이 줄어든 쪽이라 남한테 보여줄 게 하나도 없는 결정이었습니다.
결과물이 얼마나 많으냐도 이제는 별 의미가 없습니다. 문서 스무 장이든 파일 백 개든 며칠이면 나옵니다. 예전에는 양이 들인 시간의 영수증 같은 거였는데 지금은 아닌 것 같습니다. 영수증이 아닌데 아직 영수증처럼 내밀고 있는 거라, 받는 쪽도 그걸 어떻게 읽어야 할지 모르는 상태인 것 같습니다.
그러면 뭐가 새 영수증이 될 수 있을까도 생각해봤는데 딱 떠오르는 게 없습니다. 얼마나 오래 돌려봤는지 정도가 그나마 가까울 것 같습니다. 만든 날이 아니라 써본 기간이요. 화면은 하루면 나와도 석 달 돌려본 기록은 석 달이 지나야 생기니까요. 그런데 그건 또 홍보하기에는 너무 느립니다. 석 달 뒤에 올리는 홍보글을 누가 쓸까 싶기도 하고요. 결국 사람들이 영수증처럼 쓸 수 있는 건 빨리 나오는 것뿐이고, 빨리 나오는 건 더 이상 영수증 노릇을 못 한다는 데서 생각이 맴돕니다.
틀렸던 것들
제가 한 것 중에 그나마 남이 따라 할 수 없는 걸 찾아보면 전부 남은 20%에서 틀렸던 것들이었습니다.
한 번은 발행 스크립트에 문체 검사 게이트를 넣었습니다. AI 티가 나는 글을 자동으로 막으려고요. 검사 결과 파일에 판정: 합격이라는 문자열이 있으면 통과시키고 없으면 발행을 멈추게 했습니다. 코드로 막아뒀으니 안전하다고 생각했습니다. 한참 뒤에 알았는데 그 문자열을 검사받는 에이전트가 직접 쓰고 있었습니다. 검문소랑 통행증 발급처가 같았던 겁니다. 게이트가 있는 동안 한 번도 막힌 적이 없었는데 글이 다 좋아서가 아니라 그렇게 생겨먹어서였습니다. 그래서 게이트를 뺐고 지금은 판정 라벨 대신 줄 단위 수정 내역만 남깁니다.
또 한 번은 글을 한꺼번에 지웠습니다. 4월과 5월에 나흘 동안 35편을 몰아서 올린 적이 있는데, 나중에 발행 시각을 뽑아보니 열 편이 5분 만에 올라간 날도 있었습니다. 그 글들은 길이도 짧았고 이미지도 내부 링크도 하나도 없었습니다. 애드센스는 가치가 별로 없는 콘텐츠라고 했습니다. 7월 말에 그중 32편을 내렸습니다. 넉 달치를 지운 건데 지우고 나니까 남은 글의 길이가 두 배 넘게 올라갔습니다.
둘 다 만들 때는 안 보였고 실제로 몇 달 돌려보고 나서야 보였습니다. 남이 따라 할 수도 없습니다. 남의 실패는 베껴도 자기 것이 안 되니까요. 게이트가 자기 자신을 검사하고 있었다는 걸 알려면 그 게이트를 몇 달 써봐야 합니다. AI한테 물어봐도 안 나옵니다. 물어볼 질문 자체가 써보기 전에는 안 떠오르니까요.
이게 좀 이상한 지점인데, AI는 질문만 주면 웬만한 건 답을 줍니다. 그러니까 막히는 건 답 쪽이 아니라 질문 쪽입니다. 게이트가 자기 자신을 검사하고 있지 않느냐는 질문을 처음부터 할 수 있었다면 아마 바로 답이 나왔을 겁니다. 그 질문을 못 한 게 문제였습니다. 질문은 겪어야 생기고, 겪는 데는 시간이 듭니다. AI가 줄여주는 건 질문 다음부터의 시간이라, 질문이 생기기 전까지의 시간은 예전이랑 비슷하게 남아 있는 것 같습니다.
그렇다고 이게 자랑거리라는 건 아닙니다. 그냥 기록입니다. 틀린 걸 틀렸다고 적어두는 정도입니다. 사이드 프로젝트 네 개를 AI랑 넉 달 했을 때도 네 번 다 같은 데서 발이 멈췄고, 거기는 제가 AI에 안 적어 준 제약이 쌓인 곳이었습니다. 그때도 남은 건 만든 목록이 아니라 막힌 곳 목록이었습니다.
README 첫 줄
개인적으로 하는 게임 프로젝트가 하나 더 있습니다. 방치형 전략 RPG인데 규모만 보면 이 블로그 하네스보다 훨씬 큽니다. 에이전트가 스물한 개, 스킬이 일흔두 개, 훅이 열두 개 붙어 있고, 기획서가 서른두 개에 커밋은 이백 개를 넘겼습니다. 전투 엔진이랑 가챠랑 시즌패스랑 출석 보상이 각각 폴더로 나뉘어 있고 화면만 스물세 개입니다.
이렇게 적으니 또 그럴듯합니다. 앞에서 CMS 홍보 문구를 두고 한 말이 그대로 저한테 돌아옵니다.
그런데 이 프로젝트 README 첫 줄에 이렇게 적어놨습니다.
탑히어로즈 클론 프로젝트
겸손해 보이려고 쓴 게 아니라 그게 사실이라서 썼습니다. 방치형 RPG 구조는 이미 정해져 있습니다. 영웅을 모으고, 장비를 붙이고, 자동 전투를 돌리고, 출석이랑 일일 퀘스트로 붙잡아두는 게 그 장르의 문법입니다. 제가 만든 게 아니라 잘 만든 게임을 보고 구조를 따라간 겁니다. 그러니 저 숫자들은 자랑할 숫자가 아닙니다. 답이 이미 나와 있는 장르라서 그만큼 빨리 쌓인 겁니다.
README에 클론이라고 적고 나니 마음이 좀 편해진 것도 있습니다. 적어두지 않았다면 저도 언젠가 저 숫자들을 꺼내서 뭔가를 말하고 싶어졌을 것 같습니다. 에이전트가 스물한 개라는 말은 듣기에 꽤 그럴듯하니까요. 첫 줄에 클론이라고 적혀 있으면 그 숫자를 꺼낼 때마다 그 줄이 같이 따라 나옵니다. 스스로 과장하지 못하게 막아둔 장치 같은 거라고 지금은 생각합니다. 그게 의도였는지는 저도 잘 모르겠습니다. 쓸 때는 그냥 사실이라 쓴 거였으니까요.
그쪽 20%가 뭔지도 압니다. 밸런스입니다. 화면 스물세 개는 나왔는데 3일 차 이탈을 막는 성장 곡선이 몇인지는 아무도 안 알려줍니다. 그건 사람이 며칠 붙어서 해보고 숫자를 만져봐야 나옵니다. 그 프로젝트는 지금 딱 거기서 서 있습니다. 화면을 하나 더 만드는 건 금방인데 숫자 하나를 정하는 데는 며칠이 걸리고, 그 며칠은 AI가 줄여주지 못합니다. 결국 저도 20% 앞에서 멈춰 있는 사람이라는 걸 그 프로젝트를 볼 때마다 다시 느낍니다.
밸런스도 AI한테 맡기면 되지 않을까 싶은 마음이 없지는 않습니다. 가상의 플레이어를 만들어서 몇천 번 돌려보게 하고 곡선을 뽑아달라고 하면 뭔가는 나올 것 같습니다. 만약 그렇게 한다면 아마 숫자는 그럴듯하게 나올 겁니다. 그런데 그 숫자가 사람이 3일째 되는 날 질리느냐 아니냐를 맞힐지는 잘 모르겠습니다. 질리는 건 숫자보다는 기분 쪽 일이라서요. 기분을 시뮬레이션으로 재는 게 될지 안 될지는 제가 아직 판단을 못 하겠습니다. 다만 그게 된다고 해도 그건 또 다른 80%가 될 것 같다는 느낌은 듭니다. 곡선은 나오는데 그 곡선이 맞는지는 결국 사람이 해봐야 아는 거니까요.
다들 아는 얘기
이건 저 혼자 하는 생각도 아닙니다. 회사에서도 주변 개발자들 사이에서도 이 얘기는 벌써 나와 있습니다. 요즘은 AI로 웬만한 건 쉽게 만든다는 걸 다들 압니다. 그래서 누가 뭘 만들었다고 하면 예전만큼 안 놀랍니다. 놀라움이 빠지고 대신 들어온 게 고민입니다. 남들과 다른 걸 어떻게 만들어야 하나.
게시판 홍보글이 거슬리는 건 겉이고 그 밑에 이 질문이 깔려 있는 것 같습니다. 화면까지 만드는 게 더 이상 아무것도 구별해주지 않으면 뭘로 구별되나.
비개발자들이 만드는 걸 보면 대부분 누가 이미 만들어놓은 서비스입니다. 할 일 관리 앱, 가계부, 예약 페이지, 커뮤니티, CMS. 상상력이 모자라서가 아니라 AI한테 물어보면 잘 나오는 게 딱 그런 것들이라서인 것 같습니다. 세상에 이미 많아서 잘 나오고, 잘 나오니까 그걸 만들게 됩니다. 도구가 답이 있는 쪽으로 사람을 데려갑니다. 비개발자만 그런 것도 아닙니다. 저도 방치형 RPG 문법을 따라갔으니 잘 나오는 쪽으로 간 건 같습니다.
특별함이 어디서 나오는지를 요즘 계속 생각하는데 아직 정리가 안 됐습니다. 무엇을 만들지 고르는 쪽에 있을 것 같기도 합니다. 만드는 건 흔해졌는데 뭘 만들지 고르는 건 아직 안 흔합니다. 충전소 앱을 만든 사람이 진짜 불편해서 만든 거라면, 그 불편을 알아챈 것까지는 그 사람 몫입니다. 만든 건 AI가 했어도요. 잘 나오는 쪽으로 끌려가지만 않으면 그건 아직 사람이 하는 일 같습니다.
불편을 알아채는 건 그 사람이 어디서 무엇을 하며 사느냐에 달린 일이라 AI가 대신하기 어려워 보입니다. 충전소 앱이라면 전기차를 몰면서 충전소 앱 서너 개를 번갈아 켜본 사람이어야 그 불편이 보였을 겁니다. 그 불편은 검색해서 나오는 게 아니라 생활에서 나오는 거니까요. 만약 그 사람이 홍보글에 그 얘기를 먼저 적었다면, 앱이 어떻게 생겼는지보다 그 사람이 왜 만들었는지가 먼저 보였을 겁니다. 그랬다면 저도 그 글 하나는 다른 속도로 읽었을 것 같습니다.
남은 20%에 있을 것 같기도 합니다. 게이트 일이나 32편을 내린 일처럼 만들 때는 안 나오고 오래 돌려봐야 나오는 것들이요. 그런데 이건 시간이 걸려서 만든 다음 날 자랑할 수 있는 종류가 아닙니다. 아마 그래서 아무도 이걸 들고 나오지 않는 것 같습니다. 자랑하고 싶을 때랑 20%가 나오는 때가 처음부터 안 맞습니다. 만든 직후에는 할 말이 많고 실제로 할 만한 말은 한참 뒤에 생깁니다.
어쩌면 특별함을 결과물에서 찾는 것부터가 틀린 걸 수도 있겠습니다. 만드는 비용이 0에 가까워지면 만든 물건으로 구별되길 바라는 게 무리일 수도 있으니까요. 그런데 그러면 뭐가 남는지는 아직 모르겠습니다. 이건 조금 더 봐야 할 것 같습니다.
하나 떠오르는 건 만들지 않기로 하는 것도 고르는 일에 들어간다는 겁니다. 만드는 비용이 거의 안 드니까 기능을 계속 붙이게 됩니다. 붙이는 게 너무 쉬워서 뺄 이유가 잘 안 보입니다. 제 게임 프로젝트에 화면이 스물세 개나 된 것도 아마 그래서일 겁니다. 하나 더 만드는 게 하루도 안 걸리니까 만들었습니다. 그중에 정말 있어야 하는 게 몇 개인지는 저도 자신 있게 말하지 못합니다. 만약 특별함이라는 게 어딘가 남아 있다면 덜 만든 쪽에 있을지도 모르겠다는 생각이 듭니다. 근데 이건 그냥 떠오른 생각이고 제가 그렇게 하고 있지도 않아서 더 밀어붙이기는 어렵습니다.
포장이 두꺼워지는 것
이상한 게 하나 더 보입니다. 만들기가 쉬워졌으면 자랑이 줄어야 할 것 같은데 실제로는 늘었습니다. 쉬워진 만큼 다들 화면까지는 오게 됐고, 그러니 화면만 봐서는 누구 게 나은지 모르니까 문장으로 구별하려고 하는 것 같습니다. 10년 경력이나 철저한 QA 프로세스 같은 말이 거기 들어갑니다.
좀 얄궂은 게 저 두 말이 가리키는 게 딱 남은 20%라는 겁니다. 오래 해본 사람이 아는 것도 그거고 QA가 실제로 잡는 것도 그겁니다. 20%를 안 한 상태에서 20%를 했다고 말하는 데 저 말들이 쓰이고 있습니다. 제일 없는 걸 제일 크게 적는 겁니다. 그래서 포장이 두꺼워지는 건 만든 사람이 특별히 부정직해서라기보다 화면이 더 이상 아무 말도 안 해주기 때문인 것 같습니다. 화면이 말을 안 하니까 말로 채우는 거죠.
만약 저 CMS 글이 「AI로 관리자 화면까지 만들어봤습니다. 권한이나 마이그레이션은 아직 안 해봤습니다」라고 적혀 있었다면 저는 아마 끝까지 읽었을 것 같습니다. 오히려 궁금해서 눌러봤을 수도 있습니다. 그런데 그런 글은 홍보로는 약해 보입니다. 사겠다는 사람이 줄어들 테니까요. 그러니까 정직하게 쓰면 손해를 보는 구조라는 건데, 그걸 개인한테 정직하게 쓰라고 말하기도 좀 어렵습니다. 게시판에 그런 글이 몇 개만 섞여 있어도 피로가 꽤 덜할 것 같은데, 그 몇 개를 누가 먼저 쓸지는 잘 모르겠습니다.
유튜브가 약관에서 단어 하나를 바꾼 일이랑도 겹쳐 보였습니다. 플랫폼이 AI 양산 콘텐츠를 막으려고 할 때 실제로 보려던 것도 도구가 아니라 의도였습니다. 도구는 가려낼 수도 없고 가려낼 필요도 없습니다.
제 쪽도 세어보면 제 커밋의 92%가 남의 데이터센터 위에 있습니다. 저도 이 문제 밖에 서 있는 사람이 아니고 안에 있으면서 쓰는 겁니다.
자랑을 안 하기로 한 게 무슨 결심 같은 건 아닙니다. 그냥 세어보면 제가 만든 것도 대부분 화면까지고 그 뒤는 아직 안 갔습니다. 게임 프로젝트 README 첫 줄에 클론이라고 적어둔 것도 그래서입니다. 그렇게 적어두면 적어도 제가 어디까지 왔는지는 분명하게 남습니다. 남은 20%는 아직 못 했지만 안 한 걸 했다고 적지 않는 정도는 지금도 할 수 있습니다.
그다음은 좀 더 해봐야 알 것 같습니다.
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기