[기획개발일지#3] 롤 내전 경매 시스템

좀 더 재밌는 롤을 위한 팀구성 프로그램

by 장민준

2026년 현재, 리그 오브 레전드(LoL)는 단순한 게임을 넘어 하나의 문화로 자리 잡았고 특히 마음 맞는 사람들끼리 모여 즐기는 내전은 하나의 큰 즐거움이 되었습니다. 하지만 내전의 시작인 팀 구성 단계는 여전히 가위바위보나 단순 사다리 타기에 의존하고 있는 것이 현실이고 팀 빌딩 과정에서 발생하는 실력 불균형은 내전의 흥을 깨는 원인 중 하나였습니다. 기획자로서 저는 이 문제를 해결하기 위해 가장 먼저 롤 커뮤니티의 여론을 살폈습니다. 유저들의 니즈는 명확했습니다.


"실력 차이를 공정하게 조절하면서도 팀을 짜는 과정 자체도 재미있었으면 좋겠다."


그리하여 한정된 포인트를 전략적으로 배분하며 팀원을 영입하는 경매 시스템을 만들어 보았습니다. 링크를 첨부할테니 필요하신 분들께 도움이 되었으면 합니다.


주소: https://lol-auction-tcxdcej5cjmkdbtduqs6hm.streamlit.app/


1. 서비스 소개: 전략적 팀 빌딩의 완성, 롤 내전 경매 시스템

기존의 팀 매칭 툴들이 단순히 무작위성에 의존했다면 본 서비스는 유저의 실질적인 전략적 의사결정을 돕는 데 집중합니다.

Screenshot 2026-02-22 at 22.12.25.JPG

특징

포인트 입찰: 팀장은 제한된 포인트로 팀원을 영입할 수 있으며 즉시 블루/레드 진영 카드에 배치됩니다.

블라인드 시스템: 상대 팀의 베팅 금액을 알 수 없는 심리전을 유도하여 긴장감을 극대화했습니다.

전략적 트레이드: 드래프트 종료 후, 양 팀의 합의하에 특정 라인을 맞교환하여 최종적인 밸런스를 조절할 수 있는 단계를 도입했습니다.


2. 개발 과정: Python과 Streamlit으로 구현하는 마법공학 대시보드

가볍게 시작하는 프로젝트만큼 가장 중요한 것은 빠른 MVP 구현과 직관적인 UI였습니다.


Tech Stack: 별도의 설치 없이 브라우저에서 즉시 실행 가능한 Streamlit을 프론트엔드로 활용했으며, 파이썬 기반의 데이터 처리 로직을 구축했습니다.


Session State 관리: 경매가 진행되는 동안 실시간으로 변하는 포인트와 명단 데이터를 유지하기 위해 Streamlit의 session_state를 적극 활용하여 데이터 무결성을 확보했습니다.

image.png

마법공학 테마 CSS: LoL 특유의 다크한 무드와 골드 텍스트를 재현하기 위해 커스텀 CSS를 주입, 사용자 몰입도를 높였습니다.


3. 발생한 문제점들과 해결방안


A. 입력 위젯의 보안성 문제: 처음에는 숫자를 입력받기 위해 number_input을 사용했으나, 입찰가가 화면에 그대로 노출되는 문제가 있었습니다. 이를 해결하기 위해 text_input에 type="password" 옵션을 적용하고, 입력된 문자열을 내부적으로 정수(int)형으로 변환하는 전처리를 거쳐 보안과 기능을 모두 잡았습니다.

Screenshot 2026-02-22 at 22.13.05.JPG

B. 동점 상황의 우선순위 로직: 두 팀이 동일한 포인트를 베팅했을 때 발생하는 충돌을 해결해야 했습니다. 처음엔 단순 무효화를 고려했으나, 경매의 흐름을 끊지 않기 위해 매물 후순위 배치 로직을 도입했습니다. 동점 발생 시 해당 인원을 명단 맨 뒤로 보내고 즉시 다음 경매를 진행함으로써 박진감을 유지했습니다.


마치며: 별거 아니지만 즐겁게

이 시스템이 팀을 짜는 스트레스를 즐거움으로 바꾸어 놓길 바라며 가볍게 만들었습니다. 만약 팀을 짜는 부분에서 좀 더 재미를 느끼시길 바라신다면 도움이 되길 바라겠습니다!

매거진의 이전글[기획개발일지#2] 고속도로 전기차 충전소 웹서비스