코드배틀(Code Battle)#

코드배틀(Code Battle)은 필자가 운영 중인 웹사이트로, 내 코드와 상대 코드가 턴(TURN) 단위로 1:1 대결을 벌이는 게임입니다. 게임은 여러 개의 라운드(ROUND)로 구성되고, 라운드는 여러 개의 턴으로 구성됩니다. 각 턴에서 “나의 선택”과 “상대의 선택”이 승/패와 점수를 만들고, 그 결과가 누적되어 라운드 승/패와 게임 승/패가 결정됩니다.

코드배틀 사이트 (https://codebattle.online/)

코드배틀은 무엇인가(What)#

코드배틀의 핵심은 “정답을 맞히는 코딩”이라기보다, 전략을 코드로 구현해 상대를 이기는 구조입니다. 단순히 문제를 풀고 끝나는 것이 아니라, 상대의 패턴을 분석하고, 다음 턴을 예측하고, 그 예측을 코드로 반영해 대결의 흐름을 만든다는 점이 특징입니다.

사이트에는 다음과 같은 게임들이 준비되어 있습니다.

  • Rock Scissors Paper: 가위/바위/보를 매 턴 선택하고, 이길 때 선택에 따라 점수가 달라지는 구조
  • Five in a Row(오목): 15x15 교차점에서 돌 좌표를 턴마다 반환하며 대결
  • Bulls and Cows: 3자리 숫자를 맞히는 추리 게임(동시 정답이면 더 큰 수가 승리)
  • Sutda: 2장의 화투(또는 카드) 조합과 베팅으로 승부
  • SK Planet 행사 전용 게임들: 2021~2023년 행사 세션 운영을 위해 제작된 여러 변형 게임들

왜 해야 하나(Why)#

코드배틀을 “재미”만으로 정의하면, 코드배틀의 절반만 본 것이라고 생각합니다. 필자가 경험한 코드배틀의 장점은 아래에 더 가깝습니다.

  • 전략 능력이 올라갑니다: 턴 단위로 의사결정이 반복되기 때문에, “이길 확률이 높은 전략”을 설계하고 수정하는 경험을 하게 됩니다.
  • 코딩 실력이 실전적으로 다듬어집니다: 생각한 전략을 그대로 코드로 옮겨야 하고, 디버깅을 통해 실행 흐름을 맞춰야 합니다.
  • 머신러닝/데이터 분석과도 연결됩니다: 상대의 선택 로그를 수집해 패턴을 찾아내고, 이를 기반으로 전략을 고도화할 수 있습니다.
  • 개발자 행사에서 분위기를 만들기 좋습니다: 대진표를 짜고 토너먼트 형태로 진행하면 “응원”이 붙고, 사람들의 몰입도가 올라갑니다.

어떻게 하는가(How)#

코드배틀은 기본적으로 아래 흐름으로 진행됩니다. (사이트에 기재된 사용 방법을 기반으로 정리했습니다.)

  • 게임을 선택하고 게임 화면으로 이동합니다.
  • 룰을 확인한 뒤, 코드 영역에 주석과 기본 제공 코드를 참고하여 나의 전략 코드를 작성합니다.
  • 상대를 선택한 뒤 Start Game을 누르면 TURN / ROUND / GAME 결과가 기록됩니다.
  • printLog() 함수로 남긴 로그가 화면 하단의 로그 영역에 출력됩니다.
  • 처음에는 상대를 RANDOM으로 두고 디버깅 및 검증을 한 뒤, RANDOM을 이길 정도가 되면 다음 상대에게 도전하는 흐름이 좋습니다.
  • 온라인 유저로 참여하면 다른 개발자 및 지인들과도 대결할 수 있습니다.

개발 계기: “행사의 하이라이트였던 코드배틀을 웹으로”#

필자가 네오위즈에 재직하던 시절, 연말에 내부 개발자 행사가 있었고 그 행사의 하이라이트가 코드배틀 세션이었습니다. 행사 전에 참가 신청을 받고, 예선을 통해 8강을 확정한 뒤 대진표를 짜고, 행사 당일에는 8강전 → 4강전 → 결승전을 진행했습니다.

당시에 필자는 꽤 강자였는데, 그 덕분에 동료들에게 좋은 평판을 얻는 데에도 적지 않은 영향을 줬다고 생각합니다. 무엇보다 인상 깊었던 건 행사장 분위기였습니다. 각 참여자는 저마다 소속이 있고 응원하는 사람이 있다 보니, 분위기가 마치 경마장처럼 뜨거워졌습니다.

그런데 이렇게 좋은 분위기의 코드배틀 세션이 2011년을 마지막으로 사라졌습니다. 2006년부터 이어지다가, 2011년을 끝으로 역사 속으로 사라진 셈입니다. 당시 기술 회사들이 오픈 컨퍼런스를 많이 열기 시작했고, 네오위즈도 내부 행사를 대신해 오픈 컨퍼런스로 방향을 잡으면서, 코드배틀을 오픈 컨퍼런스의 한 세션으로 운영하기엔 부담이 있다고 판단했던 것 같습니다.

코드배틀이 사라지고 몇 년이 지난 뒤, 문득 “이걸 아예 웹사이트로 만들어 두면 어떨까?”라는 생각이 들었습니다. 그래서 2017년에 코드배틀 사이트를 오픈했습니다.

활용 사례 1: 개발자 채용 코딩 테스트 도구#

필자는 과거에 개발자 채용 과정에서 코딩 테스트 도구로 코드배틀을 사용해 본 적이 있습니다. 당시 보편적인 코딩 테스트는 알고리즘 문제 풀이였는데, 필자에게는 그것이 너무 천편일률적으로 느껴졌고, 어딘가 IQ 테스트 같은 느낌도 있었습니다. 또한 대면 인터뷰에서 대화를 할 때, 문제 풀이만으로는 이야깃거리가 풍부하지 않다고 생각했습니다.

그래서 코드배틀을 시도해 봤는데, 코드배틀의 컨셉을 이해한 사람에게는 분명 장점이 드러났습니다. 다만 문제가 하나 있었는데, 꽤 많은 비율의 사람들이 컨셉 자체를 이해하지 못했다는 점입니다.

그럼에도 필자는 긍정적인 면이 더 크다고 판단해 한동안 계속 사용했습니다. 이후 이직을 하면서 더 이상 활용하지 않게 되었는데, 이직 전 회사에서는 의사결정권자였지만 이직 후 회사에서는 의사결정권자가 아니었고, 의견을 내긴 했지만 받아들여지지는 않았습니다.

활용 사례 2: SK플래닛 내부 개발자 행사(2021~2023)#

2021년에 SK플래닛 지인이 갑자기 예전 네오위즈 코드배틀 행사에 대해 문의를 해왔습니다. SK플래닛에서 내부 개발자 행사를 기획하는데, 코드배틀 세션을 넣고 싶다는 이야기였습니다. 당시 SK플래닛 CTO였던 분도 네오위즈 시절 인연이 있던 분이었고, 그때의 분위기를 다시 만들고 싶어 했습니다.

필자는 단박에 “콜”을 했고, 나름의 행사 기획서를 작성해 전달했습니다. 그리고 실제 행사에서 코드배틀 사이트를 사용했고, 그렇게 3년간(2021~2023) 행사를 이어갔습니다. 피드백을 봤을 때도 전반적으로 꽤 긍정적이어서 계속 이어지는 흐름이었지만, 회사의 상황이 바뀌면서 행사 자체가 없어지게 되었습니다.

2021년
코드배틀 - SK플래닛 개발자 행사 화면(2021)
2022년
코드배틀 - SK플래닛 개발자 행사 화면(2022)
2023년
코드배틀 - SK플래닛 개발자 행사 화면(2023)

현재 상태와 앞으로의 방향#

현재 코드배틀은 전체적인 디자인 / 기능 / 실행 흐름이 2017년에 MVP로 오픈했을 때와 거의 같습니다. 게임을 추가하거나, 행사 운영에 필요한 예외적인 기능들을 더한 것 외에는 큰 개선이 없었습니다.

하지만 Ted Factory를 기획하고 방향을 잡으면서, 필자는 코드배틀의 “운명”도 다시 고민하게 됐습니다. 코드배틀이 비즈니스적으로 가치가 있는가? 필자는 기술 회사들의 개발자 행사에서 활용될 가치는, SK플래닛 개발자 행사의 코드배틀 세션을 3년간 지원하면서 어느 정도 검증되었다고 생각합니다.

그래서 방향을 그 쪽으로 잡고 사이트를 개편한 뒤,

  • 먼저 현재 회사에서 개발자 행사에 코드배틀 세션을 추진해 보고,
  • 이후 다른 회사로도 사례를 확장해 나가는 방식으로 발전시켜 보려고 합니다.
© 2026 Ted Kim. All Rights Reserved.