좀 더 재밌는 롤을 위한 팀구성 프로그램
2026년 현재, 리그 오브 레전드(LoL)는 단순한 게임을 넘어 하나의 문화로 자리 잡았고 특히 마음 맞는 사람들끼리 모여 즐기는 내전은 하나의 큰 즐거움이 되었습니다. 하지만 내전의 시작인 팀 구성 단계는 여전히 가위바위보나 단순 사다리 타기에 의존하고 있는 것이 현실이고 팀 빌딩 과정에서 발생하는 실력 불균형은 내전의 흥을 깨는 원인 중 하나였습니다. 기획자로서 저는 이 문제를 해결하기 위해 가장 먼저 롤 커뮤니티의 여론을 살폈습니다. 유저들의 니즈는 명확했습니다.
그리하여 한정된 포인트를 전략적으로 배분하며 팀원을 영입하는 경매 시스템을 만들어 보았습니다. 링크를 첨부할테니 필요하신 분들께 도움이 되었으면 합니다.
주소: https://lol-auction-tcxdcej5cjmkdbtduqs6hm.streamlit.app/
1. 서비스 소개: 전략적 팀 빌딩의 완성, 롤 내전 경매 시스템
기존의 팀 매칭 툴들이 단순히 무작위성에 의존했다면 본 서비스는 유저의 실질적인 전략적 의사결정을 돕는 데 집중합니다.
포인트 입찰: 팀장은 제한된 포인트로 팀원을 영입할 수 있으며 즉시 블루/레드 진영 카드에 배치됩니다.
블라인드 시스템: 상대 팀의 베팅 금액을 알 수 없는 심리전을 유도하여 긴장감을 극대화했습니다.
전략적 트레이드: 드래프트 종료 후, 양 팀의 합의하에 특정 라인을 맞교환하여 최종적인 밸런스를 조절할 수 있는 단계를 도입했습니다.
2. 개발 과정: Python과 Streamlit으로 구현하는 마법공학 대시보드
가볍게 시작하는 프로젝트만큼 가장 중요한 것은 빠른 MVP 구현과 직관적인 UI였습니다.
Tech Stack: 별도의 설치 없이 브라우저에서 즉시 실행 가능한 Streamlit을 프론트엔드로 활용했으며, 파이썬 기반의 데이터 처리 로직을 구축했습니다.
Session State 관리: 경매가 진행되는 동안 실시간으로 변하는 포인트와 명단 데이터를 유지하기 위해 Streamlit의 session_state를 적극 활용하여 데이터 무결성을 확보했습니다.
마법공학 테마 CSS: LoL 특유의 다크한 무드와 골드 텍스트를 재현하기 위해 커스텀 CSS를 주입, 사용자 몰입도를 높였습니다.
3. 발생한 문제점들과 해결방안
A. 입력 위젯의 보안성 문제: 처음에는 숫자를 입력받기 위해 number_input을 사용했으나, 입찰가가 화면에 그대로 노출되는 문제가 있었습니다. 이를 해결하기 위해 text_input에 type="password" 옵션을 적용하고, 입력된 문자열을 내부적으로 정수(int)형으로 변환하는 전처리를 거쳐 보안과 기능을 모두 잡았습니다.
B. 동점 상황의 우선순위 로직: 두 팀이 동일한 포인트를 베팅했을 때 발생하는 충돌을 해결해야 했습니다. 처음엔 단순 무효화를 고려했으나, 경매의 흐름을 끊지 않기 위해 매물 후순위 배치 로직을 도입했습니다. 동점 발생 시 해당 인원을 명단 맨 뒤로 보내고 즉시 다음 경매를 진행함으로써 박진감을 유지했습니다.
마치며: 별거 아니지만 즐겁게
이 시스템이 팀을 짜는 스트레스를 즐거움으로 바꾸어 놓길 바라며 가볍게 만들었습니다. 만약 팀을 짜는 부분에서 좀 더 재미를 느끼시길 바라신다면 도움이 되길 바라겠습니다!