Contents

Deview-2017 Day1 ๋ฆฌ๋ทฐ

๋ฒŒ์จ 10๋ฒˆ์งธ Naver์—์„œ ์ฃผ์ตœํ•˜๋Š” Deview. ์˜ฌํ•ด๋„ ์–ด๊น€์—†์ด ์ฐธ์„์„ ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ์ด๋ฒˆ์—” ๋ณด๊ณ  ๋“ฃ๊ณ  ๋Š๊ผˆ๋˜ ๋ถ€๋ถ„๋“ค์„ ์กฐ๊ธˆ์ด๋ผ๋„ ๊ฐ„์งํ•˜๊ณ  ์‹ถ์€ ๋งˆ์Œ์— ๋ฐ”๋กœ ๋ธ”๋กœ๊น…์„ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. (์˜ค๋žœ๋งŒ์— ๋ธ”๋กœ๊น…์ด๊ธด ํ•˜์ง€๋งŒ…) ํ•ญ์ƒ Deview์— ์˜ฌ๋•Œ๋งˆ๋‹ค ๋Š๋ผ๋Š” ๋ถ€๋ถ„์ธ๋ฐ ์ด๋ฒˆ์ฐธ์„์ด 3๋ฒˆ์งธ ๋˜๋Š”๋“ฏ ํ•˜๋‹ค ์„ธ์ƒ์€ ์ข๊ณ  ๋Šฅ๋ ฅ์ž๋Š” ๋งŽ์œผ๋ฉฐ ๋‚ด๊ฐ€ ํ•œ๋ฒˆ์ฏค ๋ณธ๊ฒƒ๋“ค์€ ์ด๋ฏธ ์ง€๋‚˜๊ฐ„ ๊ธฐ์ˆ ๋“ค์ด๋ผ๋Š”๊ฒƒ, ๋”๋ถˆ์–ด ๋‹จ์ƒ์œ„์— ์˜ฌ๋ผ๊ฐ€ ๋ฐœํ‘œํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋„ ์˜ˆ์ „์—” ๋‚˜์™€ ๋˜‘๊ฐ™์ด ๋ฐœํ‘œ๋ฅผ ๋“ฃ๋Š” ์ผ๋ฐ˜ ์‚ฌ๋žŒ์ด์˜€๋‹ค๋Š”๊ฒƒ. ์ด๋ฒˆ์—๋„ ๋งŽ์€ ์ƒ๊ฐ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ตฌ๊ตฌ์ ˆ์ ˆ ๊ฐœ์ธ์ ์œผ๋กœ ๋Š๋‚€์ ์„ ์ ๋Š”๊ฒƒ์— ์•ž์„œ ๊ฐ•ํ•œ ๊ธฐ์–ต์ด ๋‚จ์•˜๋˜ ๋ช‡๋ช‡ ์„ธ์…˜๋“ค์— ๋Œ€ํ•ด์„œ ๊ฐ„๋žตํ•˜๊ฒŒ ๋ฆฌ๋ทฐ๋ฅผ ๋จผ์ € ํ•˜๋Š”๊ฒŒ ๋งž๋Š” ์ˆœ์„œ๊ฐ™๋‹ค.

์ฑ… ์ฝ์–ด์ฃผ๋Š” ๋”ฅ๋Ÿฌ๋‹ ( ๊น€ํƒœํ›ˆ / ๋ฐ๋ธŒ์‹œ์Šคํ„ฐ์ฆˆ )

์Šฌ๋ผ์ด๋“œ ์ž๋ฃŒ

