[00:00]
안녕하세요, 신택스입니다. 오늘은
[00:02]
바이브 코딩에 대해 이야기해보려고 합니다. 듣기 전에
[00:05]
바이브 코딩이 짜증난다고 꺼버리지 마시고
[00:07]
우리가 하려는 것이 무엇인지 솔직히 말씀드리겠습니다.
[00:10]
우리가 할 이야기는
[00:11]
AI를 사용해서
[00:12]
무작위로 여러 가지를 만들어보는 것입니다.
[00:15]
결과물이 그럭저럭 괜찮을 수도 있지만
[00:19]
그게 크게 중요하지는 않습니다.
[00:22]
무엇인지, 그리고 우리가 이걸 해야 하는지
[00:24]
이야기해볼 겁니다.
[00:26]
그리고 우리가 바이브 코딩으로 만든 것들의
[00:29]
예시도 보여드리죠.
[00:30]
다른 사람들은 이걸
[00:33]
개인용 소프트웨어라고도 부르는데
[00:35]
이런 용어가 적절할 것 같네요.
[00:37]
일회용 소프트웨어라고도 하는데
[00:40]
최근에 제가 만든 것들이
[00:42]
딱 한 번만 빨리 필요한 것들이었거든요.
[00:44]
목적을 달성하면
[00:47]
바로 버려지는 그런 것들이죠.
[00:50]
재미있는 말씀을 하셨는데
[00:53]
개인용 소프트웨어라는 게
[00:55]
많은 사람들과 연관이 있다고 생각합니다.
[00:58]
특히 이건
[01:00]
더 책임감 있는 개발자들에게
[01:02]
더 많이 해당되는 것 같아요.
[01:05]
이게 가장 적절한 표현일 것 같네요.
[01:07]
제가 바이브 코딩에서 발견한 건
[01:11]
주로 경험이 부족한 사람들이 많이 하고 있다는 거예요.
[01:14]
그들이 이걸로 생산성을 내고 있긴 하지만
[01:18]
이것 없이는 생산적이지 못합니다.
[01:21]
기본 지식이 부족하기 때문이죠.
[01:24]
이건 추측이지만
[01:26]
제가 경험한 바로는
[01:27]
소셜 미디어에서 보이는 현상입니다.
[01:29]
바이브 코딩이 처음 들어보시는 분들,
[01:32]
소셜 미디어를 하지 않으셔서
[01:34]
이런 이야기를 못 들어보신 분들을 위해
[01:36]
설명해드리자면
[01:38]
이건 기본적으로 프롬프트만 사용해서 코딩하는 겁니다.
[01:40]
커서나 CLA 코드 같은 시스템을 사용하는데
[01:43]
이런 AI 기반 시스템들은
[01:45]
많은 일을 대신해주고, 여러 파일을 만들고
[01:48]
프로젝트를 실행하고 연결해줍니다.
[01:50]
바이브 코딩의 핵심은
[01:53]
개발자가 코드를 깊이 들여다보지 않는다는 거예요.
[01:56]
세세한 부분에 신경 쓰지 않고
[01:58]
주로 실행해보고
[02:01]
작동하는지 확인하고
[02:03]
어떻게 작동하는지 보고
[02:05]
다시 프롬프트를 입력하고
[02:07]
수정하고 또 프롬프트를 입력하고
[02:10]
이걸 계속 반복하는 거죠.
[02:12]
원하는 결과가 나올 때까지요.
[02:14]
이건 AI 슬롭의 한 형태인데
[02:18]
실제로 이걸로 뭔가를 만들 수 있어요.
[02:20]
믿기 어려울 수도 있지만
[02:23]
깊이 파고들지 않더라도
[02:25]
놀랍게도 효과적일 수 있습니다.
[02:29]
하지만 결국 대충 만든 코드가 되고
[02:31]
제 생각에는
[02:33]
특정 프로젝트나 상황에서는
[02:35]
이런 방식이 더 적합할 수 있어요.
[02:36]
안타깝게도
[02:38]
경험이 부족한 개발자들은
[02:40]
그 경계를
[02:41]
이해하지 못할 수 있습니다.
[02:45]
맞아요. 저도 직접 해보면서
[02:47]
문제를 해결하려고 할 때
[02:50]
두세 번의 프롬프트를 시도하다가
[02:54]
다 버리고 처음부터 다시 시작해야 할 때가 있어요.
[02:57]
왜냐하면 점점 더
[02:59]
상황이 나빠지기만 하고
[03:01]
더 악화되기만 하거든요.
[03:03]
계속 더 나빠지기만 해서
[03:05]
하지만 전체적인
[03:07]
바이브 코딩의 핵심 아이디어는
[03:09]
굳이 신경 쓸 필요 없이
[03:12]
작동만 하면 된다는 거죠. 저는 중간 정도의 입장인데
[03:15]
놀랍게도
[03:18]
일부 결과물이 정말 괜찮더라고요
[03:19]
그리고 만들 수 있는 것들이 꽤 재미있어요
[03:23]
전에는 만들 수 없었을 것 같은 것들도
[03:26]
사람들이 게임을 만들고
[03:28]
iio는 비행기 관련 프로젝트를 만들고 있고
[03:31]
이런 식으로 전체 비행기를
[03:34]
원하는 대로 만들어내고 있죠
[03:36]
물론 이런 것들이
[03:39]
전문가들을 화나게 할 수 있습니다
[03:42]
하지만 이건 모든 산업에서
[03:44]
새로운 것이 등장해서
[03:46]
일을 쉽게 만들 때마다 일어나는 일이에요
[03:49]
전문가가 필요 없어지는 건 아니지만
[03:51]
초보자 수준의 허술한 버전을
[03:56]
매우 쉽게
[03:58]
만들 수 있게 되죠. 드래그 앤 드롭
[04:00]
웹사이트 빌더에서도 봤잖아요. 워드프레스
[04:03]
개발자들은 드림위버나 드래그 앤 드롭
[04:07]
또는 스퀘어스페이스 같은 것들을
[04:09]
정말 싫어했죠. 왜냐하면
[04:11]
출력되는 코드가 엉망이었으니까요
[04:14]
하지만 현실적으로 많은 사람들은
[04:16]
작동만 하면 상관없어 하고
[04:19]
자신이 하려는 일만
[04:20]
되면 된다고 생각해요. 그래요, 제가 처음 써본
[04:23]
어도비 웹 빌더도
[04:25]
드래그 앤 드롭 UI가 있었는데
[04:26]
보기에는 좋았지만
[04:28]
여러 상황에서 작동하지 않거나
[04:30]
버그가 많고 이상한 점이
[04:32]
많았죠. 지금 현재
[04:35]
2025년 3월 시점에서
[04:38]
바이브 코딩은 데모용으로 좋고
[04:42]
개인용 소프트웨어에도 좋습니다
[04:45]
이건 나중에 더 얘기해볼 건데
[04:47]
개념 증명용으로도 좋고
[04:50]
그리고 Sentry.io에도 좋죠
[04:53]
왜냐하면 코드가 때때로
[04:55]
형편없을 수 있고
[04:57]
그게 형편없다는 걸
[04:58]
모를 수도 있거든요. 이게 바로
[05:01]
Sentry의 이상적인 사용 사례죠
[05:03]
코드에 버그가 있는데
[05:05]
모르고 있다가, 만약 당신이
[05:07]
대충 바이브 코딩을 하고 있다면
[05:09]
버그가 있는지도
[05:10]
모르고
[05:11]
코드도 모르는데
[05:12]
버그는 당연히 가득하겠죠. 그러니까
[05:14]
sentry.io에서 확인해보세요
[05:17]
모든 문제를 해결할 수 있고
[05:18]
Sentry에도 AI 도구가 있어서
[05:21]
어쩌면 Sentry가
[05:23]
AI 바이브 코딩 흐름의 일부가 되어
[05:25]
'나한테 고쳐줘'를 클릭하면
[05:27]
버그를 발견하고 '고쳐줘'하면
[05:28]
자동으로 고쳐질 수도 있겠죠. sentry.io에서
[05:31]
syntax에 가입하고
[05:32]
쿠폰 코드 tasty treat로
[05:34]
2개월 무료 사용해보세요
[05:36]
이 팟캐스트는 Sentry가 제공합니다
[05:38]
아직 모르셨다면 말이에요
[05:39]
어쨌든 바이브 코딩에서 큰 우려사항은
[05:43]
특히 당신이 고급 개발자이고
[05:46]
이런 AI 코딩 솔루션을
[05:48]
보조 수단으로 사용할 때
[05:50]
주니어 레벨 프로그래머처럼
[05:53]
매우 신중하게 지켜보면서
[05:55]
모든 것을 검토해야 한다는 거죠
[05:56]
코드를 한 줄씩 검토하면서
[05:59]
정말 꼼꼼하게 이해하고
[06:01]
코드베이스에 추가되는 모든 것을
[06:03]
하나하나 정확히 파악하게 되죠.
[06:05]
결과적으로 훨씬 더 나은 코드가 될 뿐만 아니라,
[06:07]
실제로 여러분이 직접 코딩하고 싶은 욕구를 느낄 수 있어요.
[06:10]
AI가 한번에 너무 많은 변경을 하면
[06:11]
'이건 내가 원하는 방식이 아닌데'라고 생각하게 되고
[06:13]
'이건 좋지 않은 아이디어야.
[06:15]
내가 직접 하고 싶어.'라는 생각이 들죠.
[06:16]
하지만 어떤 사람들은
[06:18]
단순히 코드가 작동하는지만
[06:19]
확인하고 넘어가버립니다.
[06:21]
사실 이게 꽤 재미있는 현상인데요,
[06:24]
AI 이미지 생성이
[06:25]
처음 등장했을 때를 생각해보면,
[06:27]
정말 재미있는 일이 있었죠.
[06:30]
약 3년 전, AI 이미지가 처음 나왔을 때
[06:33]
모두가 우스꽝스러운 이미지들을
[06:36]
공유하기 시작했어요.
[06:39]
그리고 챗봇이 나왔을 때도
[06:42]
재미있는 대화들을 공유했죠.
[06:44]
그런데 그것도 시간이 지나면서 잦아들었고,
[06:46]
이제는 게임이나 소프트웨어를
[06:49]
만들 수 있게 되면서
[06:50]
비슷한 현상이 반복되고 있어요.
[06:53]
사람들이 재미있는 소프트웨어나
[06:55]
작은 게임들을 만들어내고 있죠.
[06:58]
하지만 이것도 시간이 지나면
[07:00]
식상해질 거예요.
[07:02]
마치 '햄버거를 먹는 강아지' 이미지를
[07:05]
AI로 만드는 것처럼 당연한 일이 될 거죠.
[07:08]
몇 년 전에는 정말 놀라운 일이었지만,
[07:11]
이제는 누구나 할 수 있는
[07:14]
평범한 일이 되어버렸잖아요.
[07:16]
지금이 바로 그런 단계인 것 같아요.
[07:18]
하지만 이게 완전히 쓸모없다는 건 아니에요.
[07:21]
지금 제 아이들이
[07:23]
수학 게임을 만들고 싶어하는데,
[07:25]
단순한 플래시카드 게임이라도
[07:27]
AI를 활용하면 정말 흥미로운
[07:30]
결과물을 만들 수 있을 것 같아요.
[07:32]
제가 처음부터 직접 만든다면
[07:34]
플래시카드 게임 하나 만드는데
[07:36]
약 6시간 정도 걸릴 텐데,
[07:39]
AI를 활용하면 3D 월드에서
[07:41]
달리면서 문제를 푸는
[07:43]
게임을 한 시간 만에
[07:45]
만들 수 있을 것 같아요.
[07:48]
이건 정말 좋은 결과가 될 거예요.
[07:51]
아이들이 컴퓨터와 코딩에
[07:52]
흥미를 느끼고
[07:54]
동시에 수학도 배울 수 있으니까요.
[07:57]
제 아들과 게임 개발을 시작했는데,
[08:00]
실제로 변화를 보려면 시간이 많이 걸려요.
[08:03]
특히 제가 전문가가 아니다 보니
[08:05]
아들이 지루해하기 시작하더라고요.
[08:08]
캐릭터가 걷기 시작했을 때도
[08:09]
방향이 틀리고 애니메이션도
[08:11]
제대로 안 됐지만,
[08:13]
아들은 그저 '마리오는 언제 만들어요?'
[08:15]
라고만 물어봐요.
[08:16]
마리오 메이커처럼 드래그 앤 드롭으로
[08:20]
쉽게 만들 수 있는 걸 원하죠.
[08:22]
그는 화면에서 바로 결과를 보고 싶어해요.
[08:26]
아들의 집중력이 떨어지고 있어서
[08:28]
최선을 다해 설명하고 있어요.
[08:30]
'캐릭터가 이제 걸을 수 있어!'
[08:32]
방향이 맞진 않지만,
[08:33]
애니메이션도 아직 완벽하진 않지만
[08:36]
움직이긴 한다고요.
[08:37]
하지만 아들은 '마리오는 언제 만들어요?'
[08:40]
마리오 메이커처럼
[08:41]
드래그 앤 드롭으로 만들고 싶어해요.
[08:43]
화면에 드래그 앤 드롭으로 작업하면서
[08:44]
즉각적인 결과를 볼 수 있고,
[08:47]
그게 바로 그가 원하는 경험이죠.
[08:48]
네, 저도 생각하기에
[08:51]
즉각적인 피드백이나 시각적인 것이
[08:53]
영감을 얻는 데는 정말 좋습니다.
[08:55]
다양한 장점이 있지만, 제가 생각하기에
[08:58]
실제 프로덕션 코드베이스를
[09:00]
장기적으로 구축하려고 할 때 문제가 발생합니다.
[09:03]
이런 도구를 사용할 수 없다는 게 아니라
[09:04]
이것을 마치 조수처럼 여기고
[09:07]
세심하게 지켜봐야 합니다.
[09:08]
바이브 코딩처럼 맹목적으로 따르기보다는요.
[09:10]
저는 이런 생각을 자주 합니다.
[09:12]
제 친구들이 이런 얘기를 해요.
[09:15]
'이런 기능을 하는 앱을 만들었는데,
[09:17]
그냥 프롬프트로 쉽게 만들었어.
[09:19]
이걸 제품으로 출시할 거야' 라고 하면
[09:21]
저는 이렇게 생각하죠.
[09:23]
'인증에 대해 알고 있나요?
[09:25]
데이터베이스에 대해서는?
[09:27]
보안에 대해서는 알고 있나요?
[09:29]
그 외의 필수적인 것들은?
[09:31]
답은 모두 '아니오'예요.
[09:33]
이러한 지식이 없다면
[09:36]
오늘날에는 제대로 된 제품을
[09:39]
자신 있게 출시하기 어렵습니다.
[09:43]
이런 도구와 지식이 없으면
[09:45]
여전히 그 간극이 존재하죠.
[09:47]
그래서 현재로서는 프로덕션 코드를
[09:50]
바이브 코딩으로 작성하는 것은
[09:52]
프로덕션 코드에는 전혀 좋지 않다고
[09:55]
말씀드리고 싶습니다.
[09:56]
바이브 코딩이란
[09:57]
코드를 제대로 보지도 않거나
[09:59]
깊이 있게 파고들지 않는다는 의미니까요.
[10:01]
하지만 개인적인 프로젝트나
[10:03]
일회성 데모, 영감을 얻기 위해서라면
[10:05]
완전히 타당하고 잘 작동한다고 봅니다.
[10:07]
그런 용도로는 정말 좋죠.
[10:10]
맞아요, 저도 돌이켜보면
[10:12]
최근에 만든 것들을 생각해보는데
[10:14]
솔직히 말해서
[10:16]
제가 바이브 코딩으로 만든 것들의
[10:17]
절반은 기억도 나지 않아요.
[10:20]
만들고 기능 확인하고 버렸거든요.
[10:22]
하지만 지금 화면에 보여드릴 이미지가 있는데
[10:25]
제가 만들고 있는
[10:26]
파라메트릭 그리드입니다.
[10:28]
3D 프린팅으로 만들고 있고
[10:31]
이 그리드를 우리 체육관에 걸어서
[10:34]
여기에 후크를 달아
[10:36]
다양한 운동 기구를 걸 수 있게
[10:38]
만들 예정입니다.
[10:40]
보통은 이런 것들을 그냥 출력해서
[10:42]
원하는 만큼 프린트하고
[10:45]
서로 연결해서
[10:46]
바로 사용할 수 있는데
[10:47]
저는 예쁜 테두리를 넣고 싶어서
[10:49]
작업이 훨씬 복잡해졌어요.
[10:52]
왜냐하면 위, 오른쪽, 아래, 왼쪽
[10:54]
이 모든 부분을 고려해야 하거든요.
[10:57]
마치 현실에서 슬라이딩 퍼즐처럼
[10:59]
모서리 조각들이 필요하고
[11:02]
위, 아래, 왼쪽, 오른쪽 조각과
[11:04]
내부 조각까지
[11:05]
총 9가지 종류의 조각이 필요해요.
[11:07]
이걸 시각화하기가 어려워서
[11:09]
처음에는 종이에 스케치를 해보려 했어요.
[11:14]
4x6 그리드를 그려보면서
[11:16]
필요한 것들을 시각화하려고 했는데
[11:18]
결국에는 프롬프트를 사용하기로 했죠.
[11:21]
그래서
[11:22]
프롬프트로 작업을 시작했고
[11:25]
작은 프로그램을 만들었습니다.
[11:27]
4x6 그리드가 있고
[11:30]
각 모서리의 이름을 정의해야 했어요.
[11:33]
상단 왼쪽, 상단 오른쪽 모서리,
[11:36]
오른쪽 모서리, 왼쪽 등 내부까지요.
[11:39]
그리고 계속 진행했죠.
[11:41]
시각화하고, 각 부분에 대해
[11:43]
인쇄해야 할 양을 계산하는 시트를 만들었어요.
[11:46]
그게 15분 정도밖에 안 걸렸는데,
[11:49]
솔직히 말하면
[11:51]
절대 불가능한 건 아니지만
[11:54]
직접 했다면 훨씬 더 오래 걸렸을 거예요.
[11:57]
게다가 시각화도
[12:00]
이만큼 잘 되진 않았을 거예요.
[12:02]
직접 만들었다면
[12:04]
아마도 스프레드시트나
[12:06]
종이에 작성했을 텐데요.
[12:07]
물론 명확히 말하자면
[12:09]
듣고 계신 분들께 말씀드리지만
[12:11]
여러분이 못한다는 게 아닙니다.
[12:13]
이런 인터페이스나 UI를 충분히 만들 수 있어요.
[12:17]
그리드나 이런 것들을 말이죠.
[12:20]
진짜 장점은 속도와
[12:22]
들이는 노력에서 나타나요.
[12:24]
예를 들어
[12:26]
제가 만든 미니 컨트롤러처럼요.
[12:28]
물론 저도 미디 피아노 UI를
[12:30]
직접 코딩할 수 있었겠죠.
[12:35]
건반들을 배치하고
[12:37]
피아노 건반이 어떻게 배열되는지
[12:39]
하지만 Cursor에게 피아노를 만들어달라고 했죠.
[12:42]
CSS와 HTML로 미적으로 보기 좋게요.
[12:46]
물론 제가 방향을 제시할 수 있어요.
[12:48]
Grid나 Flexbox를 사용하라고 하거나
[12:50]
이런 스타일로 해달라고 할 수 있죠.
[12:52]
기술적인 가이드도 줄 수 있고
[12:55]
접근 방식도 제안할 수 있고
[12:57]
힌트도 줄 수 있어요.
[12:59]
전체 앱을 만들긴 했지만
[13:02]
키보드 인터페이스는 Vibe 코딩으로 했어요.
[13:04]
시간을 들이고 싶지 않았거든요.
[13:05]
결국 이건 재미로 하는 프로젝트니까요.
[13:08]
그래서 이런 점이
[13:10]
정말 좋은 균형점이라고 생각해요.
[13:12]
할 수 있는 일이고
[13:14]
어떻게 하는지도 알고
[13:16]
완성됐을 때 어떤 모습일지도 아는데
[13:19]
시간을 절약하기 위해
[13:21]
도움을 요청할 수 있는 거죠.
[13:24]
Vibe 코딩의 또 다른 활용 분야는
[13:27]
익숙하지 않은 분야에
[13:31]
도전할 때예요.
[13:32]
룸바 프로젝트에서는
[13:35]
C++로 많은 코드를 작성했는데
[13:38]
정확히 어떤 언어였는지 기억이 안 나네요.
[13:42]
C++였던 것 같은데, 시리얼 연결 디버깅하고
[13:44]
그런 작업들을 했어요.
[13:47]
룸바를 제어하기 위한
[13:50]
UI를 전부 만들었죠.
[13:53]
영상으로도 볼 수 있어요.
[13:55]
전체를 다 만들었는데
[13:57]
이걸 Vibe 코딩이라고
[13:59]
할 수 있을 것 같아요. 보시면 알겠지만
[14:03]
완벽하진 않아요. 이상한
[14:05]
리액트 훅들도 있고요.
[14:07]
하지만 잘 작동했어요.
[14:09]
정말 빠르게 구현할 수 있었고
[14:11]
실행도 잘 됐죠. 그래서 익숙하지 않은 언어나
[14:14]
편하지 않은 분야,
[14:16]
처음 접하는 영역에서도
[14:18]
UI나 다른 것들을
[14:21]
최대한 빨리 만들어내야 할 때
[14:24]
배우는 과정이니까요.
[14:27]
그렇다고 제가 아무것도
[14:28]
내가 배운 게 없다는 건 아니에요.
[14:30]
오히려 그 프로젝트를 통해 전보다 훨씬 더 똑똑해졌죠.
[14:33]
마이크로컨트롤러에 대해서도 정말 많이 알게 됐고
[14:36]
C++에 대해서도 훨씬 더 자신감이 생겼어요.
[14:38]
로봇이 대신 코드를 짜주는 게 아니라
[14:41]
제가 직접 더 많이 이해하게 된 거죠.
[14:44]
이런 이해도를 얻게 됐는데
[14:46]
책만 읽었다면 아마
[14:48]
이렇게까지 이해하지 못했을 것 같아요.
[14:51]
진공청소기를 제어하면서 배웠던 거죠.
[14:53]
맞아요, 이건 정말 중요한 포인트인데
[14:56]
제가 생각하기에는
[14:57]
바이브 코딩이 어떤 면에서는 정말 바보 같을 수 있어요.
[15:01]
특히 자신이 뭘 하는지도 모르고
[15:02]
코드가 뭘 하는지도 모르면서
[15:04]
아무것도 배우지 않고
[15:05]
그저 더 많은 쓰레기 코드만
[15:07]
세상에 내놓는다면 그건 좋지 않죠.
[15:09]
하지만 이걸 배움의 기회로 삼고
[15:13]
자신을 더 열정적으로 만들며
[15:15]
생산적인 결과물을 만들어내는 데
[15:16]
사용한다면
[15:18]
그런 모든 측면에서는
[15:20]
지지할 만하고 이점이 있다고 봅니다.
[15:22]
네, 맞아요. 다른 관점이죠.
[15:25]
예를 들어 지금 어떤 아이가
[15:26]
게임을 만들려고 하는데
[15:29]
문제에 부딪혀서
[15:31]
디버깅을 하려고 할 때
[15:33]
AI의 답변을 읽으면서
[15:35]
'아, 이건 레이스 컨디션 때문일 수 있겠다'
[15:36]
라고 배우게 되고
[15:38]
레이스 컨디션이 뭔지 이해하게 되죠.
[15:41]
이런 식으로 다양한 것들을
[15:43]
아주 빠르게 배울 수 있어요.
[15:46]
간단한 앱을 만들면서도요.
[15:48]
물론 우리가 이 팟캐스트에서
[15:51]
AI 관련 이야기를 할 때마다
[15:54]
많은 분들이 화를 내시는 걸 알아요.
[15:56]
하지만 제가 생각하기에는
[15:59]
뭔가를 배우려고 할 때
[16:02]
개인적인 문제를 해결하거나
[16:04]
또는 새로운 것을 배우려 할 때
[16:05]
전반적으로 도움이 된다고 봅니다.
[16:07]
새로운 것을 배우거나
[16:08]
전반적으로 이득이에요.
[16:10]
네, 전적으로 동의합니다.
[16:13]
바이브 코딩에 대해
[16:14]
더 하실 말씀 있으신가요?
[16:17]
아니요, 저는 이제 바이브를 끝내고 싶네요.
[16:23]
더 이상 할 말이 없네요.
[16:25]
여러분들이 바이브 코딩으로
[16:26]
무엇을 만드셨는지 궁금해요.
[16:28]
여러분의 의견을 듣고 싶어요.
[16:31]
모든 답변이 흥미롭네요.
[16:33]
좋아하시든 싫어하시든, 어떻게 생각하시나요?
[16:35]
그럼 이만!