프로젝트 개발 동기 및 개요
평소에 즐겨하던 온라인 게임인 리그 오브 레전드를 플레이 할 때면, 가끔 '이사람 이전 게임에서 만났던 것 같은데 아닌가?..' 라고 생각하게되는 경우가 종종 있었습니다. 마침 라이엇게임즈의 API를 일반인도 사용할 수 있다는 말을 듣고 비교적 가벼운 Node.js를 사용하여 게임 전적을 검색하는 웹을 만들어보고자 하였으나, 비슷한 웹앱이 이미 많이 있어 게임 진행 시 현재 진행중인 게임의 유저들 중 N게임 전까지 같이 매칭된 인원이 있을 시 해당 인원만 뽑아 매칭 이력을 보여주는 웹 어플리케이션을 제작해보았습니다.
프로젝트 스크린샷
RiotAPI
RiotAPI는 유효기간이 1일인 임시 개발용 키와 프로젝트를 RiotGames로 검토를 보내 발급받는 평생사용이 가능한 API-KEY가 있습니다. 현재 RiotGames에서 검토를 완료하고 비상업
개인 프로젝트용 API-KEY를 발급받아 사용중입니다.
RiotAPI는 GET형식으로 URL에 API-KEY와 같이 요청을 하면 JSON형태로 데이터가 반환됩니다.
프로젝트 코드 일부
깃허브 저장소 주소로 대체합니다. [Click Me!]
프로젝트 후기
기존에는 Node.js로 어드민 페이지나 작업이 수행되는 데 대기시간이 거의 없는 어플리케이션을 주로 제작했었습니다.
그러다보니 타사API를 이용하여 데이터를 받아온 후 처리를 해야하는데, 데이터를 받아오는 데 시간이 소요되는 현재 프로젝트같은 작업의 경우 최대한 시간적으로 손해 없이
동기식으로 처리되도록 코드를 작성하는것이 생각보다 많은 공부가 되었습니다.
Node.js가 싱글스레드 방식이다보니 구동이나 재시작의 속도 등 편의성과 무게는 가벼워서 좋았지만 Java같은 언어로 알고리즘을 작성할 때와는 다르게 시간순서를 보장받도록
작성해야 하는 알고리즘은 동기식으로 진행되도록 설계해야 한다는 부분에서 흥미로워서 테스트 케이스도 많이 작성하며 많은 공부가 되었습니다.
다른 기발한 아이디어가 있으신가요?
신입 개발자로써 많은 것을 배우고 제작해보고싶습니다. 현재 프로젝트에 추가되었으면 하는 기능이나, 완전히 새 프로젝트에 대한 아이디어가 있으시면 저에게 연락주시면 감사하겠습니다.