0. 글 시작전에
이 글은 쉴드 치려는 글이 아님
약속했던 기간동안 기다려서 나온게 이정도 퀄리티의 nexon now(1시간전, 지연가능) 라는건
그냥 구색 맞추기 용이고 중간과정 공유도 없고 이 부분은 명백히 잘못한 부분임
이걸 쉴드를 어캐 침
만드는게 힘드는거랑 별개로 한다고 했는데 이제와서 ㅈㅅ 반쪼가리임 이러는게 ㅋㅋ

메이플의 OPEN API가 가지는 기술적인 문제점이 무엇이 있을수 있는지 확인해보는 글이고
기다리는 시간을 심심하지 않게, 또는 나온 결과물이 어떤 부분에서 허점이 있는지 알아보는 글임

1. 타 API와의 비교
일단 가장 많이 말이 나오는 던파와의 비교

던파의 타임라인 기능임
생각보다 세세한 기능이라기 보다는
"고확 레코드"와 유사한 기능? 처럼 보임
마치 "혼테일 누가 격파했다", "누가 로얄에서 뭐 뽑았다" 이런 기록들이 남고
조회 하는 횟수도 적음.
갱신 주기는 조건 발생시마다, 갱신 대상도 조건 발생한 대상임.
주기는 던파를 안해봐서 모르겠지만 하루에 한번 꼴로 있는 경우도 드문 것 같음.


Maple.gg에서 사용하는 공식 홈페이지의 "캐릭터 정보" 페이지임
갱신주기는 1주일에 한번, 갱신 대상은 전 캐릭터당 1회로 짐작해볼 수 있음.

이제 넥슨 게임 말고 다른 게임 open API에 대해 알아보자.
정말 익숙하고도 많은 통계 사이트가 존재하는 롤임.

못보던 규칙이 생겼음.
1초에 20회의 요청, 2분에 최대 100개의 요청의 제한이 걸려있음.
전적검색/게임내 데미지 지표/챔피언의 스탯/특정유저의 티어 같은걸 하나하나 받을때마다
카운트를 까서 횟수 제한을 두었음.

그런데 op.gg나 lol.ps같은 대형 사이트들은 저거보다 수많은 요청을 보낼거 아님?

사이트 개발자를 위한 계정(쉽게 표현하기 위해 계정이라 했음)이 따로 있음.
기본 제한량이 존재하고, 필요하다면 본사와의 협의를 통해 그 제한이 해제되는 형태임

lol.ps의 개발 초기에도 저 제한이나 공개되지 않은 데이터 때문에 사이트 개설할때 심사를 기다리는 과정을 거친 것으로 알고 있음.

왜 그냥 데이터를 다 까면 되는데 저렇게 구성했을까?
그것은 트래픽 때문임.

데이터를 아무리 서버에다가 몰아두었다고는 하지만
전세계에 모든 롤 정보를 잘 분할해서 모아두었다고는 해도
한 서버에 op.gg, lol.ps를 포함해서 일반인까지 계속 데이터 내놔 데이터 내놔를 외치면 어떻게 될까?

마치 DDos공격을 맞은거마냥 서버가 바보가 되고 만다.
그래서 많은 Open API들은 개발자 인증이나 계정등을 통해, 접근 가능한 회수를 제한해두었음.
open API뿐이 아니라 대부분의 데이터 저장/로드 서비스들이 그러함.

롤 요약
모든 데이터를 언제나 공개하면 서버가 넘치는 일에 폭사해버려서
데이터 접근 횟수에 제한을 걸어두었다.

2. 그러면 지금 NEXON NOW는 뭘까?
지금 NEXON NOW가 OPEN API라고 부르기엔 OPEN도 아니고 API라 하기에도 정말 별게 없음.
그냥 무사고 몇일 전광판인거임. (실제로는 미세먼지 현황판과 유사하다 볼 수 있겠네요)
이번 조작 논란이 일어난것도 아니 내가 사고난거 봤는데 왜 아직도 무사고임? 조작이네
ㅈㅅ 그거 전광판 오늘 바꿈 ㅇㅈㄹ 난거고 조작의심 받아도 해명하려면 지금처럼 로그를 까야함.

