OS(Operating System)의 선택을 이용한 Resources 최적화 연구

테크
March 12, 2021

지난 “효율적인 Client App 개발을 위한 Technology Roadmap”에서 적은 개발 Resources로 어떻게 Alchera에서 Client팀이 개발하는지에 대해서 작성하였습니다.

소프트웨어 관점에서 Cross-Platform에 대해서 알아보고 이를 대응하기 위해서 Client팀에서는 Multi-Platform 개발환경을 만들어 다양한 요구사항과 환경에서 적응될 수 있는 앱을 구현하고 있습니다.

Alchera에서는 저희만의 제품이 있습니다. 각 회사에는 기술을 효과적으로 고객에게 전달하기 위해서 기술을 솔루션화하여 다양한 제품을 생산하고 있습니다. Alchera는 소프트웨어 회사이기 때문에 제품 장치의 Spec이나 종류를 제한적으로 선택할 수 밖에 없습니다. 그리고 그 장치에 저희 Client 소프트웨어를 올리기 위해서 다양한 OS에 적합한 솔루션을 개발해야 합니다.


OS(Operating System)


OS는 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어입니다.

https://en.wikipedia.org/wiki/Operating_system

OS의 종류는 다양하며 대표적으로 Microsoft Windows, OS X, Linux&GNU, BSD&BSD 계열, Chrome OS, etc이 이있습니다.

Client팀에서 개발된 프로그램을 수행시키기 위해서는 컴퓨터 하드웨어와 프로그램 사이에 중재자인 OS(Operating System)가 필요하며 제품에 들어가는 장치(Camera, Bluetooth, NFC, etc)를 사용하기 위해서는 OS에 적절한 장치 드라이버가 필요합니다.

제품 개발을 위한 Client 팀의 고민

제품 개발을 위해서는 이에 맞는 Target Board 및 Device선정과 제품의 디자인까지 많은 소요가 수반됩니다. Device가 정해지면 이에 대한 OS는 무엇을 선택할지를 고민하게 되며 OS의 선택에 따라 소프트웨어 개발을 진행하게 됩니다.

OS의 선택에 따라 소프트웨어 개발이 다양해지기 때문에 이를 위해서 Client팀은 Multiplatform 개발환경을 기획했습니다.
문제는 OS에 따른 Multiplatform을 기획했지만 여전히 제품 개발을 위해서는 OS에 대한 선택이 남아있는 문제가 있습니다.

저희 제품은 주로 카메라를 이용하여 AI기술을 적용시키기 때문에 GUI가 있어야 하며 이를 개발하기 위해 제품에 설치할 수 있는 OS는 MS Windows, Linux 계열, Chrome OS와 같은 OS가 있습니다.


Microsoft Windows

Microsoft Windows 10


가장 많은 사용자와 대중적인 OS로 대부분의 하드웨어와 소프트웨어가 동작됩니다. 수많은 버전(XP, 7, Vista, 8..)을 거쳐 Windows 10까지 왔지만 OS X나 Linux에 비해 해커가 좋아하는 보안에 취약하고 안정적이지 않기 때문에 지속적인 업데이트를 받아야 합니다.
제품을 만들기 위해서는 터치스크린이나 기타 장치를 유연하게 사용할 수 있어야 합니다. Windows 10은 이러한 사항들을 만족합니다.


Ubuntu Linux

Ubuntu Linux


Linux는 Opensource이며 무료입니다. 원하는 하드웨어에 설치할 수 있으며 많은 개발자 환경이 Linux계열이기 때문에 개발환경에도 친숙합니다.
Ubuntu Linux는 높은 가동 시간을 요구하는 서버에서 많이 사용하는 만큼 안전하고 안정적인 OS로 유명합니다. Ubuntu에는 내장 된 바이러스 백신도 포함되어 있으며 정기적인 보안 패치 및 업데이트를 제공합니다.

터치스크린을 지원하지만 완전하진 않습니다. 그리고 하드웨어 주변 장치 및 널리 사용되는 응용 프로그램 소프트웨어에 대한 지원이 Windows, macOS 및 심지어 Chrome OS보다 훨씬 뒤떨어져 있다는 것입니다.

제품을 고객에게 전달하여 고객이 사용하긴 어려우며 개발자 지원이 필요할 수도 있습니다.


Google Chrome OS

Google Chrome OS


Google의 OS 무료이며 다소 복잡하지 않고 웹 브라우저와 웹 애플리케이션을 컴퓨터에 제공하는 간단한 방법으로 시작되었습니다. 이제 Google Play에서 Android 다운받아 앱을 실행할 수 있습니다. 스마트폰과의 계정 통합을 할 경우 더 다양한 방향으로 활용이 가능합니다.
다양한 저가형 Chromebook(laptop) 및 Chromebox (Desktop version)가 있으며 터치스크린 및 스타일러스 펜이 동작 가능합니다.
Chrome Web Store와 Google Play라는 매우 다른 두 개의 App store가 있으며 Microsoft Word나 Adobe Photoshop과 같은 고급 응용 프로그램을 사용할 순 없지만 App Store에서 다양한 App을 다운받을 수 있기 때문에 교육용으로 많이 사용하고 있습니다.


제품 개발을 위한 Client 팀의 OS선택

제품을 위한 장치에 사용되는 앱은 특수 목적인 앱이 대부분 입니다. 제품 장치내에서 Word문서를 작성하거나 Photoshop을 이용하여 화면 편집을 할 필요는 없습니다. 터치스크린과 같은 간단한 조작만으로도 동작이 되어야 하며 다른 앱이 돌아갈 필요도 없습니다.
이에 MS Windows OS는 훌륭한 대안입니다. 하지만 Windows OS는 보안에 취약하며 Linux계열의 OS처럼 높은 가동률로 안정적이지도 않습니다. Linux계열은 일반 사용자가 제품 장치를 사용하기 위해서 알수없는 Terminal화면을 볼 수도 있습니다. 하드웨어 및 소프트웨어에 대한 지원이 떨어지며 이를 위해 직접 드라이버 개발을 할 수도 있습니다.

ChromeOS

Client팀에서는 카메라를 이용한 앱을 만들기 위해 Android앱도 만들고 있습니다. 한번 개발한 Android앱 OS에 따라 재개발을 하지 않고 PC형 Chip에서 그대로 사용할 수 있습니다. Linux App이 동작되어야 한다면 Linux App도 실행시킬 수 있습니다. 또한 장시간 동작시에도 안정적이며 안전한 Linux계열이고 Windows처럼 부팅만으로 수많은 백그라운드 프로세스가 실행되지 않고 오로지 실행된 앱을 위해서 동작하는 ChromeOS를 선택하게 되었습니다. ChromeOS는 저사양 PC부터 고사양 PC를 아우르며 무료로 라이센스비용이 없습니다.


Chrome OS위에 WebCam을 연결한 사무실 입출입 시스템의 Android Scan App 실행


맺음말
Linux계열은 무료이며 안정적이고 안전하기 때문에 이전부터 Embedded 나 저가형 PC에서 많이 사용되었습니다. 기존에 개발된 스마트폰 앱을 재활용하면서 키오스크(Kiosk, 터치 패널 등이 달린 작은 설치형 디지털 단말기)나 PC로의 확장되는 앱을 동시에 개발하기란 쉽지 않습니다. PC형 장치에도 설치할 수 있으며 Android App을 설치할 수 있는 ChromeOS는 여러면에서 장점일 수 있습니다.

이전글
이전글
다음글
다음글
목록보기