모두의 프린터 개발이야기 #3

in #kr6 years ago

IP PRINTER에서 모두의 프린터로 이름을 바꾸고 새로 개발을 시작하게 된 이유는 앞서 개발이야기에서 작성을 했었구요.

초기 모두의 프린터의 구조는 공유프린터가 아닌 IP 프린터를 구성하고 이를 위해 PC와 스마트폰을 동원하여 2대의 장치로 출력을 한다 였습니다.

초기버전에서는 사실 많은 불편함이 있었던 것이 PC에서 출력을 하면 스마트폰으로 전송을하고 스마트폰에서는 전송 받은 데이터를 파일로 저장하고 저장된 데이터는 스마트폰에서 일반적으로 사용되는 공유 기능을 통해 카톡이나 이메일, 블루투스 등으로 PC로 전송하는 방식으로 구성되었습니다.

말그대로 모두의프린터가 해주는 것은 PC에서 스마트폰으로 데이터가 전송되기 위한 프린터의 레지스트리 수정의 편의성과 데이터를 받아줄 스마트폰 앱의 존재? 이 두가지 정도 였다고 봅니다.

이 구조에 따라 사실 프린터가 어떤 프린터이냐는 크게 중요하지 않던 시절이었습니다.
일반적으로 많이 쓰이는 PCL, XPS, PostScript던 상관 없이 드라이버가 Standard TCP/IP 포트를 지원하고 데이터를 보거나 변환 할수 있는 뷰어나 컨버터만 존재한다면 사실 상관 없던 시절 이었지요.

저같은 개발자나 컴퓨터에 어느정도 도가 튼 분들이야 뷰어를 찾고 컨버터를 찾고 사용을 하고 할 수 있겠지만 여기서 몇가지 문제점이 발생 합니다.

XPS는 원론적으론 최근 윈도우에는 기본적으로 뷰어가 포함되어 있지만 문제는 XPS포맷을 사용하는 프린터라 하여도 근본적으로 PC에서 프린터로 전송되는 데이터는 PDL(Printer Description Language)라는 놈과 같이 묶어서 전송되곤 합니다. 물론 그것 까지 감안한 뷰어의 경우에는 알아서 잘 처리하고 표시해 주시만 딸랑 XPS 포맷만을 인식한다면 제대로 표시하지 못할 수 있지요. 최근 XPS 뷰어는 어떨지 모르지만 당시 테스트로는 PDL과 같이 작성된 XPS 스크립트는 윈도우의 XPS뷰어에서 제대로 처리하지 못했던 걸로 기억합니다.

또한 PS나 PCL의 경우도 Ghostscript의 gsview 나 Ghostpcl ( 물론 이 사이트에서 Ghostxps 라는 놈도 있습니다. )등을 통해 보거나 변환이 가능하지만 gsview의 경우 최신 버전은 꽤나 멋지게 개선되어져 왔지만 당시만 해도 PC에 따라 오동작을 하거나 한글윈도우에서의 이상현상이 있거나 한 경우가 많았습니다.또한 Ghostscript, Ghostpcl, Ghostxps는 Command Line Interface 를 사용하는 프로그램들로 cmd나 Power Shell에 익숙한 어느정도 수준 이상의 사용자들이 아니면 거부감이 컸었을 것이구요.

또한가지로 아무리 로컬 네트워크를 기준해서 PC와 스마트폰의 통신이 가능한 상황을 구성한다 하여도 각종 방화벽이나 백신 프로그램의 입장에선 외부에서의 접속이나 데이터 송수신이 발생하는 상황이기 때문에 방화벽 차원에서 막혀버리는 경우가 많았습니다.

이것또한 같은 상황을 많이 격어본 사용자 분들은 별 무리없이 옵션등을 조절하셔서 사용하셨지만 컴퓨터를 잘 모르시는 분들은 "시스템 트레이의 아이콘중 백신이나 방화벽 프로그램에 옵션에 들어가보시면 허용가능 할겁니다." 라는 부분을 이해시키는데도 몇시간은 훌쩍 지나가곤 했지요.

모든 문제를 한번에 다 해결 할 수는 없으니 차근차근 사용자들이랑 여러 대화를 해가는 와중에 한부분씩 개선을 해 나가게 되었습니다.

우선적으로 적용한 것은 "PC->스마트폰->공유->이메일,카톡등등"으로 출력된 데이터를 실제 사용하기 까지의 번거로움을 해소하기 위해 "PC->스마트폰->PC"로 기능을 변경하게 되었습니다.

그리하여 PC버전의 모두의프린터가 그저 프린터의 설정역할을 해주던 것에서 PC에서 출력한 데이터가 프린터드라이버를 통해 스마트폰에 전달되고 전달받은 스마트폰은 다시 데이터를 전송한 PC에 접속하여 해당 데이터를 그대로 재전송 해주는 역할을 하게 수정되었습니다.

물론 여전히 네트워크 구성과 관련된 자잘한 상황들은 해결되지 못한 상황이었고 아무래도 커피숍 같은 공용 네트워크에서 오픈된 라우터를 통해 개인 신상이 담겼을 수도 있을 데이터가 오고 간다는 상황 자체가 맘에 안들기도 했습니다.

이 상황까지 와서 남은 남은 3가지의 목표가 있었는데요.

첫째, 콘솔을 통한 Command Line 인터페이스의 GUI 화
참고로 초기 모두의 프린터 인터페이스는 ...

222.png

둘째, 스마트폰 없이 출력명령을 내리는 PC한대로 구성할 방법
셋째, 모두의프린터만 가지고 출력물을 PDF화 하는 법

이 3가지의 목표가 남아 있었습니다.

뒷 이야기는 다음 글에서 이어가 보도록 하겠습니다.

Sort:  

Congratulations @fafajun! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You received more than 100 upvotes. Your next target is to reach 250 upvotes.

Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

Be ready for the next contest!

Support SteemitBoard's project! Vote for its witness and get one more award!

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.029
BTC 66330.08
ETH 3331.87
USDT 1.00
SBD 2.70