๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป
article thumbnail
[Vite] Code Splitting ์ „๋žต - ๋ฒˆ๋“ค ํฌ๊ธฐ ์ตœ์ ํ™”ํ•˜๊ธฐ(manualChunks)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ปค์งˆ์ˆ˜๋ก ๋ฒˆ๋“ค ํฌ๊ธฐ๋„ ํ•จ๊ป˜ ์ปค์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ดˆ๊ธฐ ๋กœ๋”ฉ ์‹œ๊ฐ„์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ฃ .Vite์—์„œ ์ œ๊ณตํ•˜๋Š” Code Splitting ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋ฉด ์ด ๋ฌธ์ œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ธ€์—์„œ๋Š” manualChunks์— ๋Œ€ํ•ด์„œ๋งŒ ๋‹ค๋ฃน๋‹ˆ๋‹ค.์™œ Code Splitting์ด ํ•„์š”ํ• ๊นŒ?์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•˜๋ฉด ๋ชจ๋“  Javascript ์ฝ”๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ํฐ ํŒŒ์ผ๋กœ ๋ฒˆ๋“ค๋ง ๋ฉ๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์ด ์ƒํ™ฉ์€ ์•„๋ž˜ ๋ฌธ์ œ๋“ค์„ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ธด ์ดˆ๊ธฐ ๋กœ๋”ฉ ์‹œ๊ฐ„: ์‚ฌ์šฉ์ž๊ฐ€ ์ฒซ ํŽ˜์ด์ง€๋ฅผ ๋ณด๊ธฐ ์ „์— ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.๋ถˆํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„: ๋‹น์žฅ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ๋„ ํ•จ๊ป˜ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.๋น„ํšจ์œจ์ ์ธ ์บ์‹ฑ: ์ž‘์€ ์ฝ”๋“œ ๋ณ€๊ฒฝ์—๋„ ์ „์ฒด ๋ฒˆ๋“ค์„ ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์ฆ..

article thumbnail
webRTC๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”? ์ฃผ์š” ๊ฐœ๋…๋“ค ์‰ฝ๊ฒŒ ์„ค๋ช… ํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

