Field Story · 2026-09-25 · 읽는 시간 7분 · 제이앤코어 기술연구소

"심판석에는 휴대폰 반입이 금지됩니다" 보디빌딩 대회 운영·채점 시스템 아키텍처 구축기 ②

QR 인증을 가로막은 심판석 휴대폰 반입 금지 규정, 체급 직전 추첨으로 결정되는 좌석 세션 바인딩, 대회마다 상이한 비교심사(Call-out) 규칙, 그리고 지상 3층 대회장의 네트워크 단절까지 — 책상 위 설계가 현장 도메인 제약과 충돌하며 진화한 4년의 엔지니어링 기록입니다.

태그: #보디빌딩대회시스템 #실시간채점아키텍처 #태블릿전자심사 #세션바인딩설계 #비교심사워크플로우 #현장네트워크장애대응 #도메인주도설계 #오프라인운영안정성 #체육대회전산화 #제이앤코어
"심판석에는 휴대폰 반입이 금지됩니다" 보디빌딩 대회 운영·채점 시스템 아키텍처 구축기 ②

[1편(/blog/bodybuilding-competition-system-part1/) 요약]
*“최고점과 최저점만 빼고 합산해 주면 된다”*는 단순한 요청으로 시작된 프로젝트는 선수 접수부터 무대 LED 전광판 제어, 협회 공식 홈페이지 챔피언 아카이빙까지 대회 전 주기를 관장하는 통합 시스템으로 확장되었습니다. 이번 2편에서는 집계 프로그램을 실제 대회장 심판석으로 가져가는 과정에서 마주한 물리적 현장 제약과 아키텍처 재설계 과정을 다룹니다.


1. 종이 심사표 회수 병목과 태블릿 전자심사 도입

초기 보디빌딩·피트니스 대회의 채점 방식은 5명·7명·9명 등 홀수로 구성된 심판진이 각 선수의 순위(Rank)를 종이 심사표에 기입하는 구조였습니다. 득점이 높을수록 유리한 경기가 아니라, 최상위·최하위 순위를 절사한 뒤 합산한 순위 수치(Rank Sum)가 작을수록 상위 등위를 차지하는 방식입니다.

문제는 연산 속도가 아니라 **데이터 전달 지연(Latency)**이었습니다. 매 체급 심사가 끝날 때마다 진행 요원이 심판석을 돌며 종이 심사표를 걷고, 집계실로 달려가 엑셀에 수기로 옮겨 적는 과정에서 필연적으로 오기입과 시간 지연이 발생했습니다.

제이앤코어는 이 물리적 이동 구간을 제거하기 위해 심판석 전용 웹 태블릿 인터페이스를 설계했습니다. 심판이 태블릿 화면에서 순위를 터치해 확정하면 집계 서버로 즉시 전송되어 0.1초 만에 순위가 산출되는 아키텍처였습니다. 개발실 내부 테스트까지는 완벽하게 작동했습니다.


2. 첫 번째 충돌: QR 인증 설계와 ‘휴대폰 반입 금지’ 규정

대회 특성상 심판진은 매 체급마다 교체될 수 있고, 착석하는 좌석 번호도 수시로 변경됩니다. 초기 설계에서는 이러한 이동성을 고려해 심판 개인별 고유 PIN 및 QR코드 기반 인증을 구현했습니다. 각 태블릿 화면에 뜬 QR코드를 심판이 본인의 스마트폰으로 스캔하면 해당 태블릿에 심판 계정이 즉시 매핑되는 직관적인 구조였습니다.

그러나 현장 실무진과의 운영 리허설 과정에서 예상치 못한 도메인 제약이 확인되었습니다.

“심판위원은 공정성 규정상 심사석 입장 시 개인 휴대폰을 소지할 수 없습니다.”

판정의 공정성을 담보하기 위해 심판 대기실에 휴대폰을 모두 반납하고 무대 앞 심판석으로 입장하는 것이 대회의 기본 규정이었습니다. QR코드를 인식할 카메라나 네트워크 지연 같은 기술적 예외는 철저히 대비했지만, 정작 **‘인증 매체인 스마트폰 자체가 물리적으로 심판석에 들어올 수 없다’**는 현장 규칙을 간과했던 것입니다.

결국 개인 단말기에 의존하는 2채널 인증 방식을 전면 폐기하고, 심판석 태블릿 단독 입력 및 중앙 관제실(Control Desk) 원격 세션 할당 방식으로 인증 아키텍처를 재설계해야 했습니다.


3. 두 번째 충돌: 직전 추첨으로 결정되는 좌석과 세션 바인딩(Session Binding)

인증 방식을 태블릿 기반으로 전환하자, 이번에는 현장 심판진으로부터 지극히 합리적인 사용성 요구사항이 접수되었습니다.

“동일한 심판이 다음 체급에서도 같은 자리에 계속 앉아 심사한다면 로그인을 유지해 주고, 심판이 교체될 때만 로그아웃되게 해주세요.”

