Skip to content

๐Ÿ† [๋Œ€์ƒ์ž‘] ์ž„๋ฒ ๋””๋“œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฒฝ์ง„๋Œ€ํšŒ webOS๋ถ€๋ฌธ ๋ฐฉํŒŒ์ œํŒ€ - AppStore ๊ธฐ๋Šฅ

Notifications You must be signed in to change notification settings

webOS-KOSS/AppStore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

40 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

App Store

AppStore

์†Œ๊ฐœ

Open Source OS์ธ webOS๋ฅผ ํ™œ์šฉํ•˜์—ฌ "LG์˜ Smart TV" ์™€ ๊ฐ™์ด ์•„ํŒŒํŠธ์— ์‚ฌ๋Š” ๋ชจ๋“  ์„ธ๋Œ€๊ฐ€ ํ•˜๋‚˜์”ฉ์€ ๊ฐ–๊ณ  ์žˆ๋Š” ์›”ํŒจ๋“œ๋ฅผ ํ”Œ๋žซํผ์œผ๋กœ ๋งŒ๋“ค์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์œ ๋กญ๊ฒŒ ๋งŒ๋“ค๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ App Store ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜์˜€๋‹ค.

Home ++ ์›”ํŒจ๋“œ์˜ App Store ์•ฑ / ๊ธฐ๋Šฅ์€ "๋ฐฐ๋‹ฌ ๋„๋‚œ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ", "CCTV ๊ธฐ๋Šฅ", "ํ™ˆ ํŠธ๋ ˆ์ด๋‹ ๋„์šฐ๋ฏธ ๊ธฐ๋Šฅ", "๊ฐ€์ „ ์ œ์–ด ๊ธฐ๋Šฅ", "์ฐจ๋Ÿ‰ ์ถœ์ž… ์Šค์ผ€์ฅด๋ง ๊ธฐ๋Šฅ"์„ ์–ด๋Š Home ++ ์›”ํŒจ๋“œ์—์„œ๋“  ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

System Architecture

SystemArchitecture

๊ธฐ์ˆ  ์†Œ๊ฐœ

AWS EC2(ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„):

  • ๋ณด์•ˆ ๊ทธ๋ฃน์˜ ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์—์„œ 8000ํฌํŠธ๋ฅผ ๊ฐœ๋ฐฉํ•˜์—ฌ ํฌํŠธ ํฌ์›Œ๋”ฉ์„ ํ•˜์˜€๋‹ค.

  • Express.js(์˜์ƒ ์ŠคํŠธ๋ฆฌ๋ฐ / ํŒŒ์ผ ์„œ๋ฒ„)
    • ์›ํ•˜๋Š” ์•ฑ์„ apps/๋กœ GET ์š”์ฒญ์„ ํ†ตํ•ด ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
    • wget์„ ํ†ตํ•ด Express ์„œ๋ฒ„์— get ์š”์ฒญ์„ ํ•˜๋Š” ๊ตฌ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์—, get method์— respose์˜ download method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

webOS(์›”ํŒจ๋“œ):

  • ENACT(com.appstore.app)
    • 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

Customize

AWS EC2๋ฅผ ์ž์‹ ์ด ์ƒˆ๋กœ ๋งŒ๋“ค์–ด ์“ฐ๊ฒŒ ๋œ๋‹ค๋ฉด, ํ•ด๋‹น ๋ถ€๋ถ„๋งŒ์„ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋งํฌ

const EC2_IP = "3.34.50.139:8000";

Quick Start

ares-setup-device์—์„œ default๋ฅผ ์ž์‹ ์ด ์„ค์น˜ํ•  webOS์˜ IP๋กœ ์„ค์ •ํ•˜์„ธ์š”.

source wallpad.setup.sh

์žฅ์•  ์š”์ธ

  1. ๊ธฐ์กด์—๋Š” IPK ํŒŒ์ผ์„ ์•ฑ, ์„œ๋น„์Šค์™€ ํ•จ๊ป˜ ํŒจํ‚ค์ง•ํ•˜์—ฌ ์˜ฌ๋ฆฌ๊ณ ์ž ํ•˜์˜€์œผ๋‚˜, IPKํŒŒ์ผ์€ ํ•จ๊ป˜ ํŒจํ‚ค์ง• ๋˜์ง€ ์•Š๋Š”๋‹ค.
    --> ์™ธ๋ถ€ ์„œ๋ฒ„์ธ EC2์˜ Express ์„œ๋ฒ„์— ํŒŒ์ผ ์„œ๋ฒ„๋ฅผ ํ•จ๊ป˜ ๋‘์–ด wget์„ ํ†ตํ•ด IPK ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€๋‹ค.

About

๐Ÿ† [๋Œ€์ƒ์ž‘] ์ž„๋ฒ ๋””๋“œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฒฝ์ง„๋Œ€ํšŒ webOS๋ถ€๋ฌธ ๋ฐฉํŒŒ์ œํŒ€ - AppStore ๊ธฐ๋Šฅ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published