
들어가며
오늘은 어제 마무리했던 Phase 1(콘솔 버전)을 다시 돌아보며 다음 단계로 나아가기 위한 준비를 했다.
Phase 2(디스코드 봇 구현)를 앞두고 보니 설렘도 있었지만, 관련해서 아는 지식이 전혀 없는 상태라 "일주일도 안 남은 시간 동안 정말 해낼 수 있을까?"라는 막막함도 동시에 밀려왔다.
그래서 기획서를 다시 정리하며 Phase 2의 목표를 더 작고 구체적인 단위로 세분화했다.
그 과정에서 잘못된 방향으로 나아가지 않도록 나 자신을 한 번 더 다잡을 수 있었다.
또 막연한 불안감을 줄이기 위해 디스코드 봇을 어떻게 구현할 수 있을지 공식 문서와 여러 블로그를 참고하며 전체적인 흐름을 머릿속에 그려보려 했다.
관련 자료가 많지 않아 처음엔 막막했지만, 오히려 그렇기 때문에 더 ‘내 힘으로 개척해보자’는 도전 의지가 강해졌다.
어렵고 막막하다고 느끼는 만큼 이번 미션이 나에게 진짜 도전이라는 생각이 들었고 많이 성장할 수 있을 것 같아, 오픈 미션 주제를 잘 선정했다고 느꼈다.
오늘 한 일
- 기획서 내용 보완 및 Phase 2 목표 구체화
- 디스코드 봇 구현 방법 찾아보기 (JDA 기반으로 가능한 흐름 검토)
- Gradle에 JDA 의존성 추가
- 디스코드 개발자 포털에서 새 봇 생성 및 기본 설정 완료
📌 Phase 2로 넘어가기 전 불안과 목표를 다시 정리하다
콘솔 환경에서의 '게임 로직 구현&테스트 코드 작성&리팩토링' 까지 목표한 바를 마무리하고 디스코드 봇을 만들 차례가 왔다!
본격적으로 Phase 2(디스코드 봇 개발)에 들어가기 전에, 기획서를 다시 정리하며 지금까지의 과정을 되돌아보는 시간을 가졌다.
그 이유는 마음 한구석에서 계속 걸리는 감정이 있었기 때문이다.
“내가 놓친 부분은 없을까?”
“이대로 Phase 2로 넘어가도 괜찮을까?”
"올바른 방향으로 나아가고 있는걸까?"
Phase 1 목표를 이뤘기 때문에, 명확하게 리팩토링이 필요한 부분이 있었던 건 아니지만 자꾸만 코드를 다시 되돌아보게 되었다.
왜 그럴까?하고 꼬리에 꼬리를 물고 생각해 본 결과,
앞으로 맞닥뜨릴 낯선 영역에 대한 불안, 아직 준비가 덜 되었다는 감각, 한 번도 경험해보지 않은 기술에 뛰어들기 직전의 막막함에 의해
새로운 도전을 하기 전에 ‘조금 더 다듬으면 다음 단계가 수월해지지 않을까?’ 싶은 생각이 계속 들었던 것 같다.
결국 문제는 코드가 아니라 나의 감정이었다.
더 손보고 싶은 충동은 ‘필요한 리팩토링’이라기보다는 낯선 환경에 뛰어들기 직전의 두려움에서 비롯된 것이라는 걸 깨달았다.
이 사실을 인정하고 나니, 오히려 마음이 선명해졌다.
완벽하게 준비된 뒤에 움직이려는 마음을 내려놓고, 지금 가진 만큼에서 시작해보자는 결론을 내렸다.
시행착오 속에서 방향이 잡히고, 부딪혀야만 비로소 보이는 지점도 있으니까 말이다.
빠르게 실패하고 빠르게 회복하자!!
그래서 다시금 “내가 왜 이 도전을 하는가?”, “도전을 통해 무엇을 얻고 싶은가?”를 기획서에 정리하며
Phase 2의 목표를 구체적으로 세워 나갈 수 있었다.
▪️ 디스코드 봇 개발, 나는 무엇을 얻고 싶은가
Phase2의 목표는 “디스코드 봇을 만든다”가 끝이 아니다.
내가 만든 게임을 실제 유저들이 디스코드에서 플레이할 수 있는 형태로 구현하고,
그 과정에서 Phase 1에서 만든 코드가 유지보수성과 확장성 측면에서 좋은 구조인지 다시 점검하는 것이 이번 단계의 핵심이다.
즉, 이번 Phase는 디스코드 봇을 만드는 기술적 목표와 더불어,
내가 생각하는 ‘유지보수 하기 좋은 코드’의 기준을 다시 정립하고 확장하는 과정이기도 하다.
막막함과 두려움을 회피하지 않고, 그걸 글과 코드로 남기며
내가 어떻게 문제를 정의하고 해결해 나가는지 열심히 기록해보자!
📌 디스코드 봇 환경 세팅하기
▪️ Gradle에 JDA 의존성 추가
디스코드 봇 개발을 위해 Java Discord API (JDA)를 사용하기로 결정했다.
프리코스 기간동안 나는 자바 기반으로 객체지향 설계 방식에 집중해왔다.
Phase 1 기간 동안 구축한 코드 또한 자바로 이루어져 있기 때문에, 코드가 유지보수성과 확장성 측면에서 좋은 구조인지 다시 점검하기 위해 완전히 새로운 언어를 배우는 것보다 내가 이미 쌓아온 기반을 활용해 더 깊게 파고드는 방식이 훨씬 자연스럽다고 판단했다.
▪️ 봇 생성하기

