loading...

기업용 문서 스트리밍 서비스 구축 전략

기업용 문서 스트리밍 서비스 구축 전략

1. 들어가며

코로나 시국이 계속되면서 사회적 거리두기에 대한 요구가 지속되는 동안 많은 기업들이 재택 근무 환경을 갖출 수 있도록 적극적인 투자를 해왔습니다. 그 결과 재택 근무가 하나의 기업 문화로서 정착되었습니다. 하지만 사실 이러한 움직임은 코로나 이전부터 이미 진행되어 왔다고 볼 수 있는데 그 중심에는 모바일(휴대폰)이 있습니다.

스마트폰이 대중들에게 일상화된지도 어언 10년이 지났습니다. PC에서 해왔던 많은 일들이 모바일로 대체되면서 업무용 메일을 열람하고 결재를 처리하고 업무용 메신저로 소통을 하게 되었습니다. Work from Anywhere로 대변되는 모바일 업무 환경은 의사결정 지연에 따른 손실을 줄였고 이는 기업 생산성 향상으로 직결되었습니다.

잠깐 눈을 돌려보겠습니다. 2022년 현재 기후 위기가 전세계적인 문제로 거론되고 있으며 탄소 중립에 대한 요구도 드세지는 추세입니다. 이에 대응하여 전자 문서를 활성화 하면 벌목량과 종이 생산량을 줄여 탄소중립 실현에 큰 기여를 할 수 있을 것입니다. 실제로 공공기관, 민간기업 할 것 없이 서면으로 진행해왔던 많은 업무 절차들이 전자문서로 대체되고 있으며 서면으로 작성하고 보관하는 각종 계약서도 전자 계약으로 바뀌고 있습니다.

본 아티클에서는 필자의 경험을 토대로 시장의 요구, 특히 모바일 환경에 부합하는 기업용 문서 스트리밍 솔루션을 논해 보고자 합니다. 어떤 시스템인지, 그리고 어떠한 전략으로 서비스를 설계하고 구축해야 할 것인지를 소개하겠습니다.

2. PC에 가까워지는 모바일 서비스

시기를 거슬러 올라가서 iOS, 안드로이드 수준의 스마트폰이 보급되기 전에는 모바일에서 사용할 콘텐츠는 되도록 간략하고 적은 데이터를 사용해야 했습니다. 따라서 WAP이라는 이동통신용 인터넷 표준이 필요했고 웹사이트를 만들 때 모바일 전용 페이지를 따로 구축하기도 했습니다.

피처폰 시장에서,모 기업에서 개발한 휴대폰(WIPI)용 업무 프로그램 피처폰이 시장 주류로 자리잡을 무렵, 모 기업에서 개발한 휴대폰(WIPI)용 업무 프로그램

폰 성능이 많이 좋아지면서 PC에서 볼 수 있는 웹, 오피스 문서는 모바일에서도 대부분 동일한 형태로 열람이 가능해졌습니다. 과거 피처폰 시절처럼 데이터를 어떻게 최소화 할 것인가에 대한 고민이 필요없어졌고 대신 이제는 PC와 동일한 수준의 정보량과 인터페이스를 어떻게 구현할 것인가를 고려해야 할 시기가 된 것입니다.

포털 사이트나 SNS 등 많은 웹서비스들이 여전히 PC와 모바일 버전으로 이원화된 채널을 운영하고 있지만 필자는 개인적으로 모바일에서 포탈사이트에 들어갈 때 ‘https://m.~’으로 시작하는 모바일용 웹페이지를 선호하지 않아서 곧바로 PC 화면보기로 전환하고 있습니다. 요즘 스마트폰이 제공되는 해상도 만으로도 PC 화면으로 볼 수 있는 콘텐츠는 충분히 담을 수 있다고 생각하기 때문입니다.

동일한 문서를 PC용 MS Word에서 열었을 때(좌)의 화면, 모바일 앱인 Brity Mail Mobile로 열었을 때(우)의 화면 동일한 문서를 PC용 MS Word에서 열었을 때(좌), 모바일 앱인 Brity Mail Mobile로 열었을 때(우)의 화면

모바일 디바이스 스펙과 서비스 환경이 고도화되면서 더 많은 정보량과 편의 기능 수용 요구를 받고 있습니다. PC에서 MS 오피스나 어도비 리더로 볼 때와 동일한 포맷의 화면으로 모바일에서 열람을 하기 위해서는 검토해야 할 사항이 많습니다. 프로그램을 구현하는 방법은 여러가지가 있겠지만 가장 일반적인 접근법은 서버에서 각 문서의 구조를 분석한 후 스트리밍이 가능하도록 메타데이터로 치환한 다음 단말에 전송하는 것입니다. 이와 동시에 단말은 서버로부터 전송 받은 메타데이터를 그대로 렌더링해서 PC에서 보는 화면과 일치하도록 재현해야 합니다.

