바이브코딩으로 게임만들기 2 - 오픈소스 활용

GitHub 오픈소스로 40분 만에 기능 완성하는 법

by the게으름

TL;DR (3줄 요약):

직접 만들 필요 없다 — GitHub엔 이미 다 있다.

오픈소스(MIT License) 통합만으로 2달짜리 기능을 40분에 구현.

개발은 창작이 아니라 큐레이션이다. “재밌는 게임”이 목적이라면, 바퀴를 새로 만들지 말자.


언제 다 만들지

지금까지 겨우 잡은건 뼈대. 아니 뭘 만들지 정한정도?

이제 진짜 기능들을 찾아야 했다. 축구 경기 시뮬레이션, 한국 이름 생성기, 학사 일정, UI, 픽셀아트...

손가락으로 세어봤다. 하나에 삼틀씩만 잡아도 네달이다.

"언제 다 만들지?"


혹시나 해서

Claude한테 시키기 전에, 그냥 혹시나 해서 GitHub를 열었다.

별 기대 없이 검색창에 "soccer simulation"을 쳤다.

그리고 1초 후, 나는 멍청이가 됐다.

검색 결과: 1,823개

"...뭐?"

다시 검색해봤다. "korean name generator"

89개.

"godot ui kit"

2,100개.

나는 지금까지 뭘 한 거지?


open-football이라는 충격

첫 번째 검색 결과를 클릭했다. open-football.

README를 읽기 시작했는데, 점점 얼굴이 화끈거렸다.

"2,147개 전술 조합을 지원합니다."

내가 어제 만든 건? if문 10개.

"머신러닝 기반 선수 AI가 탑재되어 있습니다."

내 건? random() 함수 하나.

"실시간 물리 엔진으로 공의 궤적을 계산합니다."

내 건? 그런 거 없음.

데모 영상을 봤다. 선수들이 진짜 축구를 하고 있었다. 패스하고, 드리블하고, 골키퍼가 다이빙하고.

내가 어제 2시간 동안 만든 건 뭐였지? 숫자 놀이?

MIT 라이선스라는 마법

그런데 더 충격적인 건 라이선스였다.

MIT License.

뭔지 몰라서 검색했다. 그리고 눈을 의심했다.

"가져다 써. 팔아도 돼. 수정해도 돼. 그냥 출처만 밝혀."

잠깐, 이게 무료라고?

이렇게 대단한 걸 그냥 준다고?

사기 아니야? 어디 함정 있는 거 아니야?

다시 읽어봤다. 진짜였다.

LICENSE 파일 하나만 넣으면 끝이란다.


40분의 기적

믿기지 않아서 바로 해봤다.

git clone <https://github.com/openfootball/openfootball>

10분. 다운로드 완료.

내 프로젝트에 복사해 넣었다. 경로 설정하고, import 몇 개 고치고.

20분.

한국 리그 데이터 추가. K리그 팀 이름 넣고, 선수 이름 한글로 바꾸고.

10분.

실행해봤다.

돌아갔다.

총 40분.

어제 if문 10개 짜는데 2시간 걸렸는데, 완성품을 통합하는 덴 40분?

"이게 말이 돼?"


GitHub 쇼핑의 시작

미친듯이 검색하기 시작했다.

korean-names-generator를 찾았다. 성씨 286개, 이름 10만 개가 들어있었다. 시대별 유행 이름까지.

내가 만들려고 했던 건? "김철수, 이영희, 박민수" 하드코딩 10개.

school-calendar-kr. 전국 모든 학교의 학사일정이 JSON으로 정리되어 있었다.

내가 만들려고 했던 건? "3월 개학, 7월 방학" 하드코딩.

godot-ui-pack. 버튼, 슬라이더, 팝업, 애니메이션까지 다 있었다. 다크 테마, 라이트 테마도.

내가 만들려고 했던 건? 회색 네모 버튼 하나.

e2e51836-7a79-4962-98b8-30ef621109c8.png

바보의 깨달음

그 순간 깨달았다.

내가 지금까지 해온 건 바퀴 재발명도 아니었다.

바퀴는커녕 바큇살 하나를 깎고 있었던 거다.

