- 개요
데이터 분석을 하려면 데이터 수집을 해야겠죠.
감사하게도 메이플스토리 유저 데이터는 넥슨 Open API로 다운로드 받을 수 있습니다.
- 넥슨 Open API로 데이터 다운로드 하기
넥슨 Open API의 주목적은 애플리케이션 개발 지원이지만 저는 데이터 분석을 위해 넥슨 Open API로 데이터를 다운로드 받았습니다.
그 과정을 알아봅시다.
1. API key 발급
승인된 API key로 데이터 요청을 할 수 있으므로 가장 먼저 할 일은 API key를 발급 받는 것입니다.
넥슨 Open API 홈페이지에서 가입을 한 뒤 애플리케이션을 등록합니다.
3개의 애플리케이션을 등록할 수 있고, 개발 단계의 API key로는 총 1000회 데이터 요청이 가능합니다.
API key가 총 3개니까 3000회 데이터 요청을 할 수 있습니다.

2. 다운로드 받을 수 있는 데이터 확인
넥슨 Open API라는 것은 아마 넥슨 서버에서 돌아가는 데이터를 전송하는 프로그램일겁니다.
이 프로그램은 우리가 요청한 조건에 따라 데이터를 우리에게 보내줍니다.
그 조건과 다운로드 받을 수 있는 데이터는 이 프로그램을 개발한 사람이 정한 것입니다.
그러므로 먼저 어떤 데이터를 다운로드 받을 수 있는지 확인해야 합니다.
먼저 상단 바의 게임 탭에 마우스를 올리면 넥슨 게임 종류가 뜹니다.
저는 메이플스토리 데이터 분석을 할거니까 메이플스토리를 누릅시다.

메이플스토리 랭킹 정보 조회에서는 랭킹순으로 유저 정보를 조회할 있습니다.
/maplestory/v1/ranking/overall 주소를 기반으로 Parameters로 데이터를 조회하여 다운로드 받는 방식입니다.
Parameters의 필수(required) 변수인 API key와 date(날짜)를 지정하여 API 요청을 하면 데이터를 받을 수 있습니다(저 2개만 설정하면 API 호출횟수 제한 때문에 오류가 납니다).

전 챌린저스 월드 분석이 목표이므로 world_name은 챌린저스(챌린저스 1 서버 데이터만 받음)로 설정합니다.
그리고 page 변수를 설정하면 됩니다.
그럼 API 요청 데이터 다운로드를 하는 파이썬 코드를 봅시다.
import requests
# 랭킹조회 주소
urlString = 'https://open.api.nexon.com/maplestory/v1/ranking/overall'
# header에는 api-key를 넣어줌
headers = {
'x-nxopen-api-key': f'{API_key}'
}
"""
parameters 설명
서버와 날짜, 페이지를 지정
page를 1로 지정하면 1위부터 200위까지 자료를 얻을 수 있음
page마다 200등 단위로 유저 정보를 얻음
"""
parameters = {
'world_name': '챌린저스',
'date': '2024-12-20',
'page':1
}
response = requests.get(urlString, headers=headers, params=parameters)
jsonArr = response.json()
"""
print(jsonArr) 결과의 첫부분
{'ranking': [{'date': '2024-12-20',
'world_name': '챌린저스',
'ranking': 1,
'character_name': '찍먹여울',
'character_level': 261,
'character_exp': 1308020315039,
'class_name': '기사단',
'sub_class_name': '나이트워커',
'character_popularity': 0,
'character_guildname': '스타'},
"""
jsonArr의 첫 번째 값을 보면 2024년 12월 20일 챌린저스 1 월드의 1등 유저 정보가 나오고, 마지막에는 200등 유저 정보가 나옵니다.
유저 정보로는 캐릭터 이름, 레벨, 경험치, 직업, 인기도, 길드가 있습니다.
3. API 요청 한계와 데이터의 저장
API 요청의 최대횟수는 하루에 3000번이고, 1번 요청으로 200명의 유저 정보를 다운로드 받습니다.
5만 등 유저정보까지 받는다고 치면 250번의 API 요청이 필요하니까 하루에 12일치 유저 데이터를 받을 수 있죠.
참고로 한 API key당 1000번이니까 4일치 다운로드를 받은 뒤 API key를 교체해주어야 합니다.
그런데 전 유저가 언제 리프할 지 알고 싶은 것이라 챌린저스 월드의 기간인 2024년 12월 19일부터 2025년 5월 22일까지의 데이터가 필요합니다.
총 기간이 150일 즈음되니 13일동안 API 요청을 해야 전 기간의 1등 ~ 5만등 유저 데이터를 다운로드 받을 수 있습니다.
다른 사람에게 API key를 빌리면 좀 더 빨리 다운로드 받겠지만 전 그냥 하루하루 다운로드 받았습니다.
꾸준히 다운로드 받은 게 아니어서 2024년 12월부터 2025년 5월까지 데이터를 수집했네요.
전 날짜별로 1등부터 15만등까지 유저 정보를 csv 파일로 저장했습니다.
API 요청에서 날짜 입력시 주의할 사항으로 챌린저스 월드는 2024년 12월 19일에 열렸지만 유저 정보는 12월 20일부터 조회 가능합니다.
최종 목표는 리프 유저 분석이지만 다음 포스트에서는 데이터에 익숙해질겸 특정 날의 직업 분포를 확인해보겠습니다.
'프로젝트 > 메이플스토리 챌린저스 월드 시즌 1 분석' 카테고리의 다른 글
챌린저스 월드 시즌 1 데이터 분석: 3. 날짜, 레벨별 유저수 확인하기 (1) | 2025.06.07 |
---|---|
챌린저스 월드 시즌 1 데이터 분석: 2. 직업 점유율 시각화 (0) | 2025.05.30 |
챌린저스 월드 시즌 1 데이터 분석: 0. 프롤로그 (0) | 2025.05.27 |