Open Source OS์ธ webOS๋ฅผ ํ์ฉํ์ฌ "LG์ Smart TV" ์ ๊ฐ์ด ์ํํธ์ ์ฌ๋ ๋ชจ๋ ์ธ๋๊ฐ ํ๋์ฉ์ ๊ฐ๊ณ ์๋ ์ํจ๋๋ฅผ ํ๋ซํผ์ผ๋ก ๋ง๋ค์ด ๊ฐ๋ฐ์๊ฐ ์์ ๋กญ๊ฒ ๋ง๋ค๊ณ ๋ฐฐํฌํ ์ ์๋ ํ๊ฒฝ์ App Store ๊ธฐ๋ฅ์ ํตํด ๊ตฌํํ๊ณ ์ ํ์๋ค.
Home ++ ์ํจ๋์ App Store ์ฑ / ๊ธฐ๋ฅ์ "๋ฐฐ๋ฌ ๋๋ ๋ฐฉ์ง ๊ธฐ๋ฅ", "CCTV ๊ธฐ๋ฅ", "ํ ํธ๋ ์ด๋ ๋์ฐ๋ฏธ ๊ธฐ๋ฅ", "๊ฐ์ ์ ์ด ๊ธฐ๋ฅ", "์ฐจ๋ ์ถ์
์ค์ผ์ฅด๋ง ๊ธฐ๋ฅ"์ ์ด๋ Home ++ ์ํจ๋์์๋ ์ค์นํ ์ ์๊ฒ ํด์ฃผ๋ ์ญํ ์ ํ๋ค.
AWS EC2(ํด๋ผ์ฐ๋ ์๋ฒ):
- ๋ณด์ ๊ทธ๋ฃน์ ์ธ๋ฐ์ด๋ ๊ท์น์์ 8000ํฌํธ๋ฅผ ๊ฐ๋ฐฉํ์ฌ ํฌํธ ํฌ์๋ฉ์ ํ์๋ค.
- Express.js(์์ ์คํธ๋ฆฌ๋ฐ / ํ์ผ ์๋ฒ)
- ์ํ๋ ์ฑ์ apps/๋ก GET ์์ฒญ์ ํตํด ๋ค์ด๋ก๋ ๋ฐ์ ์ ์๋ค.
- wget์ ํตํด Express ์๋ฒ์ get ์์ฒญ์ ํ๋ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์, get method์ respose์ download method๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ ์ ์์๋ค.
webOS(์ํจ๋):
- ENACT(com.appstore.app)
- enact์ Repeater๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๋ณ ๋ก๊ณ , ์ด๋ฆ, ์ค๋ช
์ด ํฌํจ๋ ํ์ผ์ ์์ฑํ ์ ์๊ฒ ๋ง๋ค์๋ค.
- enact์ Repeater๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๋ณ ๋ก๊ณ , ์ด๋ฆ, ์ค๋ช
์ด ํฌํจ๋ ํ์ผ์ ์์ฑํ ์ ์๊ฒ ๋ง๋ค์๋ค.
- Node.JS(com.appstore.app.service)
- Node.js์ ๋ด์ฅ ๋ชจ๋ ์ค ํ๋์ธ child process์ execSync method๋ฅผ ์ฌ์ฉํ์ฌ GNU์ wget ๋ช ๋ น์ ์คํ์์ผ, ์ฑ๋ค์ IPK๋ฅผ AWS EC2์ ์์ ์คํธ๋ฆฌ๋ฐ / ํ์ผ ์๋ฒ๋ก๋ถํฐ ๊ฐ์ ธ์๋ค.
- com.webos.appInstallService ์ install method์ remove method๋ฅผ ํตํด์ ์ค์น, ์ญ์ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์์๋ค.
- ์ถํ, ๋ณต์กํ ์ฑ๋ค์ ์ด๊ธฐ ์ค์ ์ IPK ์ค์น์ ํจ๊ปํ๊ฒ ๊ฐ์ ํ๊ณ ์ ํ๋ค.(ex. docker ์ค์ , ํ์ผ ๊ถํ ์ค์ ๋ฑ)
- ์ด์์ฒด์ : Windows 11, Ubuntu 20.04.5 LTS, webOS 2.18.0
- ๋๋ฐ์ด์ค ๊ตฌ์ฑ : Raspberry Pi 4B
- IDE : Visual Studio Code
- ๊ฐ๋ฐ ์ธ์ด : ENACT, Node.JS
- package manager : npm
AWS EC2๋ฅผ ์์ ์ด ์๋ก ๋ง๋ค์ด ์ฐ๊ฒ ๋๋ค๋ฉด, ํด๋น ๋ถ๋ถ๋ง์ ๋ฐ๊ฟ์ฃผ๋ฉด ๋ฉ๋๋ค. ๋งํฌ
const EC2_IP = "3.34.50.139:8000";
ares-setup-device์์ default๋ฅผ ์์ ์ด ์ค์นํ webOS์ IP๋ก ์ค์ ํ์ธ์.
source wallpad.setup.sh
- ๊ธฐ์กด์๋ IPK ํ์ผ์ ์ฑ, ์๋น์ค์ ํจ๊ป ํจํค์งํ์ฌ ์ฌ๋ฆฌ๊ณ ์ ํ์์ผ๋, IPKํ์ผ์ ํจ๊ป ํจํค์ง ๋์ง ์๋๋ค.
--> ์ธ๋ถ ์๋ฒ์ธ EC2์ Express ์๋ฒ์ ํ์ผ ์๋ฒ๋ฅผ ํจ๊ป ๋์ด wget์ ํตํด IPK ํ์ผ์ ๊ฐ์ ธ์ฌ ์ ์๊ฒ ํ์๋ค.