3. 기업용 문서 스트리밍 서비스 설계 및 구축 시 고려사항

기업용 문서 스트리밍 서비스가 갖춰야할 지표로 보안성, 편의성, 효율성을 들 수 있습니다. 이들은 함께 효용이 증대되는 이른바 동반 상승하는 관계가 될 수 있습니다. 효율성을 높이면 사용자 입장에서 좀 더 빨리 결과물을 받아볼 수 있기 때문에 편의성에도 긍정적인 영향을 끼칩니다. 다만 어느 한쪽으로 과도하게 매몰되면 다른 쪽의 부족함으로 인해 문제가 될 수도 있습니다.

예를 들어 편의성에 지나치게 매몰될 경우 스트리밍 서버에서의 지나친 자원 소모나 계산 작업으로 인해 CPU 점유율이 과도하게 높아질 수 있고(이를테면 지도 앱에서 서울 지도를 살펴보고 있는데, 백그라운드에서 대한민국 전체 지도 정보를 미리 렌더링하고 있다거나) 효율에 매몰될 경우 반드시 필요한 암호화 작업이나 인증 과정을 등한시 하느라 정보 보안이 위험해질 수 있습니다. 따라서 기업 보안 유지, 사용자 만족, 서비스 비용 절감을 골고루 충족하기 위해서는 한쪽으로 치우치지 않는 균형 잡힌 전략이 필요합니다.

3.1 보안성

기본적으로 스트리밍 서비스(동영상, 문서 등)를 하는 가장 큰 목적은 원본 콘텐츠가 무단으로 복제되지 않도록 하는 것입니다. 기업 내 보안 유지를 위해 그리고 e-book 스토어처럼 콘텐츠에 대한 무단 복제를 방지해야 하는 서비스에서 보안은 무엇보다 중요합니다.

이를 충족시키는 중요한 요건은 문서 원본을 모바일과 같은 단말의 보조 기억 장치(SD메모리)에 저장하지 않는 것입니다. 그리고 메모리 해킹을 통한 복사가 가능하기 때문에 RAM과 같은 주기억 장치에 문서 데이터 전체를 저장하는 것도 안전하지 않습니다. 즉 서버가 문서 원본을 가지고 있고 이를 단말에 다운로드 하지 않도록 하면서 단말이 보고자 하는 화면의 최소 구성 요소만 전달함으로써 보안성을 유지해야 합니다.

무선 인터넷 환경은 스니핑(sniffing)과 같은 네트워크 탈취 기술에 더더욱 취약하기 때문에 반드시 암호화가 필요하다. http 프로토콜 기반이라면 반드시 https를 사용하고 추가로 AES256 이상의 보안성을 보장하는 패킷 암호화를 하는 것이 좋다.

그리고 단말에서 화면 캡처 방지에 대한 대책도 필요합니다. 안드로이드의 경우 관련 API가 제공되고 있어 이를 적극적으로 활용해야 합니다. iOS는 화면 캡처 방지가 기술적으로 불가능하지만 사용자가 특정 앱 화면에서 캡처를 시도했을 때 이벤트 함수를 발생시킬 수 있기 때문에 이를 통한 관리가 가능합니다.

또한 화면 자체를 또 다른 단말기의 카메라로 촬영을 할 수도 있기 때문에 워터마크도 필수입니다. 열람 중인 화면에서 특정 사용자를 식별할 수 있는 워터마크를 함께 표시함으로써 사용자에게 보안에 대한 좀 더 많은 책임을 부여할 수 있습니다.

워터마크로 사용자 정보와 식별자를 표시한 문서 워터마크로 사용자 정보와 식별자를 표시함으로써 무단 유출을 방지할 수 있습니다

3.2 편의성

‘편의성’은 사용자 입장에서 문서를 불편함 없이 열람할 수 있는지가 척도가 됩니다. 사용자가 문서 열람을 시도했을 때 응답이 오기까지 대기 시간이 짧을수록 그리고 열람 시 해당 문서 정보를 되도록 많이 취할 수 있는 것이 좋습니다. 아울러 페이지를 이동할 때 끊김 없이 실시간으로 정보를 원활하게 제공할 수 있도록 유지하는 것도 중요합니다.

이를 충족하기 위해서는 사용자가 열람하고 있는 범위를 정확하게 파악하고 그 요청 범위에 맞게 문서 정보를 최대한 빠르게 추출해 전달하는 것이 관건입니다. 모바일이라는 제한된 화면에서 최대한의 정보를 출력하기 위해서는 공간을 최대한 활용하도록 화면을 설계해야 합니다. 아울러 모바일 플랫폼은 디바이스 종류와 해상도에 따라 표시할 수 있는 출력물 형태가 다양하며 세로보기인지 가로보기인지에 따라 레이아웃도 별도로 지정해야 합니다.

