다운로드 링크가 정상적으로 보이지 않는 경우 애드블록을 해제해 주세요.
본문 바로가기
  • 혜음우리말화연구소
잡담/사이트개발

IR 보기 기능 추가(2024-05-01)

by WindowsTiger 2024. 5. 1.

전에 사이트 개발 이제 좀 쉬겠다고 했는데, 딱 하나 기능추가를 했다.

 

IR사이트로 이동하게 하는 기능인데, 단순히 파일 올릴때 계산한 해시값으로 URL만 만들어 하이퍼링크를 걸면 되기에 간단한 작업이었다.

예를들어 해시가 47831657a78a8383a43130e4d1b226fb 라면 http://example.com?md5=47831657a78a8383a43130e4d1b226fb 이런식으로 링크를 만들어 걸어주면 된다.

 

다만 Qwilight IR의 경우 이런식으로 링크를 만들수가 없었다. 

sha512 해시값을 이용해 랭킹 정보를 json으로 불러오는 API는 있긴 하지만, 정적인 다른 사이트와는 다르게 프론트 엔드에서 동적으로 호출?하여 동작하므로 개발자가 페이지를 안만들어놨다... (개발자가 N사 프론트엔드 개발자라고 하는데 그래서 그런가?)

 

그래서 나도 프론트쪽에서 get요청으로 얻어와 가공해 출력할려고 했지만, CORS때문에 구현은 못하고, 어차피 구현하려면 프록시 서버 거쳐야 하는데, 그냥 백앤드에서 get으로 얻어오고 직접 가공해서 내 사이트에서 뿌리도록 구현을 했다.

 

다만 랭킹을 보여주는 API만 있고, 정작 곡정보를 보여주는 API는 없어서 (검색결과 API에 같이 나오는데, 이 검색 API가 성능이 엄청 안좋다!) 그냥 곡 정보는 내 사이트의 DB에 저장된걸 보여주도록 했다.

 

겸사 유저들이 투표를 해서 따로 만드는 난이도 표라는게 있다. 일종의 비공식 난이도 표인데, 얘내들은 보통 github에서 왭페이지로 올려놓고, 또한 특정한 json양식이 있으므로, 프론트에서 get요청을 해서 긁어와서 일치하는 해시값이 있으면, 같이 표시하도록 했다.

 

https://github.com/zkldi/bms-table-loader

 

GitHub - zkldi/bms-table-loader: Small Library for loading/parsing BMS Tables in TypeScript

Small Library for loading/parsing BMS Tables in TypeScript - zkldi/bms-table-loader

github.com

구문분석에는 이 프로젝트를 이용했는데 타입스크립트이길래, chatgpt를 이용해 자바스크립트로 변환해 적용했다.

 

타입스크립트가 자바스크립트 기반? 이기도 하고 tcx?같은 컴파일러로 자바스크립트로 변환할수는 있다고 하는데 어차피 파일 하나밖에 안되고 매우 짧아가지고 chatgpt에게 변환하라고 하는 편이 빨랐다.

 

다만 이 get요청을 해야되는 곳이 좀 많아서, 일부 갱신된지 오래된 테이블들은 force-cache 옵션을 줘서 브라우저내에 있는 캐시를 쓰도록 강제를 해놨다.

 

이제 진짜 이 사이트는 기능적으로는 안건들 것이다. 좀 UI 개선이라면 모를까... 이제 좀 이건 진짜 좀 참고...

 

나무위키 클론 프로젝트는 chatgpt가 프로그래밍 하는거 보니까, 좀만 잘 타일러주면 프론트앤드는 잘 짤거 같은 생각이 든다. 근데 그러면 굳이 내가 백앤드도 짜는 의미가 없지 않나? 하는 생각이 드는데...

그래도 일단 개발을 해보긴 하자.

 

여튼 빨리 좀 개발 시작해야 하는데..... 코딩테스트 공부도 좀하고...

 

스픽은 매일 공부하고 있다.

 

(.2024-05-04) 계속해서 기능 수정을 하느라 뭐 아무것도 못하고 있다...

오픈 소스? 양식이다 보니까 너무 예외처리를 많이 해야 한다.

그것도 오늘은 이걸로 끝이다!!!!!!

 

일단 이제 DB 히스토리 관련해서 좀 조사한 뒤에 백엔드 구현을 시도해 볼것이다.

계속 다른 사이트들 보면서 백앤드/프론트 앤드 소통방법에 대해 감도 잡고있다.

댓글