사용자 경험(UX) 관점에서는 당연한 요구였으나, 데이터 모델링 관점에서는 한 가지 전제 조건이 필요했습니다. 시스템이 ‘다음 체급의 어느 좌석에 어느 심판이 착석하는지’를 사전에 알고 있어야 한다는 점입니다.

하지만 실제 대회의 운영 프로세스는 정적(Static)이지 않았습니다.

구분책상 위 시스템의 가정실제 대회 현장의 운영 방식
심판 배정 시점대회 시작 전 전체 체급별 심판 배정표 확정편파 판정 방지를 위해 **체급 시작 직전 제비뽑기(추첨)**로 배정하거나 복수의 시나리오 중 당일 선택
좌석 식별 기준심판 ID(User ID) 중심의 고정 세션물리적 좌석 번호(Seat No. 1~9) 중심의 유동적 세션
교체 반영 주체심판 본인이 태블릿에서 직접 로그인/로그아웃무대 진행 속도가 빨라 심판이 매번 계정을 전환할 시간적 여유 없음

시스템은 *“다음 체급 3번 좌석의 심판 ID가 무엇인가?”*를 기다리지만, 현장은 *“잠시만요, 지금 무대 뒤에서 제비뽑기 중입니다”*라는 상황이 빈번하게 발생했습니다.

이를 해결하기 위해 제이앤코어는 물리적 단말기(Seat Token)와 심판 계정(Judge ID)을 분리하는 이중 세션 모드를 도입했습니다.

  1. 사전 배정 시나리오 모드: 협회가 준비한 복수의 심판 배치 프리셋(Preset A/B/C)을 시스템에 사전 등록해 두고, 추첨 직후 운영자가 프리셋 하나만 선택하면 전 좌석 태블릿의 심판 매핑이 자동 전환되는 방식.
  2. 좌석 중심 즉시 채점 모드: 심판 교체 시간이 촉박한 현장에서는 물리적 좌석 번호(1~9번 심판석) 기준으로 채점 데이터를 우선 수집·집계하고, 사후에 해당 체급의 심판 명단 로그를 매핑하는 유연한 상태 구조.

4. 세 번째 충돌: “버튼 하나만 추가해 주세요” 이면의 비교심사(Call-out) 규칙 엔진

출전 인원이 많은 체급에서는 심판들이 상위권 후보 선수 몇 명을 무대 중앙으로 다시 불러 비교하는 비교심사(Call-out) 절차를 거칩니다.

초기 요구사항 정의 단계에서 전달받은 비교심사 프로세스는 단일 흐름이었습니다.

  1. 심판들이 각자 태블릿에서 비교를 원하는 선수들을 정해진 인원수만큼 선택(투표)한다.
  2. 득표수 기준으로 상위 TOP 3, TOP 5, TOP 7 명단을 자동 추출한다.
  3. 추출된 선수들만 대상으로 본 채점을 진행한다.

그러나 여러 지역의 대회를 실제로 치르면서, ‘비교심사’라는 동일한 용어 뒤에 협회와 대회마다 완전히 다른 운영 규칙이 존재한다는 사실이 드러났습니다.

[비교심사(Call-out) 도메인 규칙의 파편화 양상]
├── 호출 주체 (Trigger Authority)
│   ├── Type A: 전체 심판의 개별 태블릿 투표 합산 (다수결 과반/상위 득표)
│   ├── Type B: 심판위원장(Head Judge) 단독 직권 호출
│   └── Type C: 개별 심판의 추가 비교 요청 후 위원장 승인
└── 채점 범위 제어 (Scoring Scope Constraint)
    ├── Mode 1: 호출된 TOP N 선수에게만 1~N위 입력 허용 (나머지 선수 선택 잠금)
    ├── Mode 2: 1차 호출 그룹(1~5위)과 2차 호출 그룹(6~10위)의 순위 구간을 분리 강제
    └── Mode 3: 전광판 및 진행용으로 호출 명단만 표시하고, 실제 순위 입력은 전 선수 대상으로 개방

건축 공사에서 골조가 다 올라간 뒤 *“옆에 계단 하나만 붙여달라”*고 하면 누구나 하중과 구조 변경을 걱정하지만, 소프트웨어에서는 흔히 **“화면 구석에 버튼 하나만 만들면 되잖아요?”**라는 요청으로 표현됩니다.

그러나 그 버튼 하나가 정상 작동하려면 호출 권한 제어, 태블릿 간 실시간 상태 동기화, 순위 입력 유효성 검증(Validation) 범위, 그리고 결과 확정 트랜잭션까지 기저의 상태 머신(State Machine) 전체를 재설계해야 합니다. 제이앤코어는 특정 대회의 방식을 하드코딩하는 대신, 대회 생성 시 운영 옵션을 조합할 수 있는 규칙 기반 워크플로우 설정 구조로 아키텍처를 고도화했습니다.


5. 네 번째 충돌: 2023년 8월 용인 대회, “인터넷 회선은 지하 1층에 있습니다”

