2026.07.17 - [프로젝트/Side-Project] - [Side-Project] 메이플스토리 경매장 - 환산주스탯 아이템메이커 브릿지 확장 프로그램 개발
[Side-Project] 메이플스토리 경매장 - 환산주스탯 아이템메이커 브릿지 확장 프로그램 개발
⌨️ 개요메이플스토리에 이번 2026 여름 경매장 서버를 분리하고 웹 경매장을 지원하는 대규모 업데이트가 있었습니다.이걸 보고 경매장에서 내가 찜한 장비를 환산주스탯 사이트에 자동으로
romanc3.tistory.com
⌨️ 확장 프로그램 배포 후 다양한 이슈들에 대해서
확장 프로그램 배포 후 실제 운영과 기능을 추가하면서 다양한 이슈들이 있었다.
또 필요한 부분을 만들어 가는 부분에 있어서의 내용을 정리해보려한다.
[아이템 메이커로 스펙업을 해보는 이유는?]
개인적으로는 아이템 메이커로 아이템을 만들고, 스펙업을 해보는 이유는 결국
내가 보스를 어느 정도의 배율로 잡을 수 있고, 어느 정도의 목표를 세워야 할지 감을 보기 위해서이다.
즉, 탑다운 식으로 게임을 해나가기에 필요한 부분이다
그래서 얼마가 필요할까?
사실 이 부분이 가장 큰 기능 추가의 원인이었다.
환산주스탯 사이트에서는 아주 감사하게도 스펙업 순서라는 기능이 있고, 재화대비 효율적으로 성장을 할 수 있다.
하지만 아쉬운 부분은 어느 정도까지, 얼마나 금액이 들어가는지는 미지수인 부분이다.
개인적으로는 이걸 내부 기능으로 만들지 않은 점이 의아하다.
그래서 나는 예를 들어 5% p 강해지고 싶다면 어디까지 스펙업을 해야 하고 얼마가 들어갈지에 대해서
확인할 수 있는 기능을 추가하기로 했다.

스펙업 순서의 정렬 기준을 역공학하기
문제는 스펙업 순서는 백엔드에서 정렬해서 주는 것이 아닌 프론트에서 정렬한다는 점이었다.
응답값을 그대로 내려주는 것과 달리 프론트에서 정렬하는 것은,
코드 난독화까지 들어가 있다면, 그 정렬 로직을 역산해서 풀어내야 했다.
특히 어느 정도 백엔드에서 정렬 기준을 만들어서 효율값을 좋지만 완전히 일치하지는 않았다는 점이다.
100억 메소당 최종뎀 상승량을 계산하는데,
교환불가 가중치나,
환생의 불꽃에서는 보이지 않는 기본 값이 산정되어 있는 것 같았다.
그런 부분을 역산하여 찾아내고, 다시 검토를 하다 보니 테스트 코드 이게 정말 유의미하다고 느껴졌다.
[운영에서 문제]
위의 기능을 추가하고, 배포를 하면서 이제 많은 문제를 마주했다.
특정 강화와 교환불가 등에 대해 계산식이 어긋나거나 이런 일이 잦아서 잘못된 프로그램이 배포가 나가는 경우가 많았다.
내 맘대로 배포할 수 없음
배포는 새로운 패키지를 올리고, 검토까지의 기간이 좀 걸린다
그 사이에 치명적인 결함이 포함된 버전이 돌아가고 있다면, 그리고 이전 버전으로의 롤백조차도 쉽지 않다면
새로운 수정본이 반영되기까지 사용자들은 불쾌한 경험을 하게 된다.
이 부분에 대해서 두 가지 중요한 점을 깨달았는데
첫 번째는 테스트 코드, 그리고 두 번째는 외부 주입이다.
테스트 코드의 중요성
위에서 말했다시피, 프로그램의 품질을 보장하기 위해 적어도 돌아가는 기능은 그대로 계속 잘 작동해야 한다.
그러나 기능의 추가와 핫픽스, 그리고 플랫폼 성격의 프로그램 특성상 잦은 버그가 발생했다.
분명 이런 부분이 테스트 코드가 꼼꼼히 작성되어 있었다면 미연에 방지할 수 있었다 생각한다.
유연한 운영을 가능하게 해주는 외부 주입
정확도를 차치하고서라도 운영 위험도 커졌다.
위에서 설명한 배포사이클의 문제도 있고, 이거를 Gtihub Gist를 활용하여,
최소 요구 버전보다 낮은 버전을 사용하고 있는 사용자들에게 공지를 띄운다거나,
각각의 기능을 비활성화하는 킬스위치를 만들었다.
[마무리]
작은 사이드 프로젝트이지만, 기능이 돌아가는 것과 사용자가 안전하게 계속 쓸 수 있는 것은 다른 문제라는 걸 배웠다.
외부 의존성이 있는 만큼(웹 경매장과, 환산주스탯 사이트) 앞으로도 실제 사용 흐름을 꾸준히 점검해야 한다.
사이트의 변경을 더 빨리 감지하고, 실패 시의 안전장치나 사용자 가이드등도 보완하고..
앞으로는 모든 수정에 장문의 회고를 하기보다는 릴리스 노트에 짧게 남기고, 고민이 들어간 부분이 있다면 회고를 남기려 한다
본 프로젝트는 넥슨 및 환산주스탯 사이트와 무관한 개인 프로젝트며, 분석 결과는 수집 보관 되지 않고 실제 게임에 영향을 미치지 않음을 밝힌다.