메이플스토리 API 연동을 통한 마스터리북 시뮬레이터 개발: GMS/KMS 데이터 하이브리드 접근 및 AWS Lambda 활용

🤖 AI 추천

외부 API 연동 시 데이터 불일치 문제 해결 경험을 쌓고자 하는 백엔드 개발자, 게임 개발자, 또는 복잡한 데이터 파이프라인 구축에 관심 있는 시니어 개발자에게 유용합니다. 특히, 서버리스 아키텍처와 Python을 활용한 데이터 처리 경험을 공유하므로 관련 경험이 부족한 개발자에게도 좋은 학습 자료가 될 수 있습니다.

🔖 주요 키워드

메이플스토리 API 연동을 통한 마스터리북 시뮬레이터 개발: GMS/KMS 데이터 하이브리드 접근 및 AWS Lambda 활용

핵심 기술

이 콘텐츠는 메이플스토리 게임 데이터를 활용하여 마스터리북 시뮬레이터 기능을 개발하는 과정에서 직면한 GMS(Global MapleStory)와 KMS(Korean MapleStory) API의 데이터 불일치 문제를 해결하기 위한 창의적인 하이브리드 접근법과 AWS Lambda를 활용한 효율적인 데이터 파이프라인 구축 방안을 다룹니다.

기술적 세부사항

  • 문제 정의: 메이플랜드(Mapleland) 게임의 마스터리북 시뮬레이터 개발 시, 한국어 이름과 게임 호환성을 동시에 만족하는 데이터 확보의 필요성.
  • API 탐색 및 문제 발견: maplestory.io API를 발견했으나, GMS 버전은 메이플랜드와 호환되지만 영문명을 제공하고, KMS 버전은 한글명을 제공하지만 버전 차이로 인한 호환성 문제가 존재.
  • 하이브리드 접근법 설계:
    • GMS 62버전에서 메이플랜드 호환 아이템 목록 확인.
    • KMS 284버전에서 동일한 아이템 ID로 한국어 이름 추출.
    • 핵심 가정: 기본 아이템 ID는 GMS와 KMS 간에 동일하다는 점을 검증.
  • ID 일관성 검증: 임의의 마스터리북 ID(2290000 대역)로 GMS 및 KMS API 테스트 결과, ID가 동일함을 확인.
  • 마스터리북 ID 범위 탐색: 2290000부터 순차적으로 증가시키며 404 응답 지점까지 확인하여 2290000부터 2290096까지(총 97개)가 마스터리북 범위임을 확정.
  • 커뮤니티 활용: maplestory.io 개발자 오픈채팅방 참여를 통해 GMS/KMS 아이템 ID 체계의 버전 간 호환성에 대한 조언을 얻고 개발 방향 확신.
  • 시스템 아키텍처 설계: maplestory.io API → AWS Lambda → MySQL → 메랜샵 백엔드 API 구조 채택.
  • AWS Lambda 활용:
    • Python 언어 선택: 경량성, 빠른 콜드 스타트, 간결한 문법 등 Lambda 환경에 적합.
    • Lambda 함수 설계: 다양한 이벤트(item_ids, single_id 등)로 호출 가능하도록 유연하게 구현.
    • 데이터 추출 로직: extract_mastery_data 함수로 아이템 ID, 한국어 이름, 설명, 아이콘 URL 등 추출.
    • 마스터리 타입 자동 추출: 정규 표현식(re.search)을 사용하여 이름에서 '20' 또는 '30' 자동 판별.
    • DB 연결 및 민감 정보 관리: 환경 변수(os.environ.get) 활용 및 pymysql 라이브러리 사용.
  • 데이터 저장: MySQL 데이터베이스에 INSERT ON DUPLICATE KEY UPDATE (UPSERT) 방식을 사용하여 중복 처리 및 데이터 안정성 확보.
  • 로깅 및 모니터링: 구조화된 로깅 시스템 구축 및 CloudWatch Events 연동 고려.

개발 임팩트

  • 하나의 API로 해결되지 않는 문제를 두 개의 API를 조합하고 ID의 일관성을 활용하여 해결하는 창의적인 데이터 수집 및 통합 능력을 입증했습니다.
  • AWS Lambda를 활용하여 인프라 관리 부담을 최소화하고 비용 효율적인 서버리스 데이터 파이프라인을 구축했습니다.
  • 자동화된 데이터 수집 및 분류 시스템 구축으로 마스터리북 데이터의 정확성과 완성도를 높였습니다.
  • 외부 API 활용 시 발생할 수 있는 제약사항에 대한 극복 방안과 커뮤니티 활용의 중요성을 보여줍니다.

커뮤니티 반응

  • maplestory.io 개발자 오픈채팅방 참여를 통해 GMS/KMS 아이템 ID 체계의 버전 간 호환성에 대한 개발자들의 검증된 조언을 얻어 프로젝트의 방향성을 확신하게 되었습니다.

📚 관련 자료