목록Project/사이퍼즈 서포터 (14)
만족
2026.02.25 에 사이트 개편 작업을 마무리하고 배포까지 진행했습니다. 내부 개발 도구와 거의 모든 코드를 갈아엎으면서, 프로젝트를 다시 작성하는 수준으로 진행되었는데요. 최근 agentic coding을 업무에 적용해 보면서 사이퍼즈 서포터에도 적용해보면 좋을 것 같다는 가벼운 생각으로 시작했는데, 생각보다도 훨씬 더 결과물이 좋아 계속하다보니 꽤 많은 변경사항이 있었습니다. 작업 환경codex cli와 cursor ide를 사용해 작업을 진행했습니다. codex는 한도까지 다 사용하지는 않았는데, cursor는 claude opus 4.6을 쓰니 3시간만에 사용량이 다 털려버렸네요. codex는 한도가 넉넉하기도 하고, opus 같은 고급 모델은 사용하지 않아서 그런지 한도 걱정은 없었습니다...
얼마 전부터, 불명의 원인으로 서버의 CPU수치가 100%로 치솟으면서 내려오지 않아 서버가 요청을 전혀 처리하지 못하는 현상이 발생하고 있다. 특정 프로세스, 특정 시간이나 특정 주기로 발현되는 증상도 아니고, 어쩔 땐 하루에 두번이나 저랬다가 또 어쩔 땐 몇주동안 발생하지 않는다. 아직 원인을 찾지 못해서 장애를 인지하면 문제가 되는 프로세스를 재시작하고 있다. 현재 서버 내 서비스 구조를 간단히 요약하면 위와 같다. 백엔드 프레임워크들끼리도 특정 기능을 의존하고 있고, DB는 거의 모든 api에서 사용하고 있기 때문에 이들 중 하나만 장애가 발생하더라도 연쇄적으로 장애가 발생한다. 장애가 발생할 경우 빠른 인지, 수정, 복구가 가능해야 하는데, 이 상황에서 가장 중요한 것은 '빠른 인지'기 때문에 ..
웹 1.6.0 버전 이후 모스트 사이퍼/포지션/듀오 정보 표시 방법이 변화되었습니다. 기존에는 전적 페이지에서는 현재 표시되고 있는 전적을 가지고만 분석했었고, 모스트 사이퍼 상세보기 페이지로 이동하면 90일 내 진행한 경기를 모두 불러와 분석했습니다. 그러나 이 방법은 속도가 매우 느리고, 시즌 시작 이후 90일이 지났다면 완전한 데이터를 표현할 수 없게 됩니다. 왜 이런 방식을 채택했나요? 사이퍼즈 OPEN API는 호출 횟수에 한도를 두고 있습니다. 따라서 시즌 내 모든 정보를 불러오게 된다면 API 호출(한번에 최대 90일, 100게임, 하나의 게임 타입) 횟수가 많아져 유저가 몰리는 타임에 서버가 정상적으로 응답을 줄 수 없는 상태에 빠지게 됩니다. (가령 90일 내 100게임 이상을 진행하는 ..
2020-11-21자로 사이퍼즈 서포터 안드로이드 앱에 광고 제거 상품이 추가되었습니다. 2018-08-31에 첫 출시를 하고, 그로부터 2년이 지난 뒤에야 추가한 이유에 대해 천천히 풀어볼까 합니다. 사실 그 전부터 광고 제거 상품에 대한 요청은 많이 있었습니다. 그러나 제 답변은 항상 '예정에 없습니다' 또는 '고려중입니다' 에 불과했었죠. 여태껏 광고 제거 상품을 꺼려했던 가장 큰 이유는 다음 두 가지 입니다. 첫째로, 기존에 '기부'해 주셨던 분들이 느끼실 박탈감입니다. 사이퍼즈 서포터는 광고 제거 상품이 출시되기 전 까지 광고와 자발적 기부만으로 운영된 서비스입니다. 광고 제거 상품을 너무 저렴한 가격에 출시하게 되면, 기존에 기부 상품을 1000원에 구매하신 분들은 말 그대로 생돈을 날린 것 ..
기존에는 앱/웹과 사이퍼즈 API 서버가 직접 통신했습니다. 매우 간단하고 빠르지만, 치명적인 문제가 있습니다. 사이퍼즈 API 서버가 다운되거나, 점검 상태에 들어가면 모든 요청이 실패한다는 것입니다. 해결법 중간에 프록시 서버를 하나 두어 요청 성공 시 일정 시간동안 그 정보를 저장하고, 사이퍼즈 API 서버가 죽어버리면 저장된 정보를 돌려주는 것입니다. 그러나 이것 역시 문제가 있습니다. 첫째로 한 번도 조회되지 않은 데이터는 프록시 서버에도 존재하지 않기 때문에 오류가 발생한다는 것이고, 또한 거쳐야 하는 서버 갯수가 하나 늘어남으로써 데이터 송/수신 속도가 느려진다는 것이죠. 두 가지 모두 완벽하게 해결할 수 있는 방법은 없으나, 후자의 경우는 비교적 쉬운 방법으로 완화시킬 수 있습니다. 바로 ..
사이퍼즈 서포터(CPSP)의 업데이트 로드맵을 알려드리고자 합니다. 상세 일정에 대해 정해진 것은 없으나, 어떤 순서로 업데이트해 나갈 것인지 안내드립니다. 1. 사이퍼즈 서포터 웹 버전 정식 출시 현재(2020-09-13 01:24)기준 아직 웹 버전은 프리뷰 버전입니다. 앱에 있는 기능 중 아직 추가되지 못한 기능과 자잘한 디자인/버그를 수정한 뒤 정식 버전을 출시할 예정입니다. 2. 통계 자체 수집 기능 현재 통계 페이지에서 제공되고 있는 기능은 사이퍼즈 공식 홈페이지 정보에 의존적입니다. 이는 캐릭터 정보 페이지의 포지션 통계/매치업/시너지 정보와는 통계 수집 기준이 달라 이용하시는 분들께 혼란을 드릴 수 있을 것 같습니다. 따라서 포지션 통계/매치업/시너지 정보 분석 시 사용한 표본들로 승률/픽..
2020년 6월 19일에 웹 프리뷰 버전을 출시한 이후, 현재 2020년 8월 19일 기준 14번의 릴리즈가 있었습니다. (패치노트: https://cpsp.kr/patchnotes) 또한 웹 버전 출시 당시 모바일/데스크탑 환경을 동시에 염두에 두고 개발했기 때문에 당장에 스마트폰 브라우저로 접속하더라도 큰 불편함 없이 사용이 가능했었죠. 그러나 본질적으로 브라우저를 키고 주소를 입력해서 들어와야 한다는 번거로움이 있었습니다. 그렇다고 Android/IOS앱을 각각 만들면, 기능 변경이 있을 떄 마다 3개의 언어로 프로그래밍된 앱을 모두 고쳐줘야 한다는 점도 부담스럽게 다가왔습니다. 이를 해결하기 위해 Hybrid Application으로 서비싱하는것을 채택했습니다. 잠깐 Application의 종류 ..
분석 조건 30일간 진행된 공식전 게임 중 랭킹 1000위 안의 유저들의 게임 기록을 기준으로 약 20000회의 경기 결과를 대상으로 분석합니다 분석 방법 사이퍼즈 OPEN API를 이용해 수집된 데이터를 js로 분석합니다. 카운터 픽 분석 방법 (파란색은 승리팀, 붉은색은 패배팀입니다) 해당 경기에서 각각의 캐릭터마다 한 번씩 비교하여 총 25번의 비교를 하여 다음과 같은 데이터를 만들어냅니다 (클레어vs까미유=> 승리1vs승리0, 클레어vs디아나=> 승리1vs승리0 ...... 스텔라vs호타루=> 승리1vs승리0) 이와 같은 작업을 20000여개의 경기에 대해 누적식으로 모두 진행한 다음, 해당 데이터를 가공하여 DB에 넣습니다. 이 데이터는 한번 더 백엔드에서 처리하여 프론트에 전달되는데, 최종적으..