13주차 주간보고서
13주차 주간보고서
1. 개요 (Objective)
본 주차에는 개발이 완료된 AonBot 시스템을 실제 서비스 환경(Production)과 동일한 조건에서 테스트하는 통합 QA(Quality Assurance)를 진행함. 예기치 못한 사용자 입력(Edge Case)에 대한 예외 처리 로직을 보완하고, 캡스톤디자인 심사평가를 대비하여 웹 대시보드와 디스코드 봇 간의 실시간 연동을 증명할 시연 시나리오를 기획함.
2. 주요 수행 내용 (Task Accomplishments)
가. 엣지 케이스(Edge Case) 발굴 및 예외 처리
사용자의 비정상적인 조작으로 인해 서버(Linode)나 DB(MongoDB)에 오류가 발생하는 것을 방지하기 위한 방어 코드(Defensive Coding)를 추가함.
- 버튼 도배(Spamming) 방지: 사용자가 파티 참가 버튼이나 제보 버튼을 짧은 시간에 연속으로 클릭할 경우를 대비해, 디스코드 interaction 응답 지연(Rate Limit) 방어 로직 및 DB 중복 삽입 방지 처리.
- 비정상 데이터 입력 방지: 모달(Modal) 창에서 보스 컷 시간 입력 시, 미래의 시간이나 비정상적인 문자열이 입력되면 정규식(Regex) 검사를 통해 즉시 반려하고 에러 메시지(Ephemeral)를 반환하도록 수정함.
나. Socket.io 및 TTS 실시간 동기화 부하 테스트
- 테스트 환경: 웹 브라우저 탭을 여러 개 띄워 다수의 클라이언트가 웹 대시보드(/alerts)에 접속해 있는 상황을 모사함.
- 검증 결과: 스케줄러(boss-scheduler.js)가 알림 이벤트를 발생시켰을 때, 모든 클라이언트에 지연(Latency) 없이 동시에 Web Speech API(TTS)가 정상 작동하는 것을 확인하여 1코어 서버 리소스의 안정성을 증명함.
다. 최종 캡스톤디자인 시연(Demo) 시나리오 작성
심사위원이 직관적으로 시스템의 우수성을 파악할 수 있도록 ‘Discord ➡️ Web DB ➡️ Web TTS’로 이어지는 3단계 시나리오를 구성함.
- [디스코드 화면] 유저가 슬래시 명령어(/제보)와 모달을 통해 보스 처치 시간을 입력.
- [웹 대시보드 화면] 새로고침 없이 EJS 및 Socket.io를 통해 대시보드 화면의 보스 리젠 타이머가 실시간으로 갱신되는 모습 시연.
- [웹 알림 화면] 지정된 시간이 되었을 때, 서버를 거치지 않고 클라이언트 브라우저에서 스피커 아이콘과 함께 TTS 음성(“카이라가 곧 스폰됩니다”)이 출력되는 아키텍처 핵심 시연.
3. 기술적 성과 (Technical Achievements)

- 시스템 무결성 확보: 다양한 예외 상황에 대한 방어 로직을 구축하여, 실제 상용 서비스(게임 커뮤니티)에 투입되어도 무방한 수준의 서비스 안정성을 확보함.
- 아키텍처 검증 완료: 초기 기획했던 ‘디스코드-웹 통합 자동화 시스템’이 데이터 지연이나 누락 없이 완벽하게 상호작용(Interoperability)함을 실증함.