홈으로 돌아가기

레거시 볼링 장비 통합: 도전 과제와 솔루션

이 기사는 모바일 앱과 레거시 볼링 장비를 통합한 3년 사례를 분석합니다. 제조사의 상업적 제한, 구식 기술 스택, 데이터 불안정성 등 세 가지 주요 문제를 설명하고, 센서 디지털화 유닛의 리버스 엔지니어링을 통한 솔루션을 제시합니다.

핀세터의 리버스 엔지니어링: 레거시 장비 통합 사례
Advertisement 728x90

# 핀세터 역설계: 구형 볼링 장비를 모바일 앱과 연동한 방법

3년간 기계식 볼링 머신(핀세터)에서 데이터를 추출하려는 시도가 번번이 실패한 끝에 Brooklyn Bowl 팀은 핵심 센서 디지털화 유닛을 역설계하기로 했다. 주요 장애물은 독점 인터페이스, 구식 기술 스택, 그리고 문서 부재였다. 이 글에서는 시스템의 아키텍처 특이점, 표준 연동 방법이 왜 실패했는지, 그리고 우아하지는 않지만 실제로 작동하는 솔루션을 자세히 살펴본다.

핀세터 아키텍처와 데이터 흐름

기계식 핀세터는 탱크의 자동 장전기처럼 복잡한 기계다. 공이 굴러간 후 광학 센서가 작동해 지나가는 물체를 감지한다. 그다음 구멍이 뚫린 측정 프레임이 내려와 각 위치의 핀을 광다이오드나 접촉 프로브로 확인한다. 센서 데이터는 NextGen 유닛으로 전달되어 쓰러진 핀 수 같은 게임 이벤트로 변환된다. 이 유닛은 독점 전류 루프 직렬 인터페이스를 통해 2014년 모델 Dell OptiPlex 3020 서버에 연결된다. 서버는 게임 상태를 관리하고 레인 위 모니터에 결과를 표시한다.

중요한 점은 기계 자체가 신호를 디지털화하지 않는다는 것이다. 그 역할은 외부 NextGen 유닛이 맡는다. 데이터는 표준 프로토콜 없이 원시 헥스 형식으로 전송된다. IoT나 MQTT 같은 현대 기술 지원이 없어 모바일 앱 같은 외부 시스템과의 연동이 매우 어렵다.

Google AdInline article slot

3가지 근본적인 연동 장애물

데이터 추출 시도는 세 가지 극복 불가능한 벽에 부딪혔다:

  • Brunswick와 AMF의 상업적 제한. 제조사들은 웹사이트 점수 표시나 클럽 카드 연동 같은 애드온 모듈 판매를 독점하기 위해 제3자 연동을 의도적으로 차단한다. 우회하려면 라이선스를 사야 하니 경제적으로 불가능하다.
  • 구식 기술 스택. Dell 서버는 FoxPro와 Sybase SQL Anywhere 데이터베이스를 사용한다. FoxPro는 쓰기 중 데이터베이스를 잠가 동시 읽기 시 메인 소프트웨어를 크래시시킨다. Sybase는 ODBC 드라이버가 필요하고, 자격 증명은 Brunswick 바이너리에 숨겨져 있어 디컴파일 없이는 접근이 거의 불가능하다.
  • 푸시 메커니즘 부재와 불안정한 데이터. 시스템은 이벤트 발생 시 데이터를 푸시하지 않고 서버가 지속적으로 폴링한다. 게다가 게임 상태는 수정될 수 있다. 예를 들어 처음엔 핀 2개 쓰러짐으로 등록됐다가 즉시 10개 모두로 바뀔 수 있다. 이런 비동기 수정으로 데이터 불일치가 발생해 안정적인 이벤트 스트림을 만들기 어렵다.

실패한 접근법: 단점 분석

팀과 고용한 엔지니어들은 네 가지 방법을 테스트했으나 프로덕션에 부적합했다:

  • Dell 서버 데이터베이스 읽기. FoxPro나 Sybase에 연결하면 잠금 충돌로 핵심 소프트웨어가 크래시됐다. 성공한 읽기조차 실시간 모바일 앱에 맞지 않는 지연이 발생했다.
  • NextGen 유닛 연동. 전류 루프 직접 접근으로 원시 헥스 데이터를 얻었으나 문서 없이 디코딩이 퍼즐 같았다. 트래픽 분석 결과 형식은 기계 상태에 따라 달라지고 상태 수정이 스트림에 "노이즈"를 더했다.
  • 레인 위 컴퓨터 비전. 카메라 설치 후 OpenCV로 핀 위치 감지하려 했으나 완벽한 조명과 캘리브레이션이 필요했다. 실제 환경(플레이어 움직임, 그림자, 눈부심)에서 정확도가 70% 아래로 떨어져 사용 불가였다.
  • NextGen 전체 재작성. 유닛 에뮬레이션은 핀세터 모든 상호작용(상태 수정 처리 포함)을 재현해야 해 기술적으로 막강했다. 복잡성으로 프로토타입에서 멈췄다.

HDMI 스플리터로 모니터 OCR이나 프린터 에뮬레이션 같은 방법은 테스트조차 하지 않았다. 추가 실패 지점 때문에 신뢰성이 낮아 보였다.

Google AdInline article slot

작동하는 솔루션: 디지털화 유닛 교체

현재 설정은 NextGen 유닛을 역설계한 것이다. 레거시 시스템 연동 대신 엔지니어들은 핀세터 센서에 직접 연결되는 커스텀 모듈을 만들었다. 이 모듈은:

  • 광다이오드와 접촉 프로브의 아날로그 신호를 캡처한다.
  • 100 Hz로 데이터를 디지털화하며 오작동을 필터링한다.
  • JSON 형식 이벤트 생성 후 MQTT로 서버에 전송한다.

핵심 장점은 레거시 시스템 완전 격리: Dell과 NextGen을 완전히 우회해 모든 제한을 피한다. 단점은 각 기계 물리적 개조로 레인 2~3시간 다운타임이 필요하다. 하지만 Brooklyn Bowl의 12개 볼링장 네트워크에 최적의 해결책이었다.

엔지니어를 위한 핵심 교훈

  • 상업적 잠금 우회에 시간 낭비 말라. 제조사(Brunswick처럼)가 접근을 의도적으로 제한하면 레거시 시스템 연동 대신 핵심 컴포넌트를 격리하라.
  • 원시 센서 데이터가 최고의 친구다. 디지털 인터페이스가 없는 시스템에서 독점 프로토콜 디코딩보다 아날로그 센서 직접 연결이 더 간단하다.
  • 역설계는 인내가 필요하다. 전류 루프 트래픽 분석에 6개월 걸렸지만 상태 수정 필터링을 위한 헥스 데이터 패턴을 밝혀냈다.

이 솔루션은 완벽하지 않지만 작동한다. 비슷한 장비를 가진 다른 볼링장 주인들에게 경험 공유 기꺼이—글 끝에 연락처.

Google AdInline article slot

— Editorial Team

Advertisement 728x90

다음 읽기