โœจ WebRTC๋ž€ ๋ญ˜๊นŒ?์‹ค์‹œ๊ฐ„ ํ†ต์‹ ์— ์žˆ์–ด ์•„์ฃผ ์žฌ๋ฐŒ๋Š” ๊ธฐ์ˆ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ webRTC(Web Real-Time Communication)์ธ๋ฐ์š”. 2011๋…„, Google์˜ ๊ฐœ๋ฐœ์ž๋“ค์— ์˜ํ•ด์„œ ํƒ„์ƒํ•œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.WebRTC๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์œ ๋ช…ํ•œ ์„œ๋น„์Šค๋“ค ์ค‘ Google Meet, Discord, Zoom ๋“ฑ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด์„œ "๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ๊ฐ€๋Šฅํ•œ ์‹ค์‹œ๊ฐ„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๊ธฐ์ˆ "์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.ํ™”์ƒ ์ฑ„ํŒ…, ์Œ์„ฑ ํ†ตํ™”, ํŒŒ์ผ ๊ณต์œ  ๋“ฑ๋“ฑ ์ด ๋ชจ๋“  ๊ฑธ ๋ณ„๋„์˜ ํ”„๋กœ๊ทธ๋žจ ์—†์ด ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฌผ๋ก ์ด๊ณ , ๋ชจ๋ฐ”์ผ ์•ฑ, ๋ฐ์Šคํฌํƒ‘ ์•ฑ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ด๋ฉฐ ๊ฐ•๋ ฅํ•œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ๋”์šฑ ์‹ ๊ธฐํ•œ ์ ์€ ์„œ๋ฒ„ ์—†์ด P2P(Peer To Peer)๋กœ ์—ฐ๊ฒฐ๋˜์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.(P2..

article thumbnail
[React] CRA์—์„œ Vite๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ณผ์ • ๋ฐ ์ฝ”๋“œ ๊ฐœ์„ 

๐Ÿ“–  ๋“ค์–ด๊ฐ€๋ฉฐ์ตœ๊ทผ ํšŒ์‚ฌ์—์„œ ๋‹ด๋‹นํ•˜๋Š” ์„œ๋น„์Šค์— ๋Œ€ํ•ด์„œ CRA์—์„œ Vite๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ•˜๋ฉด์„œ ์•ฝ๊ฐ„์˜ ์ฝ”๋“œ ๊ฐœ์„ ๊นŒ์ง€ ์ง„ํ–‰์„ ํ•˜๋Š” ๊ฒฝํ—˜์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ž‘์€ ํŽธ์ด ์•„๋‹ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ•˜๋ฉด์„œ webpack์— ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ๋“ฑ์˜ ์‚ฌ์ด๋“œ์ดํŽ™ํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ์ œ์ผ ๊ฑฑ์ •์„ ๋งŽ์ด ํ–ˆ๋Š”๋ฐ์š”. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ํฌ๊ฒŒ ์™œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ง„ํ–‰ํ–ˆ๋Š”์ง€, CRA์™€ Vite๋Š” ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ–ˆ๋Š”์ง€, ์–ด๋–ค ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์—ˆ๋Š”์ง€ ๊ธฐ๋กํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.โ‰๏ธ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์˜ ํ•„์š”์„ฑํ˜„์žฌ ๋‹ด๋‹นํ•œ ์„œ๋น„์Šค๋Š” webpack ๊ธฐ๋ฐ˜์˜ CRA๋กœ ๊ตฌ์„ฑ๋œ ํ”„๋กœ์ ํŠธ์˜€์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ, ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฐœ๋ฐœ ์„œ๋ฒ„ ๊ตฌ๋™์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.๊ตฌ๋™๋˜๋Š” ์‹œ๊ฐ„๊นŒ์ง€ ํ‰๊ท  ์•ฝ 20์ดˆ๊ฐ€ ์†Œ์š”๋˜๊ณ  ์ตœ๋Œ€ ์•ฝ 30์ดˆ๊นŒ์ง€ ์†Œ์š”๋˜๋Š” ์ƒํ™ฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ..

article thumbnail
[React] 19 ๋ฒ„์ „์˜ ํ•ต์‹ฌ ์—…๋ฐ์ดํŠธ ์‚ฌํ•ญ ์‚ดํŽด๋ณด๊ธฐ

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐํ˜„์žฌ React 19 ๋ฒ„์ „์˜ ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•ด์„œ ๋งŽ์€ ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์ด ๋งŽ์ง€๋งŒ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ํ•ต์‹ฌ ๋‚ด์šฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„์„ ํฌ์ŠคํŒ…ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ธฐ์กด์—๋Š” ํ•„์š”ํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์ง€๋งŒ 19 ๋ฒ„์ „์ด ๋„์ž…๋˜๋ฉด์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ๊ฒƒ๋“ค๊ณผ ์ถ”๊ฐ€๋กœ ๋ช‡ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๋“ค์„ ์†Œ๊ฐœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ 2024๋…„ 5์›” 15์ผ ๊ธฐ์ค€์œผ๋กœ ๋ฆฌ์•กํŠธ 19๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์นด๋‚˜๋ฆฌ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.npm i react@canary react-dom@canaryoryarn add react@canary react-dom@canaryReact Compoiler19 ๋ฒ„์ „์˜ ๊ฐ€์žฅ ํฐ ๋ถ€๋ถ„์€ ๋ฆฌ์•กํŠธ ์ปดํŒŒ์ผ๋Ÿฌ์ž…๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ฆฌ์•กํŠธ ์ฝ”๋“œ๋ฅผ ์ผ๋ฐ˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ..

article thumbnail
[React] ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ๊ณ ์ฐฐ (feat. redux-tookit, recoil, zustand, jotai)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” React์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด์„œ ๊ฐ๊ฐ์˜ ํŠน์ง•๊ณผ ๊ฐœ์ธ์ ์ธ ๊ฒฌํ•ด๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ํฌ์ŠคํŒ…์—์„œ ๋‹ค๋ฃฐ ์ฃผ์š” ๋„ค ๊ฐ€์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. react-redux & redux-toolkit recoil zustand jotai React์—์„œ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ•จ๊ป˜ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋„ค ๊ฐ€์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜์ฏค์€ ๋ถ„๋ช… ์•Œ๊ณ  ๊ณ„์‹œ๋ฆฌ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์œ„ ์ด๋ฏธ์ง€๋Š” ์ตœ๊ทผ 1๋…„๊ฐ„ ๋„ค ๊ฐ€์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ NPM ๋™ํ–ฅ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์ถ”์„ธ๋กœ ๋ดค์„ ๋•Œ 1์œ„: redux (react-redux & redux-tookit) 2์œ„: zustand 3์œ„: jotai 4์œ„: recoil ์œ„ ์ˆœ์œ„๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ํŠน์ง•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Redux..

article thumbnail
[Next.js] vanilla-extract๋กœ ๋‹คํฌ๋ชจ๋“œ(dark mode) ๊ตฌํ˜„ํ•˜๊ธฐ (feat.next-themes)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ Next.js 14๋ฒ„์ „ app router ํ”„๋กœ์ ํŠธ์˜ styled-comoponents์—์„œ vanilla-extarct๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ง„ํ–‰ํ•จ์— ์žˆ์–ด์„œ ๋‹คํฌ๋ชจ๋“œ ๊ธฐ๋Šฅ๋„ ๊ฐ™์ด ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฒˆ ๋‹คํฌ๋ชจ๋“œ๋ฅผ ์ ์šฉํ•˜๋ฉด์„œ next-themes๋ฅผ ํ™œ์šฉํ•ด ๋ดค๋Š” ๋ฐ ์‚ฌ์šฉ ๊ฒฝํ—˜์ด ๋งค์šฐ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, app router์—์„œ vanilla-extract๋กœ ๋‹คํฌ๋ชจ๋“œ๋ฅผ ๊ตฌํ˜„ํ•จ์— ์žˆ์–ด์„œ ์ฐธ๊ณ ์ž๋ฃŒ๊ฐ€ ๋งŽ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธ€์„ ์ž‘์„ฑํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์ด์ œ Next.js app router์—์„œ vanilla-extract + next-themes๋ฅผ ํ™œ์šฉํ•œ ๋‹คํฌ๋ชจ๋“œ๋ฅผ ํ•œ๋ฒˆ ๊ตฌํ˜„ํ•ด ๋ด…์‹œ๋‹ค. ๐Ÿง next-themes ์†Œ๊ฐœ https://github.com/pacocoursey/next-them..

article thumbnail
[Next.js] styled-components์—์„œ vanilla-extract๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ง„ํ–‰ (app router)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์—์„œ Next.js 14๋ฒ„์ „์˜ ์•ฑ ๋ผ์šฐํ„ฐ์—์„œ styled-components๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์— Next.js 11๋ฒ„์ „์—์„œ 14๋ฒ„์ „์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋‚จ์•„์žˆ๋˜ ๋ถ€๋ถ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์•ฑ ๋ผ์šฐํ„ฐ์—์„œ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ, ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ํ™œ์šฉ ํ•ด๋ณด๊ณ ์ž ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋จผ์ € ์™œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ง„ํ–‰ํ–ˆ๊ณ , ์™œ vanilla-extract๋ฅผ ์„ ํƒํ–ˆ๋Š”์ง€ ๊ฐ„๋žตํžˆ ์„ค๋ช…ํ•ด ๋ณผ๊ฒŒ์š”. ๐Ÿ” ์•ฑ ๋ผ์šฐํ„ฐ(app router)์—์„œ styled-components์˜ ๋ฌธ์ œ์  styled-components๋Š” ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, styled-components๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด 'use client'๋ฅผ ๋ช…์‹œํ•จ์œผ๋กœ์จ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ•์ œ์ ์œผ๋กœ ์‚ฌ์šฉํ•ด..

article thumbnail
[Web] OAuth์˜ ๋“ฑ์žฅ ๋ฐ OAuth 2.0 ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ์‰ฝ๊ฒŒ ์•Œ์•„๋ด์š”.

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์ตœ๊ทผ ๋‹ค์–‘ํ•œ ์›น ์„œ๋น„์Šค๋ฅผ ์ ‘ํ•ด๋ณด๋ฉด ๊ฐ„ํŽธํ•œ SNS ๋กœ๊ทธ์ธ์œผ๋กœ ์‰ฝ๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฐ„ํŽธํ•œ SNS ๋กœ๊ทธ์ธ์ด ๋ฐ”๋กœ OAuth2.0 ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ, OAuth๊ฐ€ ์–ด๋–ค ๋ฐฐ๊ฒฝ์—์„œ ๋“ฑ์žฅํ•˜์˜€๊ณ , ํ˜„์žฌ๋Š” ์–ด๋–ป๊ฒŒ ํ‘œ์ค€ํ™”๋˜์–ด OAuth2.0์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š”์ง€, ๊ทธ ํ๋ฆ„์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ํ•จ๊ป˜ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿง OAuth ๋“ฑ์žฅ๋ฐฐ๊ฒฝ ์›น ์„œ๋น„์Šค์˜ ๋‹ค์–‘์„ฑ์ด ์ฆ๊ฐ€ํ•˜๋ฉด์„œ, ์•ˆ์ „ํ•˜๊ฒŒ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํ•„์š”์„ฑ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด OAuth(Open Authorization)๋ผ๋Š” ๊ฐœ๋…์ด ํƒ„์ƒํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•œ ๊ฐ€์ง€ ์˜ˆ๋ฅผ ๋“ค์–ด ๋ณผ๊ฒŒ์š”. ์šฐ๋ฆฌ์˜ ์„œ๋น„์Šค๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‚ฌ์šฉ์ž์˜ ๊ตฌ๊ธ€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”? ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ๊ธ€์— ๋Œ€..

article thumbnail
[Web] ์›น ์†Œ์ผ“(Web Socket)์ด๋ž€? ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ๊ณผ ๋ชฉ์ , ๋™์ž‘ ๋ฐฉ์‹ (feat. Polling, Long polling, Server-Sent Event)

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