아니, 바큇살도 아니다. 나무 막대기를 들고 "이게 바퀴야!"라고 우기고 있었던 거다.

프로그래밍 10년차 개발자들은 당연히 GitHub부터 뒤진다더라.

나는? "내가 처음부터 만들어야 진짜지!"라고 생각했다.

마치 국수를 끓이면서 "면부터 직접 뽑아야지!"라고 우기는 바보같았다.

아니 밀 농사부터인가?



목적을 잊은 바보

잠깐, 내가 뭘 만들려고 했더라?

"재밌는 축구 육성 게임"

그래, 재밌는 게임이다. FIFA나 위닝 같은 "완벽한 축구 시뮬레이터"가 아니다.

갑자기 라면이 생각났다.

“국수 국물에 소고기 맛을 내고 싶어!"

그럼 뭘 해야 할까?

A. 송아지부터 키운다 (2년 소요) B. 정육점에서 소뼈 사와서 12시간 고아서 육수 낸다 C. 소고기 다시다 한 스푼 넣는다

답은 C다. 뭐 B도 좋다. 하지만 A는 아니다.

당연하잖아? 라면 끓이는데 누가 송아지부터 키우나.

그런데 나는 지금까지 뭘 했나?

축구 게임 만든다고 물리 엔진부터 짜려고 했다.

근대 문제는? 난 못한다 저런거!

이건 국수 끓이면서 밀가루부터 반죽하는 수준도 아니다. 밀 농사부터 짓겠다는 거다.

내 목적은 "재밌는 게임"이지, "완벽한 시뮬레이터"가 아니다.

open-football이 내 게임의 소고기 다시다인 거다.

유저가 "와, 이 게임 물리엔진 진짜 리얼하네!"라고 할까?

아니다. 그냥 "재밌네" 하고 끝이다.

유저는 내가 머신러닝 AI를 직접 짰는지, GitHub에서 가져왔는지 관심 없다.

맛있는 국수인지만 중요하다.


난 공짜 재료 (장사 가능) 이라고 적힌 걸 몇개 가져왔다.

신나게 볶았다

일단은 나온다 오픈소스 라면

일단 돌려보고 잘되면, 돈주고 더 마음에 드는 걸 사던지

내가 농사를 지어보던지 그때 결정하면 된다.

화면 캡처 2025-10-24 085620.png 시뮬레이션 중인 내 오픈소스 라면


2일 만에 알파 완성

정신 차리고 방법을 바꿨다.

필요한 기능 리스트를 만들고, 하나씩 GitHub에서 검색했다.

"[기능명] MIT" 엔터.

star 100개 넘는 거. 최근에 업데이트된 거. README 있는 거.

git clone하고, 프로젝트에 넣고, 경로 맞추고.

이틀 만에 알파 버전이 나왔다.

처음부터 만들었으면 한 달? 두 달?

아니, 애초에 못 만들었을 거다.



진짜 개발자의 자세

이제 알았다.

초보 개발자: "내가 다 만들어야지!"

진짜 개발자: "누가 이미 만들어놨겠지?"

개발은 창작이 아니라 검색이다.

코딩이 아니라 큐레이션이다.

GitHub는 무료 레고 마트고, 나는 레고 조립하는 사람이다.


물론 실패도 있었다

GPL 라이선스 함정에 빠진 적도 있다.

"super-soccer-engine" 완벽했다. 기능도 최고였다.

그런데 GPL이었다.

내 코드도 공개해야 한단다. 상업적 이용도 까다롭단다.

쓰레기통에 버렸다.

교훈: 라이선스부터 확인하자.


에필로그

지금 내 게임의 80%는 오픈소스다.

open-football 엔진, korean-names 생성기, godot-ui 컴포넌트...

내가 만든 20%는 뭘까?

그 오픈소스들을 연결한 것.

한국 고등학교 축구부 설정을 추가한 것.

색깔을 파스텔톤으로 바꾼 것.

그게 다다.

그리고 그걸로 충분하다.

왜? 어차피 유저는 코드가 누가 짠 건지 관심 없으니까.

재밌으면 그만이니까.

"Don't reinvent the wheel. Find it on GitHub."

바퀴를 재발명하지 마라. GitHub에서 찾아라.


keyword
금요일 연재