장치 연동
요즘은 다 웹으로 하지 않냐는 말을 듣습니다. 브라우저는 안전을 위해 컴퓨터 자원 접근을 크게 제한합니다. 영수증 프린터에 바로 찍고, 바코드 스캐너 신호를 받고, 저울 값을 읽고, 인터넷이 끊겨도 도는 일은 그 제한 밖에 있습니다.
한 문장으로
장치 연동은 프로그램이 컴퓨터에 연결된 기기와 직접 주고받게 만드는 일이고, 브라우저로는 대부분 할 수 없는 영역입니다.
하는 일
- 영수증 · 라벨 프린터 — 미리보기 없이 바로 출력
- 바코드 · QR 스캐너 — 입력창을 거치지 않고 신호를 직접 받기
- 저울 · 계측기 — 시리얼 통신으로 값 읽기
- USB 기기 — 제조사 규약에 맞춰 주고받기
- 오프라인 동작 — 인터넷이 끊겨도 이어지고 나중에 맞추기
- 로컬 파일 대량 처리 — 폴더를 통째로 읽고 쓰기
하지 않는 일
- 일반 문서 인쇄 — 그건 웹으로도 됩니다
- 기기 자체의 고장이나 소모품 — 장비 관리 영역입니다
- 네트워크 프린터 공유 — 운영체제가 맡는 일입니다
이웃 개념과 헷갈리는 지점
- 웹앱브라우저에서 도는 프로그램
- 설치가 없고 어디서나 열리는 대신 기기 접근이 막혀 있습니다. 기기를 안 쓰는 업무라면 웹이 대개 낫습니다.
- 브라우저 기기 API브라우저가 열어 둔 일부 기기 접근
- 일부 기기는 브라우저에서도 됩니다. 다만 지원 범위가 좁고 브라우저마다 달라 업무용으로 기대기는 어렵습니다.
- 로컬 연동 프로그램웹과 기기 사이에 작은 프로그램을 두는 방식
- 웹 화면을 쓰면서 기기만 연결하는 절충입니다. 설치가 여전히 필요하고 관리할 것이 하나 늘어납니다.
- 키오스크한 가지 용도로 고정한 단말
- 장치 연동이 많은 경우가 흔합니다. 다만 화면과 조작 방식이 업무용 프로그램과 달라 설계가 별도입니다.
언제 필요한가
이럴 때 필요합니다
- 영수증이나 라벨을 바로 출력해야 할 때
- 스캐너나 저울 값을 사람이 옮겨 적고 있을 때
- 인터넷이 끊겨도 업무가 이어져야 할 때
- 많은 파일을 컴퓨터에서 직접 처리해야 할 때
아직 아니어도 됩니다
- 일반 문서 인쇄만 필요하다면 웹으로 충분합니다
- 항상 인터넷이 되고 기기를 안 쓴다면 웹이 관리가 훨씬 쉽습니다
- 기기가 이미 자체 프로그램을 갖고 있고 그것으로 충분하다면 굳이 만들 이유가 적습니다
여기서부터는 갈립니다
기기마다 통신 방식과 제조사 규약이 제각각이라 일반해가 없습니다. 같은 영수증 프린터라도 모델이 다르면 명령어가 다르고, 오래된 장비일수록 문서가 없어 직접 붙여 보며 알아내야 하는 경우도 있습니다. 그래서 도입 전에 실제 기기의 제조사와 모델명을 확인하는 것이 가장 중요합니다. 확인 전에는 기간도 비용도 정확히 말하기 어렵습니다.
자주 묻는 질문
일부는 됩니다. 브라우저가 열어 둔 범위 안에서는 가능하지만 지원 기기가 좁고 브라우저마다 다릅니다. 영수증 프린터에 미리보기 없이 바로 찍는 것 같은 일은 여전히 어렵습니다.
제조사가 규약을 공개했거나 널리 쓰이는 기기라면 대개 됩니다. 확인은 모델명 단위로 해야 합니다. 같은 브랜드라도 모델이 다르면 다르게 동작합니다.
같은 계열이면 설정만 바꾸면 되는 경우가 많고, 방식이 다른 기기로 바꾸면 그 부분을 다시 만들어야 합니다. 그래서 처음부터 기기 교체를 염두에 두고 그 부분을 떼어 두는 편이 낫습니다.
기기와 방식에 따라 다릅니다. 산업용 장비는 윈도우만 지원하는 경우가 아직 많습니다. 맥에서도 써야 한다면 그 조건을 먼저 확인해야 합니다.
그렇게 만들 수 있습니다. 로컬에 저장해 두고 연결되면 서버와 맞추는 방식입니다. 다만 그동안 다른 사람이 같은 데이터를 고쳤을 때 무엇을 살릴지 규칙이 필요합니다. 그 규칙이 실제로 가장 손이 많이 갑니다.
범위가 애매해도 괜찮습니다
지금 상황만 알려 주시면 필요한 범위와 대략의 규모를 짚어 드립니다.