← 목록으로

Show GN: 한글날을 맞아 한글 퍼즐게임 바이브코딩 했습니다.

요약
  • 2026년 1월 출시 예정인 웹 보드게임 플랫폼 '바이브코딩'은 설치 없이 브라우저에서 12종의 게임을 실시간으로 즐길 수 있는 서비스입니다.
  • 개발자는 서버 부하를 최소화하기 위해 AI 계산 분산, 데이터 전송 최적화, 공통 코드 통합 등의 기술적 문제를 해결하며 플랫폼을 고도화했습니다.

2026년 1월부터 혼자 만들고 있는 웹 보드게임 플랫폼입니다. 설치 없이 브라우저에서 바로 대전할 수 있습니다.

게임: 오목(렌주룰), 장기, 체스, 중국장기, 윷놀이, 당구, 알까기, 골프, 낚시, 땅따먹기, 점과상자, 퍼즐 (12종)
지원 기능: 실시간 대전, 초대 링크, 관전, AI 대전(5단계), 기보 저장/재생, 홈 화면 앱 설치, 11개 언어

작은 서버 로 운영하다 보니, "어떻게 하면 서버를 덜 쓰면서 제대로 돌아가게 할까"가 거의 모든 고민의 출발점이었습니다.
만들면서 가장 오래 붙잡고 있었던 지점들을 정리해 봤습니다.

■ 1. 당구 — 두 사람 화면의 공 위치를 맞추는 일

  • 두 사람이 같은 샷을 각자 계산하면 똑같이 움직일 줄 알았는데, 몇 턴만 지나도 공 위치가 조금씩 어긋났습니다.
  • 서버가 대신 계산하기엔 서버가 너무 작았습니다.
  • 방식을 10번 가까이 바꿨는데, 늘 처음엔 잘 되다가 게임이 진행되면 깨졌습니다.
  • 큰 원인 하나는 허무할 만큼 단순했습니다. 큐볼이 포켓에 빠진 뒤 다시 놓는 처리가 특정 순서에서 아예 실행되지 않고 있었습니다.
  • 결국 "계산은 한 번만 하고, 양쪽이 같은 장면을 함께 본다"는 원칙으로 정리했습니다. 덕분에 위치가 어긋나지 않게 됐고, 상대가 턴마다 한참 기다리던 문제도 같이 풀렸습니다.

■ 2. AI 때문에 다른 게임까지 느려지던 문제

  • 누군가 AI와 장기를 두면 전혀 상관없는 다른 게임방까지 렉이 걸렸습니다.
  • 그래서 AI 계산을 서버에서 빼고, 서버는 "그 수가 규칙에 맞는지"만 확인하도록 역할을 나눴습니다.
  • 계산이 실패하거나 응답이 늦을 때 어떻게 할지(다시 시도할지, 무효로 할지, 기록을 남길지)를 정하는 데 오히려 시간이 더 걸렸습니다.

■ 3. "초고수가 약해요"

  • 장기 입문 단계 사용자가 최고 난이도가 약하다고 알려 줬습니다.
  • 직접 재 보니 맞았습니다. 최고 단계가 바로 아래 단계보다 수를 덜 읽고 있었습니다.
  • 엔진을 다시 만들고, 옛 엔진과 100판을 직접 대국시켜 확실히 강해진 것을 확인한 뒤에 바꿨습니다. 사용자 한 명의 제보가 가장 정확한 테스트였습니다.

■ 4. 로비에 사람이 늘면 서버가 버티지 못하는 구조

  • 누가 들어오거나 방이 바뀔 때마다 전체 명단을 모든 사람에게 다시 보내고 있었습니다. 사람이 늘수록 기하급수로 무거워지는 구조였습니다.
  • "바뀐 것만 보낸다"로 바꿨더니 보내는 양이 수백 분의 1로 줄었습니다. 연결이 느린 사람이 놓친 내용을 다시 맞춰 주는 처리가 의외로 까다로웠습니다.

■ 5. 12개 게임이 조금씩 다르게 자란 문제

  • 게임을 하나씩 늘리면서 이전 게임 코드를 복사해 쓰다 보니, 나중에 만든 게임일수록 조금씩 달라져 있었습니다.
  • 그러다 이런 버그가 나왔습니다. 9개 게임에서 "연결을 끊고 나간 사람이 이기는" 버그였는데, 공통 부품에 붙인 이름 하나를 9개 게임이 모두 반대로 이해한 탓이었습니다.
  • 이후로는 게임마다 따로 있던 공통 부분(접속, 방 관리, 로비)을 하나로 모았고, 빈 방이 서버에 계속 쌓이던 문제도 이때 함께 잡았습니다.

■ 6. 휴대폰에서만 업데이트가 안 되던 문제

  • PC에서는 새 버전이 보이는데 휴대폰에서는 계속 옛 버전이 떴습니다. 오프라인 지원용 캐시가 자기 자신까지 캐시하고 있던 게 원인이었습니다.
  • 다국어 주소를 정리하다가 첫 화면이 아예 안 열리는 사고도 한 번 냈습니다. 캐시가 이런 식으로 조용히 발목을 잡는다는 걸 두 번 배웠습니다.

■ 그 밖에

  • 윷놀이는 판 한가운데 칸이 세 갈래 길이 만나는 곳이라 빽도 처리에서 버그가 계속 재발했고, 결국 이동 규칙을 처음부터 다시 짰습니다.
  • 땅따먹기에는 산이나 언덕에 가려 상대가 안 보이는 시야 시스템을 넣었습니다.
  • 오목은 렌주룰(흑 쌍삼·쌍사·장목 금지)을 적용했습니다.

혼자 하다 보니 놓친 게 많을 것 같습니다. 버그 제보나 피드백 주시면 감사하겠습니다.

그냥 목록으로
원문 보기 ↗