
안녕하세요! 1인 개발자 옥토입니다.
리그 오브 레전드(LoL)를 즐기시는 분들이라면 귀에 딱지가 앉도록 듣는 소리가 있죠.
"롤은 밴픽과 구도 싸움이다."
"라인전 상성을 모르면 이길 수가 없다."
네, 맞는 말입니다. 하지만 우리 같은 일반 게이머들이 수백 개에 달하는 챔피언들의 상성, 콤보, 6렙 타이밍, 로밍 대처법을 머릿속에 다 꿰차고 있는 건 불가능에 가깝습니다.
맨날 라인전에 들어가서 뇌절하며 솔로킬을 대여섯 번씩 헌납하고 나면, 억울한 마음에 허겁지겁 OP.GG 같은 전적 사이트를 켜보곤 합니다.
🔍 기존 전적 검색 사이트의 한계: "그래서 어쩌라고?"
전적 사이트를 켜면 이런 데이터들이 나옵니다.
- 올라프 vs 모데카이저 승률: 52.1%
- 상대하기 힘든 챔피언 순위: 15위
근데… 이걸 안다고 해서 당장 내 라인전 실력이 늘어날까요? 전혀 아닙니다.
정작 우리에게 필요한 건 "그래서 내가 라인전에서 1레벨엔 도끼를 어떻게 던져야 하고, 모데카이저가 E를 썼을 땐 어떻게 받아쳐야 하는지"와 같은 구체적인 플레이 가이드라인입니다.
"아, 내가 게임할 때 옆에서 밴픽부터 라인전 구도까지 1대1 코칭해 주는 챌린저 코치가 있으면 얼마나 좋을까?"
없어서 제가 직접 만들기로 했습니다. 이름하여 AI 롤 코치 봇, '옥토봇(Octobot)'입니다.
🛠️ 첫걸음: 자바(Java)와 디스코드의 만남
가장 먼저 친숙한 개발 도구들을 꺼내 들었습니다.
- 언어: Java 17
- 라이브러리: JDA (Java Discord API)
- AI 엔진: OpenAI API
처음 구상은 간단했습니다. 디스코드에서 봇을 호출하며 질문을 던지면, 봇이 뒤에서 OpenAI API와 통신하고, 필요하다면 실시간 통계 데이터를 긁어와 분석 리포트를 디스코드 임베드 박스로 쏴주는 구조였습니다.
// Java JDA를 이용한 초기 디스코드 리스너 구현 예시
public class MessageListener extends ListenerAdapter {
@Override
public void onMessageReceived(MessageReceivedEvent event) {
if (event.getAuthor().isBot()) return;
String message = event.getMessage().getContentRaw();
if (message.startsWith("@옥토봇")) {
// GPT API를 호출하고 분석 답변을 받아오는 로직
String response = aiService.askGpt(message);
event.getChannel().sendMessage(response).queue();
}
}
}
퇴근 후 며칠 동안 밤을 새우며 뚝딱뚝딱 기능들을 추가했습니다.
단순히 "템트리 추천"을 넘어 상대 조합에 따른 챔피언 추천 순위, 1대1 매치업 시 레벨별 콤보와 스킬북 요약 등 롤에 진심인 게이머들이 정말 필요로 하는 답변 형식을 프롬프트 엔지니어링으로 정교하게 세팅했습니다.
🔥 친구들 디코방에서의 뜨거운 피드백, 그리고 욕심
완성된 자바 봇을 저와 친구들이 함께 쓰는 롤 전용 디스코드 방에 초대했습니다.
그리고 다 같이 큐를 잡으며 시험 삼아 봇을 호출해 보았죠.
"상대 탑 레넥톤, 정글 니달리, 미드 트페 나왔어. 나 미드 챔피언 추천해줘"
그러자 옥토봇이 몇 초 뒤에 아래와 같은 리포트를 깔끔하게 뿜어냈습니다.

친구들의 반응은 그야말로 대폭발이었습니다.
"와, 이거 진짜 코치한테 피드백받는 느낌인데?"
"따로 창 안 띄우고 디코로 물어보니까 밴픽할 때 엄청 편하다!"
이 경험을 SNS에 가볍게 올렸더니,
다른 롤 게이머분들과 개발자분들께 본인 디코방에도 쓰고 싶다며 문의 DM이 오기 시작했습니다.
🚧 하지만 곧바로 마주한 장벽들
많은 분들이 쓰고 싶어 하시니 정식 배포를 해보고 싶다는 욕심이 생겼습니다. 하지만 현실적인 기술 장벽들이 발목을 잡았습니다.
- 지독하게 무거운 배포 환경 (Java의 한계)
일반 유저들이 이 프로그램을 받아 실행하려면 로컬 PC에 JRE(자바 실행 환경)를 깔고, 환경 변수를 세팅하고, JAR 파일을 실행해야 했습니다. 비개발자 유저들에게는 그야말로 통곡의 벽이었습니다. - 응답 레이턴시(지연 시간) 문제
동시에 여러 개의 도구(Tool Calling)를 조율하며 OpenAI와 통신하다 보니, 답변이 나오기까지 병목이 발생했습니다. 밴픽 시간은 짧은데 대답이 늦게 나오는 상황이 발생했습니다.
"안 되겠다. 일반 사용자들이 클릭 한 번으로 실행할 수 있는 가벼운 파일로 만들고, 속도도 끌어올리자."
결국 저는 기존의 자바 코드를 전부 과감히 폐기하고, Go(Golang) 언어로의 전면 마이그레이션과 네트워크 병렬 처리 최적화라는 대공사를 결심하게 되었습니다.
다음 편 예고
과연 저는 자바 봇을 어떻게 버리고 Go언어로 이사했을까요?
그리고 여러 개의 AI API 호출을 병렬로 처리해 속도를 극적으로 단축시킨 기술적 비결은 무엇일까요?
[디스코드 롤 코칭 봇 개발 #2] 느려터진 자바 봇을 버리고 Go언어로 속도 4배 끌어올리기 편에서 전면 마이그레이션과 성능 최적화 과정을 상세히 공유해 드릴게요!
💬 아이디어는 있지만 디스코드 봇이나 AI 연동 개발에 어려움을 겪고 계신가요?
단순 기능 구현을 넘어, 실제 유저가 편하게 쓸 수 있는 고성능 봇 설계와 API 최적화까지 함께 고민해 드립니다.
'빌드로그 > 자동화봇 개발' 카테고리의 다른 글
| [디스코드 롤 코칭 봇 개발 #2] 느려터진 자바 봇을 버리고 Go언어로 속도 4배 끌어올리기 (0) | 2026.07.09 |
|---|