디스코드 봇 구현을 어떻게 하는지 흐름을 파악하기 위해 여러 자료를 찾아보았지만,,
대부분이 JavaScript나 Python 기반의 예제였고, 내용 또한 음악 재생, 랜덤 메시지 출력 등 간단한 기능 위주의 봇들이었다.
내가 만들고 싶은 게임과 비슷한 주제로 봇을 만든 자료는 거의 없었다.
이 사실이 처음엔 꽤 막막하게 느껴졌다.
하지만 한편으로는, 자료가 거의 없다는 사실이 오히려 나만의 방식으로 개척해볼 수 있는 기회처럼 느껴지기도 했다.
이미 잘 정리된 가이드가 많았다면 그 흐름을 자연스럽게 따라갔을지도 모르지만, 봇에 대해 처음 기획부터 코드 작성까지 모든 선택을 온전히 내 판단으로 만들어갈 수 있다는 점이 나를 더 끌어당겼다.
누군가 이미 만들어둔 가이드를 그대로 따라가는 것이 아니라,
내가 생각한 아이디어를 100% 반영해 완전히 나만의 방식으로 구현해볼 수 있다는 점이 오히려 더 특별하게 느껴졌고, 그만큼 도전 의지도 강하게 자극되었다.
따라서 “자료가 많지 않다 = 봇을 자유롭게 설계할 수 있다”라는 긍정적인 마음으로, 내가 원하는 흐름대로 봇을 구현해보기로 했다.
그래도 봇을 생성하는 방법 자체는 간단해서 자료가 많이 있었다.
아래 두 문서를 참고하며 봇을 생성할 수 있었다.
https://scvtwo.tistory.com/196
디스코드 봇 만들기(1) - 봇생성
안녕하세요. 디스코드 봇을 만드는 법에 대해 알아보도록 하겠습니다. 일단 디스코드 개발자 포털로 들어갑니다. https://discord.com/developers/applications Discord Developer Portal — API Docs for Bots and Developers
scvtwo.tistory.com
https://jda.wiki/using-jda/getting-started/
Getting Started - JDA Wiki
Tip It is often better to load your token in from an external file or environment variable, especially if you plan on publishing the source code.
jda.wiki

다행히 기본적인 API 흐름과 사용 예시는 JDA Wiki에 잘 정리되어 있어 기초를 다지는 데 큰 도움이 될 것 같다.
이를 기반으로 앞으로의 구현은 내가 직접 기획하고 실험하면서 만들어나가는 과정이 될 것 같아 설레고, 더 배울 게 많다는 느낌이 든다!
마치며

오늘은 두려움을 마주했지만, 멈추지 않고 앞으로 나아간 날이었다.
막막함과 불안은 여전히 남아 있지만, 이제는 그 감정 자체를 부정적으로 보지 않고
정말 잘하고 싶은 마음을 기반으로 새로운 영역에 진심으로 도전하고 있다는 증거로 받아들일 수 있게 되었다.
Phase 2는 이제 시작이다.
두려움과 설렘을 모두 안고, 도전해보자!
부딪히며 배우고, 실패하면 다시 고쳐 나가며 어제의 나보다 성장해보도록 하자!
'Project > Robo77' 카테고리의 다른 글
| 로보 77 구현기 8일 차 - 동작 우선 코드, 객체지향으로 CPR 하기 (0) | 2025.11.14 |
|---|---|
| 로보 77 구현기 7일 차 - 빈 깡통이었던 디스코드 봇에 생명 불어넣기 (0) | 2025.11.13 |
| 로보 77 구현기 2일 차 - 전략 패턴과 씨름한 하루 (0) | 2025.11.08 |
| 로보 77 구현기 1일 차 - 예상보다 험난했던 프로젝트 세팅과 카드 제출 구현 (0) | 2025.11.07 |
| 로보 77 구현기 0일 차 - 왜 이 도전을 하는가? (0) | 2025.11.06 |