๋„ค์ด๋ฒ„์—์„œ ์œ ์ธ๋‚˜์˜ ๋ชฉ์†Œ๋ฆฌ๋กœ ์ฑ…์„ ์ฝ์–ด์ฃผ๋Š”๊ฒƒ์„ ๋ณด๊ณ  ํฅ๋ฏธ๋ฅผ ์–ป์–ด ๊ฐœ๋ฐœํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์Œ์„ฑํ•ฉ์„ฑ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์•ผ ๋จธ์‹ ๋Ÿฌ๋‹์ด๋‚˜ ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ์ˆ ์„ ์ ‘๋ชฉ์‹œํ‚ค๋Š”๋ฐ ๋„์›€์ด ๋˜๋Š”๋ฐ ๋ฐ•๊ทผํ˜œ ์ „ ๋Œ€ํ†ต๋ น, ๋ฌธ์žฌ์ธ ๋Œ€ํ†ต๋ น, ์†์„ํฌ ์•„๋‚˜์šด์„œ์˜ ์˜์ƒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜์—ฌ ๋ฌธ์žฅ๋ณ„๋กœ ํ…์ŠคํŠธ-์Œ์„ฑ์„ ๋งž์ถ”๊ณ (pair) ๋จธ์‹ ๋Ÿฌ๋‹ + ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ์ˆ ์„ ์ด์šฉํ•ด์„œ ๋งŒ๋“ค์ˆ˜ ์žˆ์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์ถ”ํ›„ ๋ˆ„๊ตฌ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํŒŒ์ด์ฌ ๋ชจ๋“ˆ๋กœ ์ œ๊ณตํ•œ๋‹ค๊ณ  ํ•˜๋‹ˆ, ๊ฐ์‚ฌํ•  ๋”ฐ๋ฆ„์ด๋‹ค. ์‚ฌ์‹ค ๋จธ์‹ ๋Ÿฌ๋‹์— ๊ด€์‹ฌ๋งŒ์žˆ์—ˆ์ง€ ์ด๋ ‡๋‹คํ•  ๊ณต๋ถ€๋‚˜ ์ง์ ‘ ๊ตฌํ˜„์€ ๋‹จํ•œ๋ฒˆ๋„ ์•ˆํ•ด๋ณด๊ณ  ํ•ด๋‹น ์„ธ์…˜์„ ๋“ค์–ด๋ณด๋‹ˆ ๊ทธ๋ƒฅ ์šฐ์™€ ์‹ ๊ธฐํ•˜๋‹ค์ •๋„์˜€๋Š”๋ฐ. ์ด๋ฒˆ๊ธฐํšŒ์— ์ž‘์€๊ฒƒ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์‹œ์ž‘ํ•˜๋ฉด์„œ ์š”์ฆˆ์Œ ํ•ซํ•œ(?) ํŠธ๋žœ๋“œ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋Š” ๊ฒƒ๋„ ๊ดœ์ฐฎ์€ ๋ฐฉ๋ฒ•๊ฐ™์•„ ๋ณด์ธ๋‹ค. (์•—, ์šฐ์„  ํŒŒ์ด์ฌ๋ถ€ํ„ฐ…)

๊ทธ๋Ÿฐ REST API๋กœ ๊ดœ์ฐฎ์€๊ฐ€ ( ์ด์‘์ค€ / ๋น„๋ฐ”๋ฆฌํผ๋ธ”๋ฆฌ์นด )

์Šฌ๋ผ์ด๋“œ ์ž๋ฃŒ

๋ฐœํ‘œ์ž๋ถ„์„ ์–ด๋””์„œ ๋งŽ์ด ๋ดค๋‹ค ํ–ˆ๋”๋‹ˆ๋งŒ ์˜ˆ์ „์— ์šฐ๋ฆฌ ํšŒ์‚ฌ ์‚ฌ๋žŒ์ด์˜€๋‹ค. ์ˆ˜์—…๋„ ๋“ค์–ด๋ดค๊ณ , ๊ฐ™์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””๋„ ํ–ˆ๊ณ (ํ•œ๋ฒˆ ๋‚˜๊ฐ”์ง€๋งŒ…). ๋ฐœํ‘œ ์ฒซ ๋ถ€๋ถ„์— ์ž์‹ ์ด 10๋…„์ „์— ๋ฐ๋ทฐ staff ๋ฅผ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ 10๋…„์„ ๋‹ค ๋ชป์ฑ„์šฐ๊ณ  ํ‡ด์‚ฌ๋ฅผ ํ–ˆ๋‹ค๊ณ  ใ…Žใ…Ž.. ์•„๋ฌดํŠผ ๊ฐœ์ธ์ ์œผ๋กœ ๋‚˜๋ฆ„ ๋ฐ˜๊ฐ€์šด ๋ถ„์ด๋ผ ๋” ๊ด€์‹ฌ๊ฐ–๊ณ  ๋“ฃ๊ฒŒ ๋˜์—ˆ๋‹ค. REST ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€?์— ๋Œ€ํ•œ ๋ฐœํ‘œ๋‹ค. ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด ์•„๋ž˜ 3๊ฐ€์ง€์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ ๊ฒƒ์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • REST API ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  REST API๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • REST API ๊ตฌํ˜„์„ ํฌ๊ธฐํ•˜๊ณ  HTTP API ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • REST API ๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ REST API ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. (ํ˜„์žฌ ๋Œ€๋ถ€๋ถ„์˜ API๋“ค์˜ ์ƒํƒœ)