소프트웨어 로직과 도메인 예외를 모두 검증한 뒤 맞이한 2023년 8월 첫 실전 대회에서는 물리적 인프라 환경이 마지막 시험대를 던졌습니다.

사전 현장 점검 당시 대관 측으로부터 *“대회장에 KT 유선 인터넷 회선이 정상 인입되어 있다”*는 답변을 확약받았고, 당일 오전 7시 자체 무선 AP(공유기)와 네트워크 장비를 지참해 현장에 도착했습니다.

하지만 현장에서 확인한 물리적 구성은 다음과 같았습니다.

  • 실제 대회가 열리는 무대 및 심판석: 지상 3층 대공연장
  • 유선 인터넷 회선이 인입된 단자함 위치: 지하 1층 대기실

“인터넷이 들어와 있다”는 말은 사실이었으나, 시스템이 작동해야 할 층에 들어와 있지는 않았습니다. 대회 시작까지 남은 시간은 불과 두 시간 남짓이었고, 층간 유선 포설이 불가능한 긴급 상황이었습니다.

당일 대회는 제이앤코어 엔지니어링 팀과 협회 임원진의 모바일 핫스팟 테더링을 다중으로 묶어 무선 브릿지를 구성함으로써 단 한 건의 집계 중단 없이 무사히 완주할 수 있었습니다.

이 아찔한 첫 대회의 경험은 시스템의 네트워크 아키텍처를 근본적으로 강화하는 계기가 되었습니다.

  • 초경량 페이로드(Payload) 설계: 모바일 테더링이나 극도로 불안정한 현장 무선 환경에서도 패킷 손실 없이 즉시 동기화되도록 심판 태블릿과 서버 간 통신 데이터를 경량 JSON 구조로 최소화했습니다.
  • 클라이언트 상태 보존 및 재전송 큐(Retry Queue): 순간적인 Wi-Fi 끊김이나 AP 재연결 시에도 심판이 터치해 둔 순위 배열이 브라우저 메모리에 안전하게 유지되며, 연결 복구 즉시 정합성을 검증해 전송하는 방어 로직을 탑재했습니다.

6. 엔지니어링 요약: “화면에서 되는 것”과 “현장에서 돌아가는 것”의 차이

관객석에서는 화려한 조명 아래 선수의 포징과 전광판의 결과를 보며 박수를 보내지만, 시스템 엔지니어는 심판이 자리에 앉는 순간부터 마지막 시상식 기록이 저장될 때까지 현장의 모든 물리적 변수를 통제해야 합니다.

점검 영역책상 위 기능 명세 (Desk Spec)현장 엔지니어링 검증 항목 (Field Verification)
사용자 인증QR 스캔 및 패스워드 로그인 구현작업자의 물리적 환경(휴대폰 소지 금지, 장갑 착용 등)에서 조작 가능한가?
역할 및 권한사전 등록된 계정별 고정 권한 부여당일 추첨·교대·대리 수행 등 현장의 즉흥적 인력 배치를 수용할 수 있는가?
업무 프로세스단일 표준 절차(Happy Path) 구현운영 주체나 현장 상황에 따라 달라지는 예외 규칙을 설정으로 전환할 수 있는가?
네트워크/인프라안정적인 사내 광랜 환경 가정실제 단말기가 놓이는 층·위치의 전파 음영과 회선 단절 시 복구 대책이 있는가?

제이앤코어가 “간단하게 합산만 해주면 됩니다”라는 고객의 말을 들을 때, 산식 옆에 반드시 **“그 업무를 실제 현장에서는 어떤 순서와 환경에서 처리하십니까?”**라는 질문을 함께 적는 이유가 바로 여기에 있습니다.


💡 현장 중심의 맞춤형 웹 시스템 구축 상담

  • 외주 개발사에 기능을 설명했지만 현장의 예외 상황을 이해하지 못해 답답하셨습니까?
  • 사무실과 현장의 단절된 수작업을 2~4주 안에 흔들림 없는 웹 시스템으로 통합하고 싶으십니까?

11년 경력의 시니어 아키텍트가 실제 업무 환경의 제약 조건까지 면밀히 진단하여 최적의 시스템을 설계해 드립니다.

핵심 실무 및 엔지니어링 검색 키워드 (10)
SEO Optimized Index
#보디빌딩대회시스템 #실시간채점아키텍처 #태블릿전자심사 #세션바인딩설계 #비교심사워크플로우 #현장네트워크장애대응 #도메인주도설계 #오프라인운영안정성 #체육대회전산화 #제이앤코어
JNCORE RAPID SPRINT · 2~4주 실무 완성 스프린트

“우리 회사 엑셀 업무도 이렇게 바꿀 수 있을까요?”

사내 ERP를 무리하게 바꾸지 않고도, 매달 터지기 일보 직전인 엑셀 병목만 독립 웹 시스템으로 2~4주 만에 안전하게 해결해 드립니다.