- webOS의 장점
- Web Application이란?
- Web Service란?
- webOS에서 무엇을 개발할 수 있는가?
- webOS에서 어떤 것을 이용하여 개발할 수 있는가?
- webOS는 어떤 것을 지원하는가?
- 루나 서비스란?
들어가기 전에
본 포스팅은 전공자를 위한 webOS 간단한 소개글입니다.
webOS의 장점
webOS는 LG전자 스마트티비의 플랫폼으로 사용되고 있으며, 차량용 webOS인 webOS auto(webosauto.swsolutions.lge.com)도 존재합니다.
webOS를 플랫폼으로 사용할 때 가질 수 있는 장점에 대해 알아봅시다.
webOS 장점
- web중심으로, web브라우저를 통해 보는 페이지를 앱처럼 단독 실행할 수 있습니다.
- 멀티미디어, Display측면에서 장점을 가집니다. 예) TV, 디지털 사이니지(Digital Sinage) 등
- 다양한 업종에 적용가능한 오픈플랫폼을 제공합니다. 예) 로봇, 스마트홈, 자동차 등
- 시장에서 검증된 플랫폼입니다. 예) LG TV, Signage, 스마트워치 등
- 효율적인 버스 시스템을 사용합니다. (Luna-Bus)
- 다양한 앱 개발 프레임워크를 지원합니다. 예) Enact
- 확장 가능한 플러그형 아키텍처입니다. (1. 쉬운 서비스 확장 2. 코드관리의 유연성)
Web Application이란?
1. Web Application
-인터넷으로 연결된 웹 환경에서 웹 브라우저와 웹 기반 기술을 사용해 사용자들 간의 연결을 통해 쌍방향의 상호작용이 가능한 응용 소프트웨어입니다.(단독으로 실행!)
-Web Application 개발 도중 UI/UX를 빠르게 확인할 수 있습니다.
-Luna-Service API를 사용하여 플랫폼 기능을 활용할 수 있습니다.
웹 기반 기술 : HTML, CSS, JavaScript, React, Enact 등등
앱 메타파일 : appinfo.json을 참고합니다. (예시 기본 코드는 다음번 포스팅에!)
2. Web App Types(웹 어플리케이션 유형)
webOS 시스템에서 Web Application 의 패키징, 딜리버리 방법에 따라 External Web App(외부 웹 어플리케이션)과 Built-in Web App(내장 웹 어플리케이션)으로 분류할 수 있습니다.
External Web App(외부 웹 어플리케이션) | Built-in Web App(내장 웹 어플리케이션) |
webOS 대상 장치에 설치합니다. webOS 장치에서 실행되는 웹 응용 프로그램을 만들 때 필요합니다. 플랫폼 없이 개발 가능합니다. |
webOS 이미지에 내장되어 있습니다. 플랫폼의 기능을 향상시키는 Web Application을 추가하는 데 사용합니다. 플랫폼 있어야 개발 가능합니다 |
3. Web App Management(웹 어플리케이션 관리)
webOS 시스템에서 Web Application 관리와 관련된 구성 요소입니다.
SAM (System and Application Manager) | WAM (Web Application Manager) |
Web Application의 동작을 감독하고 앱의 설치, 시작, 종료 및 제거를 포함한 수명주기 동안 각 앱을 관리합니다 |
Web Application을 시작하고 관리합니다. |
Web Service란?
1. Web Service(=JS Service)
-Web Service(=JS service)는 애플리케이션이 실행되고 있지 않을 때(백그라운드)에도 앱이 작동하는 방법을 제공하는 서비스입니다.
-일반적으로 Web Application에서 사용할 수 없는 플랫폼 기능에 대한 추가 엑세스를 제공합니다.(low-level networking, file system access, and binary data processing ...)
-하나 이상의 앱에 대한 작업을 수행합니다(Web Application은 단독으로 수행!).
-현재 external JS service는 Web Application 내에서 패키징되어야합니다.
사용 기술 : Node.js, C++
서비스 메타파일 : cli에서 자동으로 생성되는 부분이 있습니다.
webOS service bridge 통해 웹앱을 위한 서비스를 불러올 수 있습니다.
2. JS Service Types(웹 서비스 유형)
webOS 시스템에서 JS service 의 패키징, 딜리버리 방법에 따라 분류할 수 있습니다.
External JS Service(외부 웹 서비스) | Built-in JS Service(내장 웹 서비스) |
JS service는 webOS 대상 장치에 설치합니다 webOS 장치에서 실행되는 JS service를 만들 때 필요합니다 플랫폼 없이 개발 가능합니다 |
webOS 이미지에 내장되어 있습니다. 플랫폼의 기능을 향상시키는 JS Service를 추가하는 데 사용합니다. 플랫폼 있어야 개발 가능합니다. |
3. JS Service의 예
- 이메일 리더를 위해 백그라운드에서 첨부 파일 다운로드
- 앱에서 사진 공유 웹 사이트로 이미지 업로드
- long-running 계산 또는 파일 작업 수행
webOS에서 무엇을 개발할 수 있는가?
1. 애플리케이션(앱)과 서비스 개발
- 패키지 타입에 따라 Installable(설치형)과 Built-in(내장형)으로 구분합니다.
- Installable 패키지로 Web기술을 이용한 앱/서비스를 개발할 수 있습니다.
- Built-in 패키지로 Web기술을 이용한 앱/서비스, Native기술을 이용한 앱/서비스로 구분하여 개발할 수 있습니다.
+Web앱과 Native앱의 차이점
web app | native app | |
특징 | -웹사이트를 앱으로 감싸는 형태로, 안드로이드와 iOS를 한 번에 개발 | - 안드로이드와 iOS, 웹에 사용되는 앱을 각각 만들어야 함 |
장점 | -웹페이지 수정만으로 업데이트 즉각 반영 -저렴한 가격과 짧은 소요시간으로 개발 가능 |
-빠른 속도 -화려한 퍼포먼스 -디바이스의 카메라, GPS 등 기능을 사용하여 필요한 정보 활용하여 개발 가능 |
단점 | -인터넷, 디바이스 상태에 따라 속도 영향 -온라인 상태 유지, 서비스 제공에 한계 -속도 느림 |
-기능 구현을 위해 많은 양의 코딩작업 필요 -개발자의 높은 기술력 요구 -업데이트마다 플랫폼 별로 작업해야함(안드로이드/IOS/ ..) |
webOS에서 어떤 것을 이용하여 개발할 수 있는가?
1. Web app 개발
- HTML, CSS, Java Script, Enact, React
2. Native app 개발
- QT
3. Web service 개발
- nodeJS, C/C++
4. Native service 개발
- C/C++
webOS는 어떤 것을 지원하는가?
1. 다양한 앱 개발 프레임워크(framework) 지원
Enact와 SDK를 이용하면 HTML, CSS, JavaScript로만 개발할 때보다 향상된 옵션과 환경에서 앱을 개발할 수 있습니다.
1) 웹 앱 프레임워크 : Enact
- React 기반의 앱 개발 프레임워크입니다.
- React는 UI 프레임워크(UI Component)를 제공하지 않지만, Enact는 smart TV에서 사용하는 UI라이브러리를 제공합니다.
2) 소프트웨어 개발 키트 : SDK
- 웹 앱과 서비스를 위한 개발환경 제공합니다.
- Command-Line Interface, Emulator, Beanviser, Workflow Designer과 같은 도구를 제공합니다.
2. 개발도구
1) Real device: Raspberry Pi (RPi)
- webOS OSE 2.0버전에서는 Raspberry Pi 4 Model B 지원합니다.
- webOS OSE 1.x버전에서는 supports Raspberry Pi 3 Model B 지원합니다.
2) Virtual environment: Emulator
- 라즈베리파이 사용이 어렵거나 가상환경 작업을 선호하는 경우 Emulator를 사용하며, SDK로 제공됩니다.
루나 서비스란?
1. Luna-Bus
운영체제는 프로세스를 기반으로 동작합니다. 프로세스는 '실행중인' 프로그램을 말합니다.
CPU는 한 번에 한 프로세스 밖에 처리할 수 없는데, 우리는 수많은 프로세스를 사용해야합니다. 우리가 동시에 많은 프로세스를 사용할 수 있는 이유는, 운영체제가 매우 빠른 속도로 CPU가 실행할 프로세스를 교체해주기 때문입니다.
프로세스와 프로세스 간의 커뮤니케이션을 의미하는 IPC(Inter-Process Communication)의 중요성은 말하지 않아도 아시겠죠?
Linux의 경우 D-Bus라는 IPC를 사용합니다. webOS에서는 이 D-Bus를 개선하여 Luna-Bus를 사용하고 있습니다.
D-Bus는 프로세스 간 통신 시 항상 daemon을 통해야하기 때문에 병목현상이 발생할 수 있지만, Luna-Bus는 프로세스와 프로세스가 한번 데몬을 통해 통신하면, 이후에는 프로세스와 프로세스가 직접 통신하게 되므로 효율적입니다.
2. Luna-Service API
Luna-Service란 webOS가 제공하는 서비스입니다. Alarm, bluetooth, camera, location, wi-fi관리, application 관리 등 다양한 기능들을 제공합니다.
이러한 서비스들은 각각 API(application programming interface)를 제공하며 이를 활용하여 여러분들만의 어플리케이션과 서비스를 개발할 수있습니다. 예를들어 webOS OSE를 센서가 연결된 라즈베리파이 4보드에 탑재한 뒤 GPIO API를 이용하여 센서 값을 읽어오고 필요한 경우 alarm 관련된 API들을 이용하여 toast를 띄우는 등의 활용이 가능합니다.
Luna-Service에 대한 내용은 추후의 포스팅에서 자세히 다룰 예정이니 참고해주세요!
[링크] https://webos-supporters.tistory.com/19?category=965018
'webOS Article > 0. webOS 개발 준비하기' 카테고리의 다른 글
webOS 개발시작하기1 : CLI 사용하기 (0) | 2021.06.26 |
---|---|
webOS 시작하기2 : webOS 이미지 플래싱 및 실행하기 (1) | 2021.05.28 |
webOS 시작하기1 : webOS OSE 빌드하기 (3) | 2021.05.25 |
webOS란 무엇인가? (0) | 2021.05.25 |