REST API๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์Šคํƒ€์ผ์ค‘ ๋ˆˆ์—ฌ๊ฒจ ๋ณผ๋งŒํ•œ ๋ถ€๋ถ„์€ ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. (uniform interface)

  • self-descriptive messages : ๋ฉ”์‹œ์ง€๋Š” ์Šค์Šค๋กœ ์„ค๋ช…์ด ๋˜์–ด์•ผ ํ•œ๋‹ค.
  • hypermedia as the engine of application state (HATEOAS) : ์ „์ด(์ƒํƒœ์˜ ์ด๋™)๊ฐ€ ๋ ์ˆ˜์žˆ๋Š” ์ •๋ณด๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋ฉด REST API๋กœ ๋งŒ๋“ค๋ ค๋ฉด ์ œ๋Œ€๋กœ ์•Œ๊ณ  ๋งŒ๋“ค์–ด๋ผ ๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๊ฐ•ํ•œ ๋ฐœํ‘œ๋‚ด์šฉ๊ฐ™๋‹ค. ๋‚˜๋„ ์ด์ œ๊นŒ์ง€๋Š” ๊ทธ๋ƒฅ json ์œผ๋กœ ๋‚ด๋ ค์ค€๋‹ค๋Š” ๊ฒƒ, GETใ†POST ๋“ฑ HTTP Method ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ๋งŒ ์•Œ๊ณ ์žˆ์—ˆ๋Š”๋ฐ ๊ฐœ์ธ์ ์œผ๋กœ๋Š” ๋ฐœํ‘œ์ž๋ถ„์ด ๋ง์”€ํ•˜์‹  ๋‘๊ฐ€์ง€ ๋‚ด์šฉ์€ ์ง€ํ‚ค๋Š”๊ฒŒ ๋งž๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์ฆ‰, ์ •๋ง REST ํ•˜๊ฒŒ ๋งŒ๋“ค๊บผ๋ฉด ์ •ํ™•ํ•œ ์‚ฌ์šฉ๋ฒ•์„ ์•Œ๊ณ  ๋งŒ๋“œ๋Š”๊ฒŒ ์ข‹์•„๋ณด์ธ๋‹ค.

๋™๋„ค ์ปคํ”ผ์ƒต๋„ ์‚ฌ์ด๋ Œ์˜ค๋”๋ฅผ ์“ธ ์ˆ˜ ์žˆ์„๊นŒ? ( ํ—ˆํ˜•, ๋‚˜๋™์ง„ / ์‚ผ์„ฑ์ „์ž[Lunch class] )

์Šฌ๋ผ์ด๋“œ ์ž๋ฃŒ

์˜ค๋Š˜ ๋ฐœํ‘œ์ค‘์— ๊ฐ€์žฅ ๋“ค์–ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ์„ธ์…˜. ์˜ˆ์ „๋ถ€ํ„ฐ ์‚ฌ์ด๋ Œ์˜ค๋”๊ฐ€ ์–ด๋–ค์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ + ์šฐ๋ฆฌํšŒ์‚ฌ ์ปคํ”ผ์ˆ๋„ ์‚ฌ๋‚ด ์•ฑ์„ ํ™œ์šฉํ•ด์„œ ๋งŒ๋“ค์–ด ๋ณผ์ˆœ ์—†์„์ง€(์•„์ด๋””์–ด) ์ด๋Ÿฐ์ €๋Ÿฐ ์ƒ๊ฐ์ด ๋งŽ์•˜์—ˆ๋Š”๋ฐ ๋”ฑ! ์›ํ•˜๋˜ ๋ฐœํ‘œ๊ฐ€ ์žˆ์–ด ๋“ฃ๊ฒŒ ๋˜์—ˆ๋‹ค. ์‚ผ์„ฑ์ „์ž ์†Œ์†์ด์‹  ๋ถ„๋“ค์ด ๋”ฐ๋กœ ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋งŒ๋‚œ ๋ถ€๋ถ„๋“ค์„ ๋ฐœํ‘œํ•ด์ฃผ์…จ๋Š”๋ฐ ์‹ ๊ธฐํ•œ ๊ธฐ์ˆ ๋“ค์ด ๋งŽ์•„ ๋“ฃ๋Š” ๋‚ด๋‚ด ํฅ๋ฏธ์ง„์ง„ ํ–ˆ๋‹ค.

  • PWA(Progressive Web App) : PWA ๋กœ ๋ชจ๋ฐ”์ผ ์ฒญ์ฒฉ์žฅ์„ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค. (๊ฒฐํ˜ผ์‹ ์ „๋‚ ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๊ฒฐํ˜ผํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ[์ถ”์ฒจ]๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋“ฑ๋“ฑ..)
  • Physical Web(Beacon), NFC …
  • Browser Fingerprint (Device ๊ตฌ๋ถ„)
  • Push Nofification
  • Web Payment

