저자가 최근 2주 동안 온라인과 라이브 포커를 플레이하며 학습한 내용과 함께, Cursor AI와 Laravel로 PokerTracker와 유사한 웹 앱을 짧은 시간에 구축한 경험, AI 코딩 도구 활용법, 파서 구현의 난관, 그리고 이에 대한 소회와 앞으로의 생각을 공유한다.
지난 2주 동안 저는 주로 온라인 pokerstarsmi.com과 로컬 카지노에서 라이브로 포커를 하며 열두 시간 넘게 보냈습니다.
제가 최근에 플레이한 마지막 1,000핸드는 여기에서 볼 수 있습니다: https://poker.rchase.com
데스크톱 앱 PokerTracker 4로 제 핸드들을 복기하는 데에도 그에 못지않은 시간을 썼고, 책 6권을 읽고, 전략을 공부하고, 애플 메모에 일지를 썼습니다.
그다음엔 Python 스크립트 자동화를 직접 만들어 PokerStars에서 핸드 히스토리를 내보내고, PokerTracker 4에 가져오고, 잔액을 확인하는 등 여러 작업을 했습니다.
그러다 Grok과 Cursor의 도움을 받아 코드를 작성하게 되었고, 마침내 PokerTracker 4 데스크톱 앱과 유사한 웹 앱의 라라벨 MVP를 만들었습니다.
철학적으로 너무 깊게 들어가지 않자면, 이건 이기고 지는 돈의 문제가 아닙니다. 저는 초보라 지금은 낮은 스테이크로 플레이합니다.
그저 게임을 배우고 싶습니다.
언젠가 토너먼트나 하이 스테이크도 해볼지 모르죠.
하지만 지금은 그보다 더 중요한, 제 자신에 대해 배우고 있습니다.
또한 자금 관리 측면에서의 교훈도 즐기고 있습니다:
그날 돈을 땄는지 잃었는지는 중요하지 않습니다. 중요한 건 제가 계획을 따랐는지 여부입니다.
감정에 행동이 끌려갔는지, 아니면 자기 통제를 유지했는지.
성공이란 그때 가진 정보로 좋은 결정을 내렸는지에 달려 있으며, 비록 결과가 좋지 않았더라도 말이죠.
인생과 비즈니스에 빗댈 수 있는 비유는 끝이 없습니다… 하지만 이 글에서는 특히 AI로 이 웹 앱을 만든 경험이 얼마나 충격적이었는지를 주로 이야기하고자 합니다!
Cursor AI 에이전트와 단 2~3일 동안 몇 시간씩 대화만 주고받은 끝에, poker.rchase.com에 관리자 대시보드와 수십 가지 기능을 갖춘 완전한 웹 앱을 만들었습니다:









