현재 친구들과 저녁 즈음엔 배틀그라운드를 많이 하고 있다.
그러다 보니 dak.gg와 op.gg를 자주 사용하고 있다.
양쪽 다 사용해보니 "이런 정보도 보여줬으면 좋겠는데...", "여긴 이게 없네?", "오 여긴 이것도 있네?" 등등의 생각이 들었었다.
그래서 아 그럼 내가 한 번 내 입맛에 맞게 만들어보면 어떨까? 하는 생각으로 시작했다.
기술 스택은 Vite, Vue3(compositionAPI), TypeScript, Pinia, Element+ 로 시작했고
여기서 API 요청에 사용할 키도 발급받았다. (기본적으로 1분에 10회 정도만 요청할 수 있는 키를 발급받는다.)
구현하기 전에 미리 발급받은 키를 이용해 홈페이지 자체에서 api를 요청하고 결과를 미리 받아볼 수 있다.
그리고 구현은 생각처럼 쉽진 않았다.
공식문서를 조금 훑어본 후 구글에 조금 검색해 봤는데
대부분의 글들은 파이썬을 이용한 예제가 많았고, 내용 자체도 공식 문서에서 기본적으로 알려주는 부분을 한글화 한 내용들이 대부분이 라 크게 도움이 되는 글들은 없었다..
하나부터 열까지 다 공식문서만을 보고 할 수밖에 없었다.
그리고 가장 난감했던 부분은 api가 생각 이상으로 정말 세세하게 쪼개져 있었다.
예를 들어 내 카카오 서버 계정의 스탯을 검색한다고 하면 펍지 api에 플랫폼과 닉네임만 가지고 사용자 스탯을 검색을 할 수가 없다.
플랫폼과 닉네임을 이용해 api를 요청해서 해당 닉네임의 아이디와 다른 정보들을 가져올 수 있다.
이게 플랫폼 + 닉네임 요청에 대한 결과이다.
여기 정보에는 닉네임의 아이디뿐만 아니라 최근 매치에 대한 매치 아이디들이 들어있다.
(이것도 다 따로 하나하나 요청해서 매치의 대한 정보를 가져와야 한다.)
그럼 이 아이디를 이용해서 플레이어에 대한 api를 요청할 때 사용해야 한다.
이후, 플랫폼에서 시즌 정보가 담긴 배열을 먼저 받아와야 한다. (현재 시즌만 가져오는 api가 없다)
이게 시즌 정보 api 요청에 대한 결과이고 맨 마지막 2개 부분인데
지금 배그의 현 시즌이 20이길래 맨 마지막 "~~console-20"이라고 되어 있길래 아무 생각 없이 저게 현 시즌이겠네 하고 저 시즌 아이디를 사용했고, 당연하게도 계속 사용자 스탯 api의 결과가 맞지 않았다.
20인데 왜 isCurrentSeason이 false지?라는 생각과 안에 내용을 아무리 찾아봐도 현재 시즌처럼 보이는 아이디 값들이 없었다.
많은 시간이 지났고 그러다 찾았다.
내가 지금까지 보던 console의 의미가 콘솔 배그라는 것을...
그리고 isCurrentSeason 속성이 true인 것을 찾아보기 위해 하나하나 봐보니 하나가 있었다.
도대체 왜 2018-20인지 궁금했다.
이제 닉네임의 아이디 값도 찾았고, 현재 시즌 아이디 값도 찾았으니 해당 닉네임의 스탯을 가져올 수 있다.
https://api.pubg.com/shards/${플랫폼}/players/${플레이어 아이디}/seasons/${시즌 아이디}/ranked
이렇게 요청을 하면 해당 시즌의 랭크 스탯을 가져올 수 있고,
https://api.pubg.com/shards/${플랫폼}/players/${플레이어 아이디}/seasons/${시즌 아이디}
이렇게 요청하면 일반 스탯을 가져올 수 있다.
스탯 정보 하나 가져오는데 정말 많은 시간을 사용했는데
문서를 꼼꼼히 안 읽어본 죄니 어쩔 수 없고... 이제 하나하나 천천히 만들어볼 생각이다.
https://github.com/smw0807/pubg_your.stat
작업 중인 건 여기에 계속 올리고 있다.
우선은 검색과 결과를 보여주는 걸 내 입맛에 맞게 만들어서 보여줄 생각이고, 이게 완성되면 추가적인 기능들을 넣어볼까 생각 중이다.
로그인을 해서 그룹을 만들고 그룹 내 유저들이 모여서 자기들끼리 의사소통 같은 걸 하거나, 몇몇 유용한 기능들을 넣을 수 있으면 만들어볼 생각이다.
아직 타입스크립트를 이용해 프로젝트를 만들어본 적이 없기도 하고, Vue3도 아직은 제대로 써본 적이 없어 나름의 도전이기도 해서 언제 완성할지는 솔직히 모르겠지만 꼭 완성은 시켜볼 생각이다.
'ETC' 카테고리의 다른 글
2022년을 마치며 (4) | 2022.12.31 |
---|---|
NHN FORWARD 22 후기 (2) | 2022.11.24 |
주절주절... (2) | 2022.10.18 |
[책] 리팩터링 2판 후기 (0) | 2022.08.08 |
원노트와 노션 (0) | 2022.07.27 |