모바일용 앱 UI/UX 설계 시 가로 화면에 대한 레이아웃도 별도로 구성 및 구현하는 것을 권장하는 화면 예시 모바일용 앱 UI/UX 설계 시 가로 화면에 대한 레이아웃도 별도로 구성 및 구현하는 것을 권장합니다

문서 열람 외에 상호간의 피드백을 원활히 하기 위한 판서, 특정 페이지 취합 후 재전송하는 별도 기능 등도 제공하는 것이 좋습니다.

3.3 효율성 및 안정성

서비스 자원은 무한하지 않습니다. 따라서 효율성 높은 서비스 운영을 위한 자원 안배가 중요합니다. 여기서 말하는 ‘효율성’은 작업 처리에 있어 얼마만큼 더 짧은 시간에 서버 및 네트워크 자원을 적게 사용해 많은 작업을 하느냐가 관건이 됩니다.

앞서 언급한 편의성이 클라이언트의 영역이라면 효율성은 서버의 영역입니다. 물론 클라이언트, 서버 간의 흐름이나 연계 구조가 유기적으로 얽혀있기 때문에 이 둘을 딱 잘라 구분할 수는 없습니다. 서버에서도 단말의 편의성을 고려한 설계가 수반되어야 하는 부분이 있을 수 있고 단말도 나름의 효율성을 위해 처리하는 연산을 되도록 줄이는 것이 중요하지만 설계나 구현에 들어가는 비중으로 보면 그렇다는 것입니다.

효율성을 좌우하는 것은 먼저 CPU로 하여금 가능한 한 적은 연산을 수행하도록 하는 것입니다. 먼저 스트리밍 대상이 되는 문서의 성격을 잘 파악할 필요가 있습니다. 이를테면 스마트폰이 일상이 된 현재도 많은 e-book 서비스는 워드프로세서로 작성한 문서가 아닌 여전히 텍스트에 첨부 이미지가 곁들여진 문서를 출력해서 보여줍니다. 소설이나 수필과 같은 문학 작품이라면 괜찮을 것이나 디자인 시안이나 프리젠테이션 문서의 경우 단순히 이미지와 텍스트의 조합으로 출력하는 것은 곤란합니다. 이와 같이 콘텐츠 성격에 맞도록 소요 자원을 적절하게 안배할 필요가 있습니다.

안정성은 말 그대로 안정적인 서비스 유지에 대한 지표입니다. 이를테면 재시작하지 않고 장시간동안 서비스를 구동 상태로 두어도 shutdown이 되지 않고 서비스 시작 당시와 동일한 상태를 유지할 수 있는지를 판단하는 기준이 됩니다. 아울러 여러 사용자의 동시 열람 요청으로 트래픽이 몰려도 최대한 이를 수용하고 물리적인 이유로 더 이상 처리가 어려울 경우 대기를 시키거나 다시 시도하라는 안내 메시지를 통해서 이를 보완해야 합니다.

또한 특정 OS에서 동작하도록 계획이 됐다면 그 OS의 특성과 구조를 최대한 활용하는 것도 중요합니다. 이를테면 OLE Automation을 활용할 경우 관련 프로그램에 크게 의존하게 되는데 각각의 작업들이 충돌하지 않도록 작업 영역을 최대한 분할해서 처리하면 안정적으로 작업을 할 수 있습니다. 혹은 CPU 코어 점유에 제한을 걸어서 동시 처리에 문제가 없도록 튜닝을 거쳐 판단하는 것도 방법입니다.

NT server - service manager
  • desktop
  • process - job 1
  • process - job 2
  • desktop
  • process - job 3
  • desktop
  • process - job n

References
[1] https://www.etnews.com/20211012000082
[2] https://zdnet.co.kr/view/?no=20211212213739
[3] https://rd.kdb.co.kr/fileView?groupId=FDFF4A9E-EF90-CEC4-A195-7426DDC05661&fileId=F5764EB2-658E-6651-ECDA-8E656FC98B48
[4] https://www.itworld.co.kr/tags/1971/PDF/87985
[5] https://scienceon.kisti.re.kr/srch/selectPORSrchReport.do?cn=TRKO201000017391
[6] https://techcommunity.microsoft.com/t5/ask-the-performance-team/sessions-desktops-and-windows-stations/ba-p/372473
[7] https://www.saashub.com/compare-apache-pdfbox-vs-pdfium?ref=compare
[8] https://www.linuxlinks.com/best-free-open-source-pdf-development-libraries/




▶   해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 기고자에게 저작권이 있습니다.
▶   해당 콘텐츠는 사전 동의 없이 2차 가공 및 영리적인 이용을 금하고 있습니다.


이 글이 좋으셨다면 구독&좋아요

여러분의 “구독”과 “좋아요”는
저자에게 큰 힘이 됩니다.

subscribe

이상국
이상국

에스코어㈜ 소프트웨어사업부 Knox기술그룹

에스코어에서 기업용 모바일 문서 보안 솔루션 개발 및 유지보수를 담당하고 있습니다.