MacOS용 Herd로 로컬에서 빌드했고, Cursor의 도움을 받아 DigitalOcean Debian 13 서버에 배포했습니다. GitHub의 프라이빗 저장소를 사용했습니다.
놀라운 점은 제가 이 코드의 한 줄도 직접 쓰지 않았다는 겁니다.
모든 것이 Cursor AI 에이전트와의 대화를 통해 만들어졌습니다.
우리가 어떻게 이 지점까지 왔는지조차 모르겠습니다.
불과 몇 년 전만 해도 ChatGPT에게 기본적인 파이썬 스크립트를 작성해 달라고 하면 전혀 쓸모가 없었습니다. 존재하지 않는 라이브러리를 호출하고, 써놓고 구현하지 않은 함수를 사용하고… 엉망이었죠.
기초적인 산수조차 못 하던 때도 있었습니다. 대화 중에 2+2=5 같은 일이 흔했거든요.
그 짧은 경험 이후 저는 AI를 완전히 접었습니다. 과대평가됐고 활용 가능성도 제한적이라고 생각했죠.
그런데 어느 순간, 저는 Grok 월 $30 요금제에 가입했고 매일 쓰기 시작했습니다.
그건 곧 저에게서 구글 검색을 완전히 대체했습니다.
그리고 이전에 구글 검색을 쓰던 것보다 훨씬 더 많이 Grok을 쓰기 시작했습니다.
우리 팀도 네트워킹이든 프로그래밍이든 어려운 문제를 만나면 AI에게 물어보기 시작했습니다. 대답이 늘 훌륭하진 않았고, 보안 이슈에 대해 항상 조심스럽게 검토하며 무턱대고 신뢰하지는 않았습니다.
하지만 시간이 지나면서 응답의 질이 개선되는 게 보였습니다.
막히면 “이거 Grok은 뭐라 하나 봤어?”가 자연스러운 질문이 되었죠.
올해 초 제 타임라인이 X에서 “vibe coding”으로 가득했고, 특히 Pieter Levels의 fly.pieter.com 이야기가 많았습니다. 저는 그냥 재미로 따라보는 정도였고, 그때만 해도 지금보다 훨씬 못했던 걸로 기억합니다. 코드를 한 파일에 몰아두고, AI가 그 파일의 컨텍스트를 기억하게 하려고 온갖 편법을 써야 했으니까요.
하지만 지난주, 제 Python PokerStars 핸드 익스포터 스크립트를 Grok에 그대로 붙여넣고 Gmail에서 로그인 PIN을 가져오는 연동을 만들어 달라고 했더니, 몇 번의 반복만에 제가 코드를 한 줄도 쓰지 않고도 성공적으로 구현해냈습니다.
그다음엔 모든 print 디버깅을 제대로 된 로깅으로 바꿔 달라고 했고, 그것도 손쉽게 해냈습니다.
또한 거대한 단일 스크립트를 다른 스크립트에서 사용할 수 있는 클래스로 바꿔 달라고 했고, 그것도 해냈습니다.
너무 인상 깊어서 최고의 AI 프로그래밍 도구가 무엇인지 찾아보기로 했습니다… 물론 구글링하지 않고 Grok에 물었죠. 그러다 Cursor, Claude, Windsurf에 대해 알게 됐습니다.
저는 지난 4년 동안 주로 다른 사람들을 통해 앱을 만들어왔습니다. 코드를 거의 쓰지 않습니다. 아쉽게도 HostiFi의 운영 레포지토리에 커밋할 정도로 능숙하지도 않아요.
하지만 제가 가진 강점은 무엇을 어떤 순서로, 어떤 희생을 감수하며 만들어야 출시할 수 있는지를 이해한다는 점입니다.
저는 사용자 경험에 대한 감이 있고, 약간의 디자인 감각도 있습니다.
또한 함께 일하는 개발자들에 대한 공감과, 기능을 만들 때 수반되는 복잡성에 대한 이해가 있습니다. 갈림길에서 서로 다른 접근법의 장단점을 논할 만큼의 기술적 지식도 갖고 있습니다.
이 모든 말을 하는 이유는 — Cursor 에이전트와 일하는 경험이 팀의 인간 개발자와 일하는 것과 소름 끼치도록 비슷했다는 점입니다… 다만 피드백 루프가 실시간이라 훨씬, 훨씬 빨랐습니다.
Cursor가 일하는 걸 지켜보는 경험이 너무 낯설어 말로 설명하기 어렵습니다. 직접 해봐야 합니다.
기본적으로 “이걸 만들어줘”라고 말하면, 코드가 작성됩니다. 페이지를 열어보니 500 에러가 떠요. “여기 500 에러가 있어”라고 말하면, 로그를 확인하고 버그를 찾아 고치고 새 코드를 배포합니다. 페이지를 새로고침하면 동작합니다… 그런데 색이 마음에 안 들어요. 그러면 고쳐달라고 하고, 또 고칩니다. 이런 식으로 밤늦게까지 반복됩니다.
사람과 일할 때는, 보통 기능 또는 새 페이지, 심지어 완전히 새로운 앱을 만들고 싶다고 개략을 잡습니다. 그러면 개발자와 MVP 버전의 세부사항을 주고받고, 시간/가치 트레이드오프를 고려해 무엇을 덜어낼지 정합니다.
그 다음 개발자는 전체를 한 번에 만들지 않고, 마일스톤을 나눠 진행합니다. 그래야 중간중간 확인하고 피드백을 주며, 각 마일스톤을 며칠 혹은 몇 주 간격으로 여러 차례 반복하며 완성할 수 있으니까요.
저는 이렇게 소프트웨어를 만드는 법을 어렵게 배웠습니다…
과거에 엄청난 시간과 돈을 허비했거든요. 왜냐하면 예전엔:
그동안 쌓은 개발 관리 스킬과 다양한 프로그래밍 주제에 대한 얕지만 넓은 기술적 이해 덕에, 오늘 저는 Cursor AI 에이전트와 함께 무언가를 만드는 데 특히 적합해졌다고 생각합니다.
지금 당장 누구나 무엇이든 만들 수 있다고는 생각하지 않습니다.
다르게 보면 — 만들기 위한 문턱은 계속 낮아지겠지만 결코 “쉽거나” “누구나 할 수 있는” 수준이 되지는 않을 겁니다.
어차피 대부분의 SaaS에서 진짜 어려운 건 코드가 아니었습니다.
그게 어려웠다면, 모든 프로그래머가 백만장자가 되었겠죠.
진짜 어려운 건 무엇을 어떤 순서로 만들지 아는 것, 그리고 가장 중요한 — 고객을 얻는 일입니다.
어쨌든 다시 Cursor 이야기로 돌아가죠.
가장 큰 도전 중 하나는 핸드 히스토리 파서를 작성하는 일이었습니다.
PokerStars는 다음과 같은 텍스트 파일로 핸드 히스토리를 내보냅니다:
이걸 정규식으로 긁어 데이터베이스에 넣기 좋은 개별 데이터로 쪼개고, 정렬하고, 합산하고, 분석하는 일이 매우 어려웠습니다.
문제의 일부는 AI가 포커의 기본을 잘 이해하지 못한다는 점이었습니다.
또 다른 문제는 수많은 에지 케이스, 즉 몇몇 핸드에서만 발생하는 특이 상황들이 많다는 점이었습니다.
제 첫 목표는 모든 핸드의 손익 합계를 계산하는 것이었습니다. 겉보기엔 간단해 보였습니다 — “reillychase collected $29.82 from pot” 같은 텍스트를 찾아 합산하면 되니까요.
그런데 잠깐, 거기서 제가 판에 넣은 베팅은 또 차감해야 했습니다.
그렇다면 무엇이 ‘베팅’일까요?
제가 스몰 블라인드나 빅 블라인드일 때는 텍스트 파일의 문구가 다르고, 올인, 레이즈, 콜에도 각기 다른 표현이 쓰입니다. 베팅이 여러 용어로 표현되므로, 모두 합산해서 팟에서 딴 금액에서 빼줘야 합니다.
또 다른 에지 케이스로, 제가 베팅을 했는데 상대가 올인을 하면서 제 베팅 일부가 반환되는(미매칭 베팅 금액) 상황도 있습니다.
혹은 승자가 둘이라 팟이 분할되는 경우도 있죠.
짐작하듯 이런 목록은 끝이 없습니다.
모든 에지 케이스를 미리 다 생각하는 대신, 저는 AI에게 “몇 개의 핸드를 함께 리뷰해보자 — 가장 크게 이긴 핸드, 가장 크게 잃은 핸드, 복잡한 핸드를 찾아서 설명해줘”라고 했습니다.
AI는 그런 유형의 핸드를 찾아주었고, 제가 수작업으로 합산할 수 있도록 텍스트를 보여줬으며, 자신이 예상한 출력과 실제 파싱된 출력을 함께 보여줬습니다.
대부분의 경우, 텍스트를 읽고 낸 예상 결과와 실제 파싱 결과가 다르니, 무엇이 잘못되었는지 AI가 스스로 알아냈습니다.
다른 경우에는 제가 포커 관련 맥락을 더 설명해줘야 했습니다.
이런 대화를 계속 반복했습니다.
다시 말하지만, 이건 인간 프로그래머와 일하는 것과 정말 비슷했습니다. 물론 때때로 AI가 훨씬 더 멍청하긴 했지만, 반복 주기가 며칠이나 몇 주가 아니라 몇 분이라는 점이 달랐습니다.
제가 Cursor 자체를 깊게 파기보다는 만들기에 더 많은 시간을 쏟긴 했지만, 하나 깨달은 점은 에이전트를 Auto에서 Claude 4.5 Sonnet Thinking으로 바꿨을 때입니다.
제 경험상 응답의 품질이 크게 개선되었고, 크레딧이 소진되면 온디맨드로 결제해 계속 사용할 수 있도록 구독을 업그레이드할 생각입니다.
거시적 트렌드처럼 제 통제를 벗어난 것들에 대해 너무 많은 생각을 하거나, 그게 제 삶에 미칠 부정적 결과를 걱정하는 건 제 스타일이 아닙니다.
짧게 말하면, 프로그래밍 커리어, 소프트웨어 비즈니스, 그 밖의 미래가 어떻게 될지 저는 정말 모릅니다.
대신 그걸 걱정하기보다는 지금 여기, 상방 잠재력, 그리고 제가 가진 고유한 이점을 활용해 가치 있는 것을 만들고, 즐기고, 어쩌면 이익도 내보려 합니다.
제가 즐기는 일을 하면서, 새로운 기술을 배우고 무언가를 만들어볼 생각입니다.
포커를 하신다면 알려주세요.
Cursor나 유사 도구로 무언가를 만들어보신 분도 알려주세요.
또한 poker.rchase.com의 UX/디자인을 AI로 개편하는 방법에 대한 도움을 구합니다. Cursor가 이 부분은 강하지 않은 것 같아, 대안으로 찾아볼 만한 도구가 있다면 추천 부탁드립니다.
감사합니다.