콘텐츠로 건너뛰기

Barcode Scanner Emulator

바코드 스캐너의 ENTER와 TAB 접미사

접미사는 스캐너가 디코딩된 바코드 데이터 바로 뒤에 보내는 키 입력입니다. 올바른 접미사를 고르고 앱에서 올바르게 처리하는 일은 스캐너 연동 버그의 가장 흔한 원인 중 하나입니다.

접미사가 무엇이며 스캐너가 그것을 보내는 이유

스캐너는 내장된 구분자 없이 원시 키 입력으로 데이터를 내보내므로, 스캐너가 명시적인 종료 키 입력을 붙이지 않으면 수신 애플리케이션은 스캔이 끝났는지 안정적으로 알 방법이 없습니다. 그 종료 키가 접미사입니다. 접미사가 없으면 애플리케이션은 무활동 타임아웃으로 완료를 추정해야 하며, 이는 더 느리고 덜 안정적입니다.

ENTER (CR)

가장 흔한 접미사입니다. Enter/Return 키로 보내지며 ASCII의 캐리지 리턴 0x0D에 해당합니다. 대부분의 HTML 폼에서 단일 텍스트 입력 안에서 Enter를 누르면 감싸는 폼이 제출되므로, ENTER는 검색 상자나 단일 필드 조회처럼 "스캔하고 제출"하는 워크플로에 자연스럽게 맞습니다.

TAB

Tab 키로 보내지며 0x09입니다. 폼을 제출하는 대신 Tab은 포커스를 다음 포커스 가능 요소로 옮깁니다. 이 접미사는 상품 코드 스캔 → 수량 필드로 자동 이동 → 다음 항목 스캔처럼, 너무 이른 제출 없이 여러 단계로 데이터를 넣는 워크플로에서 선호됩니다.

CR/LF 쌍과 접미사 없음

일부 스캐너는 전체 CR+LF 쌍을 보내도록 설정할 수 있습니다(터미널이나 시리얼 방식 애플리케이션에 넣을 때 흔합니다). 접미사를 전혀 붙이지 않도록 설정할 수도 있으며, 이때는 애플리케이션이 입력 타이밍으로 스캔 완료를 감지해야 합니다.

POS와 웹 앱에서 중요한 이유

잘못된 접미사는 매우 구체적이고 혼란스러운 버그를 만듭니다. 여러 필드 폼의 ENTER 접미사는 수량이나 할인 필드를 채우기 전에 폼을 제출할 수 있고, 단일 검색 상자 워크플로의 TAB 접미사는 제출을 일으키는 일이 없어 검색이 실행되지 않은 채 남습니다. 공장 기본값에 맡겨 두지 않고 접미사를 워크플로에 맞추는 일이 필수입니다.

접미사 동작을 테스트하는 방법

바코드 입력 테스터에 스캔합니다. 스캔 끝에서 ENTER 또는 TAB이 감지되었는지 명시적으로 알려 줍니다. 관련된 정확한 키코드를 봐야 한다면(예를 들어 CR과 LF를 구분하려면) 키보드 이벤트 테스터를 사용하세요.

스캐너의 접미사를 변경하기

접미사 동작은 스캐너 쪽 설정이며, 제조사 소프트웨어 유틸리티로 바꾸거나 스캐너 설명서에 인쇄된 특수 설정 바코드를 스캔해 설정합니다. 일반적인 설정 절차는 바코드 스캐너 설정 가이드를 보세요.