๊ฒฐ๊ตญ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋ฉด ๋™๋„ค ์ปคํ”ผ์ƒต์—์„œ ์‚ฌ์ด๋ Œ ์˜ค๋”๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์œ„ํ•ด ์ด๋Ÿฌ์ €๋Ÿฌํ•œ ๊ธฐ์ˆ ๋“ค์„ ์‹œ๋„ํ•ด๋ดค๋‹ค~์ธ๋ฐ. ๊ฐ ๊ธฐ์ˆ ๋“ค์— ์žˆ์–ด ํ˜„์‹ค์ ์ธ ์ƒํ™ฉ์— ํ•œ๊ณ„์ ์ด ์žˆ๊ณ , ๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ์ฒ˜์Œ์— ์ด์•ผ๊ธฐ ๋œ ๋™๋„ค ์ปคํ”ผ์ƒต์—์„œ ์‚ฌ์ด๋ Œ ์˜ค๋”๋ฅผ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฌผ์ด ์—†์–ด์„œ ์•„์‰ฌ์› ๋‹ค. ์—„์ฒญ ๊ธฐ๋Œ€ํ–ˆ๋Š”๋ฐ ๋ง์ด๋‹ค. ํ•˜์ง€๋งŒ PWA๋ฅผ ์ด์šฉํ•ด์„œ ๋ชจ๋ฐ”์ผ ์ฒญ์ ‘์žฅ์„ ๋งŒ๋“  ๋ถ€๋ถ„์€ ์ •๋ง ์ฐฌ์‚ฌ๋ฅผ ๋ณด๋‚ด์ฃผ๊ณ  ์‹ถ์€ ์•„์ด๋””์–ด ๊ฐ™๋‹ค.๋‚˜๋„ ๋‚˜์ค‘์— ํ•ด์•ผ์ง€~ ์˜ˆ์ „ “๋‚ ์”จ"๋ผ๋Š” ์›น์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๋ฉด์„œ ์›น์ด๋ผ๋Š” ํ™˜๊ฒฝ์—์„œ ๊ธฐ์ƒ์†๋ณด๋‚˜ ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ๋ˆˆ/๋น„ ์•Œ๋ฆผ์„ ๋‹จ์ˆœํžˆ ํ™”๋ฉด์— ๋ฟŒ๋ ค์ฃผ๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž ๊ธฐ๊ธฐ์— ๋…ธํ‹ฐ(ํ‘ธ์‹œ)ํ•ด์ค„์ˆ˜๋Š” ์—†์„๊นŒํ•˜๋ฉฐ ์ž ๊น ๋ณธ ๊ธฐ์ˆ ์ด PWA ์˜€๋Š”๋ฐ ๋‚œ ํ”„๋กœํ† ํƒ€์ดํ•‘๋งŒ ํ•ด๋ณธ ์ˆ˜์ค€์ด์ง€๋งŒ ์ด๋ถ„๋“ค์€ ์‹ค์ œ๋กœ ๋ณธ์—…๊ณผ๋Š” ๋ณ„๊ฐœ๋กœ ๊ตฌํ˜„์„ ํ•ด๋ณด๋Š” ๋…ธ๋ ฅ์„ ํ–ˆ๋‹ค๋Š”๊ฒƒ์— ๋‚ด ์ž์‹ ์ด ๋ถ€๋„๋Ÿฌ์›Œ ์ง„๋‹ค.


์—ฌ์ „ํžˆ ์ด๋ฒˆ์—๋„ ๋’คํ†ต์ˆ˜ ์—ฌ๋Ÿฌ๋Œ€ ๋งž์€ Deivew 2017. ์šฐ๋ฌผ์•ˆ์˜ ๊ฐœ๊ตฌ๋ฆฌ๋ผ๋Š” ๋งˆ์Œ์„ ์žƒ์ง€ ๋ง๊ณ  + ๋‚˜๋Š” ๊ฐœ๋ฐœ์ž๋ผ๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋ง์•„์•ผ๊ฒŸ๋‹ค๊ณ  ๋˜ ๋‹ค์งํ•ด๋ณธ๋‹ค.


Buy me a coffeeBuy me a coffee