๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป
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)ํ•˜๋Š” ๋ฐ˜์ด์ค‘ ํ†ต์‹  ๋ฐฉ์‹์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์ด ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜๋Š” ๋“ฑ์˜ ๊ฐ„๋‹จํ•œ ์ž‘์—…์—๋Š” ..

article thumbnail
[Web] CSR vs SSR vs SSG vs ISR ๊ฐ ๋ Œ๋”๋ง ๋ฐฉ์‹ ์‰ฝ๊ฒŒ ์•Œ์•„๋ณด๊ธฐ

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

article thumbnail
[Web] ๋ธŒ๋ผ์šฐ์ €์— URL์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚ ๊นŒ์š”?

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ์ฐฝ์— url์„ ์ž…๋ ฅํ•˜๋ฉด ์ƒ๊ธฐ๋Š” ๊ณผ์ •๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. DNS ๋ ˆ์ฝ”๋“œ ํ™•์ธ ์ฒซ ๋ฒˆ์งธ๋กœ, ๋ธŒ๋ผ์šฐ์ €๋Š” DNS(Domain Name Server) ๋ ˆ์ฝ”๋“œ์˜ ์บ์‹œ๋ฅผ ํ™•์ธํ•˜์—ฌ ํ•ด๋‹น URL์˜ IP ์ฃผ์†Œ๋ฅผ ์ฐพ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. DNS(Domain Name Server)๋ž€? DNS๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. DNS๋Š” ๋„๋ฉ”์ธ ์ด๋ฆ„๊ณผ IP ์ฃผ์†Œ๋ฅผ ๋งคํ•‘ํ•ด์ฃผ๋Š” ์„œ๋ฒ„๋กœ, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ธํ„ฐ๋„ท ์ž์›์„ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ์ฆ‰, DNS๋Š” ์ „ํ™”๋ฒˆํ˜ธ๋ถ€์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ์ด๋ฆ„์œผ๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ์ฐพ๋“ฏ์ด, ์ปดํ“จํ„ฐ๋Š” DNS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น์‚ฌ์ดํŠธ์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ํ•ด๋‹น IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ณผ์ •์—์„œ ์•„๋ž˜์˜ ์ˆœ์„œ๋กœ ํ™•์ธ์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ ํ™•์ธ: ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด์ „์— ๋ฐฉ๋ฌธํ•œ ์›น์‚ฌ์ดํŠธ..

article thumbnail
[Web] ์ฟ ํ‚ค(Cookie) vs ์„ธ์…˜(Session) vs ์›น ์Šคํ† ๋ฆฌ์ง€(Web Storage)์˜ ์ฐจ์ด๋ฅผ ์‰ฝ๊ฒŒ ์•Œ์•„๋ด…์‹œ๋‹ค.

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