1. PWA๋?
2015๋
์ ๊ตฌ๊ธ ํฌ๋กฌ์ Alex Russell(์๋ ์ค ๋ฌ์
)์ด ๋ธ๋ก๊ทธ์ ํฌ์คํ
์ ํ๋ฉด์ PWA๋ผ๋ ์ฉ์ด๊ฐ ๋ฑ์ฅํ์์ผ๋ฉฐ, 2016๋
์ ์ด๋ฆฐ 'Google I/O 2016'์์ ๋ฏธ๋์ ์น ๊ธฐ์ ์ธ PWA๊ฐ ๊ณต์์ ์ผ๋ก ์๊ฐ๋์์ต๋๋ค.
ย
ย
๋ฏธ๋์ ์น ๊ธฐ์ ๋ก ๋ ์ค๋ฅธ PWA๋ ๋ฌด์์ผ๊น์? PWA(Progressive Web Application, ํ๋ก๊ทธ๋ ์๋ธ ์น ์ฑ)๋ ์น๊ณผ ๋ชจ๋ฐ์ผ ์ฑ ๊ธฐ์ ์ ์ฅ์ ์ ๊ฒฐํฉํ ์น ๊ธฐ์ ๋ก, ๋ชจ๋ฐ์ผ ์น์์ ๋ค์ดํฐ๋ธ ์ฑ๊ณผ ์ ์ฌํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์
๋๋ค. ์ฆ, ์ผ๋ฐ ์น ์ฌ์ดํธ์ ๊ฐ์ด ์น์์ ์คํ๋์ง๋ง ์ฑ์ฒ๋ผ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
ย
ย
2. ์น ์ฑ๊ณผ ๋ค์ดํฐ๋ธ ์ฑ, ๊ทธ๋ฆฌ๊ณ PWA
PWA๋ ์น๊ณผ ๋ค์ดํฐ๋ธ ์ฑ์ ์ฅ์ ์ ๊ฒฐํฉํ ์น ๊ธฐ์ ์
๋๋ค. ๊ณผ์ฐ ์น๊ณผ ๋ค์ดํฐ๋ธ ์ฑ์ ์ด๋ค ์ฅ์ ๋ค์ด ๊ฒฐํฉ๋์ด ์๋์ง ์์๋ณด๋๋ก ํฉ์๋ค.
ย
2.1 ์น ์ฑ
์น์ URL์ ํตํด ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋๊ตฌ๋ , ์ด๋์๋, ๊ทธ๋ฆฌ๊ณ ์ด๋ค ์ฅ์น๋ฅผ ์ฌ์ฉํ๋ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ค๋ ๊ฒ์ด ํฐ ์ฅ์ ์
๋๋ค. ๋ํ ๋ณ๋์ ์ค์น๊ฐ ํ์ํ์ง ์์ต๋๋ค.
์น ์ฑ(Web Apps)์ HTML, CSS, Javascript ๋ฑ์ ์ฌ์ฉํด ๋ง๋ค์ด์ง ์ ํ๋ฆฌ์ผ์ด์
์
๋๋ค. ๋ชจ๋ฐ์ผ ์น๊ณผ ๋ค์ดํฐ๋ธ ์ฑ์ ๊ฒฐํฉํ์ฌ, ๋ชจ๋ฐ์ผ ์น์ ํน์ง๊ณผ ํจ๊ป ๋ค์ดํฐ๋ธ ์ฑ์ ์ฅ์ ์ ๊ฐ์ต๋๋ค. ์ค์น ์์ด URL์ ํตํด ๋ธ๋ผ์ฐ์ ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ณ ํ ํ๋ฉด์ ๋ฐ๋ก ๊ฐ๊ธฐ ์์ด์ฝ์ ์ถ๊ฐํ์ฌ ๋ค์ดํฐ๋ธ ์ฑ์ฒ๋ผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ์ง๋ง ๋คํธ์ํฌ๊ฐ ์ฐ๊ฒฐ๋์ด ์์ง ์์ ์คํ๋ผ์ธ ์ํ์์๋ ์ฌ์ฉ์ด ์ด๋ ค์ฐ๋ฉฐ, ์นด๋ฉ๋ผ์ ๊ฐ์ ํ๋์จ์ด์ ์ ๊ทผํ ์ ์์ต๋๋ค. ๋ํ ํ๋ซํผ ๋ด์ API๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
ย
2.2 ๋ค์ดํฐ๋ธ ์ฑ
๋ค์ดํฐ๋ธ ์ฑ(Native Apps)์ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์ ์ต์ ํ๋ ์ธ์ด๋ก ๊ฐ๋ฐ๋ ์ฑ์
๋๋ค. ๋ค์ดํฐ๋ธ ์ฑ์ ์๋๋ก์ด๋์ ios์ ๊ฐ์ ํน์ ํ๋ซํผ์ ์ํด ๋ง๋ค์ด์ง ์ฑ์ ๋งํ๋๋ฐ, ์๋๋ก์ด๋๋ Java ๋๋ Kotlin์ ์ฌ์ฉํ๊ณ , ios๋ Swift ๋๋ Object C๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ ์ ์ํฉ๋๋ค.
๋ค์ดํฐ๋ธ ์ฑ์ ํน์ ํ๋ซํผ์ ์ต์ ํ๋์ด ์๊ธฐ ๋๋ฌธ์ ์์ ์ ์ด๋ฉฐ ์คํ ์๋๊ฐ ๋น ๋ฆ
๋๋ค. ๊ทธ๋ฟ๋ง ์๋๋ผ ํ๋ซํผ์์ ์ ๊ณตํ๋ ๋ค์ํ API๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ํ ๋ค์ดํฐ๋ธ ์ฑ์ ๋คํธ์ํฌ ์ฐ๊ฒฐ๊ณผ ๊ด๊ณ์์ด ์คํ๋ผ์ธ์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ, ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์ ์นด๋ฉ๋ผ์ ๊ฐ์ ์ฅ์น์๋ ์ํธ์์ฉํ ์ ์๊ณ , ํธ์ ์๋ฆผ์ ์์ ํ ์๋ ์์ต๋๋ค.
ํ์ง๋ง, ํ๋ซํผ์ ํ์ ์ ์ด๋ผ๋ ๋จ์ ์ด ์์ต๋๋ค. ๊ฐ ํ๋ซํผ์ ๋ง๋ ์ฑ์ ์ ์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ง์ ์๊ฐ๊ณผ ๋น์ฉ์ ํฌ์ํด์ผ ํ๋ ์ด๋ ค์์ด ์์ต๋๋ค.
ย
2.3 PWA
ย
์ ๊ทธ๋ํ๋ฅผ ์ดํด๋ณด๋ฉด ์น ์ฑ์ ์ ๊ทผ์ฑ์ด ๋๊ณ , ๋ค์ดํฐ๋ธ ์ฑ์ ๊ธฐ๋ฅ์ ์ธ ์ธก๋ฉด์ด ๋๊ฒ ๋ํ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ PWA๋ ๊ทธ ๋์ ๋ชจ๋ ํฌํจํ๋ ์๋ฆฌ์ ์์นํด ์์ต๋๋ค.
์ฆ, PWA๋ ์น ์ฑ์ ๋์ ์ ๊ทผ์ฑ๊ณผ ๋ค์ดํฐ๋ธ ์น์ ๊ธฐ๋ฅ์ ์ธ ์ธก๋ฉด์ ์ฅ์ ์ ๋ชจ๋ ๊ฐ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
ย
Google I/O 2016์์ Web Developer Relation ํ์ Paul์ด PWA์ ๋ํด์ ์ด๋ ๊ฒ ๋งํฉ๋๋ค.
ย
"That app looks like native, I hope it behaves like it." (๋ค์ดํฐ๋ธ ์ฑ๊ณผ ๊ฐ์ด ๋ณด์ด๋๊น, ์ค์ ๋ก๋ ๊ทธ๋ ๊ฒ ํ๋ํ๊ธธ ๋ฐ๋ผ.)
ย
์ฌ๊ธฐ์ ๋งํ๋ behaves(ํ๋)์ Performance์ Interaction์ ํฉํ ๊ฒ์ผ๋ก, ์ฑ์ด ์ด๋ค ๋๋์ด๊ณ ๋ฌด์์ ํ ์ ์๋์ง ์ง๊ด์ ์ธ ๊ฒ๋ค์ ๋งํฉ๋๋ค. ๊ทธ๋ผ PWA๊ฐ ์ทจํด์ผ ํ ์ฑ์ ๊ธฐ๋ฅ์ ์ด๋ค ๊ฒ์ด ์์๊น์?
ย
๋ค์์ PWA์ ๋ํ ๊ธฐ๋ฅ์
๋๋ค.
- PUSH ์๋ฆผ
- ์คํ๋ผ์ธ ํ๊ฒฝ
- ํ ํ๋ฉด์ ์ถ๊ฐ
ย
์ฐ์ PWA๋ ์ฌ์ฉ์๊ฐ ๋ค์ ์ฑ์ผ๋ก ๋์์ฌ ์ ์๋๋ก ํฐ ์ญํ ์ ํ๋ Push ์๋ฆผ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ํ ์คํ๋ผ์ธ ํ๊ฒฝ์์๋ ์จ๋ผ์ธ์์์ ๋์ผํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ฉฐ ์ค์ ๋ค์ดํฐ๋ธ ์ฑ์ฒ๋ผ ํ ํ๋ฉด์ ์ถ๊ฐํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ HTTPS๋ฅผ ์๊ตฌํ๋๋ฐ ์ด๋ PWA๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์๊ฑด ์ค ํ๋์
๋๋ค. ๋ค์ ์ฑํฐ๋ก ๋์ด๊ฐ ๊ณ์ํด์ PWA์ ์๊ฑด์ ๋ํด ์์๋ณด๋๋ก ํฉ์๋ค.
ย
Google I/O ?
2008๋
์ ์์๋์ด ๊ตฌ๊ธ์ด ์ผ ๋
์ ํ ๋ฒ ๊ฐ์ตํ๋ ๊ฐ๋ฐ์ ์งํฅ ์ฝํผ๋ฐ์ค๋ก, ๊ตฌ๊ธ์ ์น, ๋ชจ๋ฐ์ผ, ๊ตฌ๊ธ API, ์ฑ ์์ง ๋ฑ ๊ฐ๋ฐฉํ ์น ๊ธฐ์ ์ ๋ํ ์ฌ๋ ์๋ ์ธ์
์ด ์ ๊ณต๋ฉ๋๋ค.
Google I/O์ I์ O๋ "Input/Output"๊ณผ "Innovation in the Open"๋ฅผ ์๋ฏธํฉ๋๋ค.
(์ถ์ฒ : ์ํค๋ฐฑ๊ณผ)