심지어 명큐/장큐는 개수 공개인데, 레큡/블큡/에디큡은 개수도 안깠음.
매출 관련 자료와 직결될 수 있기 때문에 가린것으로 보임.
이걸 왜 가렸을까 버는거 버는거지 탈세하는것도 아닌데
이거 가려서 계산기 때려보는 사람들도 나왔지 ㅋㅋ

3. 로그는 깔 수 있는데 왜 OPEN API는 안됨?
- 이건 이제 두가지 문제가 생기는데
하나는 넥슨입장에서는 혹시모를 개인정보와 보안 문제
나머지 하나는 위에서 그렇게 말한 트래픽 문제임

일단 개인정보와 보안면에서 보았을때
로그를 그냥 외부에 바로 접근할수 있게 노출해주면 누가 그걸 해킹해서 직접적으로 수정을 시도할 수도 있음.
혹시 모르는 일이고, 기업에선 당연히 해킹을 막아야 하겠지만 그런 위험성을 부담하고 싶지는 않을거임.
그리고 이번 공지사항에도 있듯이 누가 큐브를 돌렸다는 사항도 개인정보로 취급하는 것 같음.

이제 트래픽 면에서 보았을때
모든 유저가 큐브 기록을 언제나, 다 볼 수 있다면 서버에 가해지는 부하가 얼마나 될까?

단순히 유저가 직접 보는 것 뿐 아니라, 프로그램을 돌려서 내 운빨은 상위~~ % 하는 그것도 마찬가지
직접적으로 유저가 데이터에 접근하게 되면 지금까지 유저가 돌린 큐브정보를 모두 긁어서 받아오게 될거임.

당장 NEXON NOW에 공개된 수큡/장큡개수만 해도 3000만개가 넘는데 이 모든 기록을 언제, 얼마나 요청할지 모른다는건 서버를 반 조지겠다는 소리임. 결국 서버도 컴퓨터기 때문에 그 수많은 정보를 필요할때마다 꺼내서 뱉게 된다면 슈퍼컴퓨터 가져와도 글쎄다...
누가 악의적으로 API를 조질생각으로 요청을 잔뜩 쏜다는 선택지도 있고
여러모로 안정적이지 못함.
근데 그게 내부 DB랑 연결되어있으면? 그대로 유저들이 돌린 큐브 정보도 함께 증발할수 있지

그래서 현재 NEXON NOW는 내부DB를 토대로 1시간에 한번씩 복사본을 만들고, 그거마저도 OPEN형태가 아니게 공개한것으로 생각됨.
이럴거면 걍 API라 하지 말고 전광판이라 하지 그랬음?
한번에 롤처럼은 아니여도 체계를 좀 갖추고 구색을 갖춘채로 나올줄 알았음

4. 그래서 결론이 뭐임?
글 초반에도 말했듯이 위의 사항들을 고려했는지 안했는진 몰라도 반쪽만도 못한 결과물이 나왔음.
OPEN API가 있는데 공지사항에 로그 까서 조작아님 ㅋㅋ 해야하는 OPEN API가 있을까?
위의 상황에서 발생하는 기술적인 문제들을 해결해야 하기 때문에 당장에 NEXON NOW가 모든 정보를 공개하지 못하고 있다고 생각함.
매번 이런 글을 쓸때마다 붙이는 말이 있지만 개발자 입장에서 쓰는 이런 사유들이 유저입장에선 고려대상이 아님
외계인이라도 납치해서 잘 만들었으면 그걸 잘 쓰는거고, 그렇기 때문에 프로그래머들이 큰 돈을 받고 일 함.
다행히 조작 아니라고 로그를 까 뒤집어서 해명까지 하긴 했지만
분명히 의심의 눈초리를 거두기에는 아직도 많은 부분들이 부족함.
하루빨리 OPEN API라고 부를만한 결과물이 나오기를 바라고

이번 공지에 작성했듯이 개발되는 사항들중에 특이 사항이나 변경점같은게 있으면
꼭꼭 공지던, 개발자 노트던 어떤방식으로 외부에 노출해주었으면 좋겠음.
이번 "쇼케이스 기대해달라" 같은 기사 말고, 유저들에게 직접적으로 노출해주는 방식으로
이렇게 개발중에 있다! 이런거, 메이플도 기대해볼만 하지 않을까?