์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 

์•„์ด์˜ค๋‹‰์œผ๋กœ ์˜คํ”„๋ผ์ธ ํผ์ŠคํŠธ ์›น (offline first web) ๋งŒ๋“ค๊ธฐ

์ด๋ฒˆ ๊ฐ•์˜์—์„œ๋Š” ํ˜„์žฌ PWA ๊ฐœ๋ฐœ์— ๊ฐ€์žฅ ์ตœ์ ํ™”๋˜์–ด ์žˆ๋Š” ionic๊ณผ CouchDB๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ์ „ํ™”๋ฒˆํ˜ธ๋ถ€ ์›น์„ ๋งŒ๋“ค๊ณ , ๊ตฌ์ถ• ๊ณผ์ •์„ ํ†ตํ•˜์—ฌ ์–ด๋– ํ•œ ๋ฐฉ์‹์œผ๋กœ ์˜คํ”„๋ผ์ธ์—์„œ ๋™์ž‘๊ฐ€๋Šฅํ•œ์ง€ ์„ค๋ช…์„ ํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

Thumbnail

์ค‘๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[์›น ๊ฐœ๋ฐœ] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • ์˜คํ”„๋ผ์ธ ํผ์ŠคํŠธ ์›น ๊ฐœ๋ฐœ

  • Ionic ํ”„๋ ˆ์ž„์›Œํฌ ์‚ฌ์šฉ๋ฒ•

  • CouchDB์™€ PouchDB๋ฅผ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”

  • ์„œ๋น„์Šค ์›Œ์ปค ์„ค์ • ๋ฐ ๊ด€๋ฆฌ

  • ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ๊ฐ์ง€ ๋ฐ ์—๋Ÿฌ ์ฒ˜๋ฆฌ

  • Lighthouse๋ฅผ ์ด์šฉํ•œ ์„ฑ๋Šฅ ํ‰๊ฐ€

Ionic + CouchDb + PouchDb = Offline first Web ๋งŒ๋“ค๊ธฐ

์ด๋ฒˆ ๊ฐ•์˜์—์„œ๋Š” ํ˜„์žฌ PWA ๊ฐœ๋ฐœ์— ๊ฐ€์žฅ ์ตœ์ ํ™”๋˜์–ด ์žˆ๋Š” ionic๊ณผ CouchDB๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ์ „ํ™”๋ฒˆํ˜ธ๋ถ€ ์›น์„ ๋งŒ๋“ค๊ณ , ๊ตฌ์ถ• ๊ณผ์ •์„ ํ†ตํ•˜์—ฌ ์–ด๋– ํ•œ ๋ฐฉ์‹์œผ๋กœ ์˜คํ”„๋ผ์ธ์—์„œ ๋™์ž‘๊ฐ€๋Šฅํ•œ์ง€ ์„ค๋ช…์„ ํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค. PWA(Progressive Web App)์˜ ๊ฐœ๋…์ด Web ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ ์š”์ฆ˜ ํ•œ์ฐธ ๊ด€์‹ฌ์„ ๋Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. PWA์˜ ๊ฐœ๋…์„ ๊ตฌ์„ฑํ•˜๋Š” ์ค‘์š”ํ•œ ์š”์†Œ์ค‘์˜ ํ•˜๋‚˜๊ฐ€  network dependency ์ž…๋‹ˆ๋‹ค. ์ฆ‰, Network ์ƒํƒœ์™€  ์ƒ๊ด€์—†์ด ์›น ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๋ง์ธ๋ฐ, ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด Service-Worker์™€ ์˜คํ”„๋ผ์ธ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” ๋ฐ์ดํƒ€๋ฒ ์ด์Šค ์ž…๋‹ˆ๋‹ค.

ionic project์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” Service-Worker ๊ธฐ๋Šฅ๊ณผ CouchDB, PouchDB๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ž๋™ ๋™๊ธฐํ™” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋“ค์€ Offline ์—์„œ๋„ ์„œ๋น„์Šค๊ฐ€ ๊ฐ€๋Šฅํ•œ 'offline first web'์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

main feature

  • ionic 3
  • CouchDB
  • PouchDB
  • Offline First Web
  • PWA

 ๋„์›€์ด ๋˜๋Š” ๋ถ„๋“ค

  • PWA(Progressive Web App) ๊ฐœ๋ฐœ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฐœ๋ฐœ์ž
  • Ionic์„ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์ดˆ๋ณด์ž
  • Offline์—์‚ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ web์„ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ฐœ๋ฐœ์ž
  • CouchDB,PouchDb ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๊ฐœ๋ฐœ์ž

๊ฐœ๋ฐœ ํ™˜๊ฒฝ

  • cli packages: (/usr/local/lib/node_modules)
    • @ionic/cli-utils  : 1.19.0    ionic (Ionic CLI) : 3.19.0
  • global packages:
    • cordova (Cordova CLI) : 7.1.0
  • local packages:
    • @ionic/app-scripts : 3.1.4    Cordova Platforms  : android 6.3.0    Ionic Framework    : ionic-angular 3.9.2
  • System:
    • ios-deploy : 1.9.2    Node       : v8.6.0    npm        : 5.5.1    OS         : macOS High Sierra    Xcode      : Xcode 9.2 Build version 9C40b

์ง€์‹๊ณต์œ ์ž ์†Œ๊ฐœ

๊น€์ฒ ํ˜„ SDS LGAd ์‹ฌ๋งˆ๋‹ˆ(๊ฒ€์ƒ‰์—”์ง„) Mnet Media(ํ˜„ CJ E&M) ์„ ๊ฑฐ์ณ ํ˜„์žฌ ํ”„๋ฆฌ๋žœ์„œ/์ปจ์„คํ„ดํŠธ๋กœ ํ™œ๋™์ค‘

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ์›น ๊ฐœ๋ฐœ ์ดˆ๋ณด์ž

  • ์˜คํ”„๋ผ์ธ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

  • Ionic ํ”„๋ ˆ์ž„์›Œํฌ์— ๊ด€์‹ฌ ์žˆ๋Š” ๊ฐœ๋ฐœ์ž

  • NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

  • ์‹ค์Šต ์ค‘์‹ฌ์˜ ํ•™์Šต์„ ์„ ํ˜ธํ•˜๋Š” ์‚ฌ๋žŒ

์•ˆ๋…•ํ•˜์„ธ์š”
๊น€์ฒ ํ˜„์ž…๋‹ˆ๋‹ค.

2,057

๋ช…

์ˆ˜๊ฐ•์ƒ

44

๊ฐœ

์ˆ˜๊ฐ•ํ‰

25

๊ฐœ

๋‹ต๋ณ€

4.9

์ 

๊ฐ•์˜ ํ‰์ 

3

๊ฐœ

๊ฐ•์˜

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

14๊ฐœ โˆ™ (2์‹œ๊ฐ„ 30๋ถ„)

๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!