TIL 60: [๋„คํŠธ์›Œํฌ] ์‹ฌํ™”
TIL 2021. 10. 27. 22:17

์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ์ด ๋งŽ์•„ ๋ถ„๋Ÿ‰ ์กฐ์ ˆ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค..๐Ÿ˜‚ ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ IP ์ •์˜ ๋ฐ ํ•œ๊ณ„ ๊ณผ๊ฑฐ์—๋Š” ์ „์šฉ์„ ์„ ํ†ตํ•ด ํšŒ์ „ ๊ตํ™˜ ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ฒฐํ–ˆ๋˜ ๋ฐ˜๋ฉด, ํ˜„์žฌ๋Š” ํŒจํ‚ท ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ„์–ด ์ตœ์ € ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•˜๋Š” ํŒจํ‚ท ํ†ต์‹  ๋ฐฉ์‹์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. IP ์ฃผ์†Œ๋Š” ๋„คํŠธ์›Œํฌ์—์„œ ์žฅ์น˜๋“ค์ด ์„œ๋กœ๋ฅผ ์ธ์‹ํ•˜๊ณ  ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํŠน์ˆ˜ํ•œ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. IP๋Š” ์ง€์ •ํ•œ IP ์ฃผ์†Œ์— ํŒจํ‚ท(Packet = Pack + Bucket)์ด๋ผ๋Š” ํ†ต์‹  ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. IP ํŒจํ‚ท์—๋Š” ์šฐ์ฒด๊ตญ ์†ก์žฅ์ฒ˜๋Ÿผ ์ „์†ก ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌด์‚ฌํžˆ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์ถœ๋ฐœ์ง€ IP, ๋ชฉ์ ์ง€ IP์™€ ๊ฐ™์€ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ท ๋‹จ์œ„๋กœ ์ „์†ก์„ ํ•˜๋ฉด ๋…ธ๋“œ๋“ค์€ ๋ชฉ์ ์ง€ IP์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ๋งŒ ๋ณด๋ฉด IP๋Š” ์ ์ ˆํ•œ ํ†ต์‹  ๋ฐฉ๋ฒ•์œผ๋กœ ..

TIL 59: [์ปดํ“จํ„ฐ ๊ณตํ•™] ๊ธฐ์ดˆ
TIL 2021. 10. 26. 23:28

์คŒ ์„ธ์…˜ ๋‚ด์šฉ๊นŒ์ง€ ์ •๋ฆฌํ•ด์„œ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค! ์—ญ์‚ฌ ์ˆ˜์—… ํ•˜๋“ฏ์ด ์•Œ๋ ค์ฃผ์…”์„œ ์žฌ๋ฏธ์žˆ๊ฒŒ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด 1 Byte = 8 Bits ๋น„ํŠธ ํ•˜๋‚˜ ๋‹น 0๊ณผ 1๋กœ ๋‚˜๋ˆ„์–ด์„œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1 Byte, ์ฆ‰ 8 Bits ์ธ ๊ฒฝ์šฐ 256(2^8, 0~255)๊ฐ€์ง€์˜ ๊ฒฝ์šฐ๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1 ๋ฐ”์ดํŠธ ์•ˆ์— 0๊ณผ 1๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” 8๊ฐœ์˜ ์นธ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ASCII ์ฝ”๋“œ๋Š” ์˜์–ด์™€ ์ˆซ์ž๋งŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ๊ทธ๋ฆฌ๊ณ  ์ „ ์„ธ๊ณ„์˜ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ปดํ“จํ„ฐ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒํ•˜๊ธฐ ์œ„ํ•ด Unicode๊ฐ€ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. Unicode๋Š” ์˜์–ด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ์‹ฌ๋ณผ ๋“ฑ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž ์ธ์ฝ”๋”ฉ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ธ์ฝ”๋”ฉ์ด๋ž€ ์–ด๋–ค ๋ฌธ์ž๋‚˜ ๊ธฐํ˜ธ๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์ด์šฉํ• ..

TIL 58: [์ธ์ฆ/๋ณด์•ˆ] ๊ธฐ์ดˆ - OAuth 2.0
TIL 2021. 10. 25. 17:59

์ฝ”๋”ฉ์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ์ƒ๊ฒจ ์˜ฌํ•ด ์ดˆ์— ์ž ๊น ์ƒํ™œ์ฝ”๋”ฉ์œผ๋กœ HTML๊ณผ CSS๋ฅผ ๊ณต๋ถ€ํ–ˆ๋˜ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋•Œ OAuth๊ฐ€ ๋ญ”์ง€์— ๋Œ€ํ•ด ์ž์„ธํ•œ ์„ค๋ช…์—†์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•ด๋ดค๋Š”๋ฐ ์ด๋ฒˆ ๊ธฐํšŒ๋ฅผ ํ†ตํ•ด OAuth๊ฐ€ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. OAuth๋ž€? ์ง์ ‘ ์ž‘์„ฑํ•œ ์„œ๋ฒ„์—์„œ ์ธ์ฆ์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๋ฐฉ์‹๊ณผ ๋‹ฌ๋ฆฌ, OAuth๋Š” ์ธ์ฆ์„ ์ค‘๊ฐœํ•ด์ฃผ๋Š” ๋งค์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. ๋ณด์•ˆ๋œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๊ถŒํ•œ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์›น์„œ๋น„์Šค(GitHub, google, facebook ๋“ฑ)์—์„œ ์‚ฌ์šฉ์ž์˜ ์ธ์ฆ์„ ๋Œ€์‹ ํ•ด์ฃผ๊ณ , ์ ‘๊ทผ ๊ถŒํ•œ์— ๋Œ€ํ•œ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•œ ํ›„, ์ด๋ฅผ ์ด์šฉํ•ด ๋‚ด ์„œ๋ฒ„์—์„œ ์ธ์ฆ์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค. OAuth๋Š” ์ธ์ฆ(Authenticat..

TIL 57: [์ธ์ฆ/๋ณด์•ˆ] ๊ธฐ์ดˆ - ํ† ํฐ(Token)
TIL 2021. 10. 25. 17:38

๋‹ค์Œ ์ฃผ์— ํฐ ์‹œํ—˜ ๋‘ ๊ฐœ๊ฐ€ ๊ฒน์น˜๊ณ  ์ด๋™์‹œ๊ฐ„์ด ๊ธธ์–ด์ง€๋‹ค๋ณด๋‹ˆ ๋ธ”๋กœ๊ทธ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์ •์‹ ์ด ์—†๋„ค์š”๐Ÿฅฒ ์ตœ๋Œ€ํ•œ ๋ฐ€๋ฆฌ์ง€ ์•Š๊ณ  ์ •๋ฆฌํ•ด๋ณด๋ ค๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ์€ ์„œ๋ฒ„ ํ˜น์€ DB์— ์œ ์ € ์ •๋ณด๋ฅผ ๋‹ด๋Š” ์ธ์ฆ ๋ฐฉ์‹์œผ๋กœ, ๋งค ์š”์ฒญ๋งˆ๋‹ค ์„œ๋ฒ„์—๋งŒ ๋ถ€๋‹ด์ด ๊ฐ€์ค‘๋˜๋Š” ์ธ์ฆ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๋ถ€๋‹ด์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์ด ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ๊ณ , ๊ทธ ์ค‘ ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์ธ์ฆ ๋ฐฉ์‹์€ JWT(JSON Web Token)์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์— ์•”ํ˜ธํ™”ํ•œ ์œ ์ € ์ •๋ณด๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. JWT์˜ ์ข…๋ฅ˜ Access Token์€ ๋ณดํ˜ธ๋œ ์ •๋ณด๋“ค(์œ ์ €์˜ ์ด๋ฉ”์ผ, ์—ฐ๋ฝ์ฒ˜, ์‚ฌ์ง„ ๋“ฑ)์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ๋ถ€์—ฌ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฒ˜์Œ ์ธ์ฆ์„ ๋ฐ›๊ฒŒ ๋  ๋•Œ(๋กœ๊ทธ์ธ), access์™€ refresh token ๋‘๊ฐ€์ง€๋ฅผ ๋‹ค ๋ฐ›์ง€๋งŒ, access to..

TIL 56 - 2: [์ธ์ฆ/๋ณด์•ˆ] ๊ธฐ์ดˆ
TIL 2021. 10. 22. 10:33

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

TIL 56 - 1: [์ธ์ฆ/๋ณด์•ˆ] ๊ธฐ์ดˆ
TIL 2021. 10. 21. 00:32

์˜ค๋Š˜์€ ์ผ์ •์ด ์žˆ์–ด ๋ฐฐ์› ๋˜ ๋‚ด์šฉ์„ ๋ชจ๋‘ ์ •๋ฆฌํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €ํ•œํ…Œ๋Š” Session ํŒŒํŠธ๊ฐ€ ์–ด๋ ค์› ๊ธฐ ๋•Œ๋ฌธ์— Session์„ ์ œ์™ธํ•œ ๋ถ€๋ถ„์„ ์ •๋ฆฌํ•˜๊ณ , ๋‚ด์ผ ๋งˆ์ € Session๊ณผ ์Šคํ”„๋ฆฐํŠธ๋„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! ๐Ÿ‘Š HTTPS ์ •์˜ ๋ฐ ํŠน์ง• HTTP + Secure ์˜ ์•ฝ์ž๋กœ HTTP ํ”„๋กœํ† ์ฝœ ๋‚ด์šฉ์„ ์•”ํ˜ธํ™”ํ•œ ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, HTTP๋ณด๋‹ค ์ƒ๋Œ€์ ์œผ๋กœ ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์ด๊ณ , ๋ฐ์ดํ„ฐ ์ œ๊ณต์ž์˜ ์‹ ์›์„ ๋ณด์žฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์—์„œ ๊ณต๊ฒฉ์ž๊ฐ€ ์„œ๋กœ์˜ ์š”์ฒญ, ์‘๋‹ต์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํƒˆ์ทจ ๋ฐ ๋ณ€์กฐํ•ด์„œ ๋‹ค์‹œ ์ „์†กํ•˜๋Š” ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ๊ฒŒ ์„ธ๊ฐ€์ง€ ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฆ์„œ (Certificate): ๋ฐ์ดํ„ฐ ์ œ๊ณต์ž์˜ ์‹ ์›์„ ๋ณด์žฅํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ์— ์ž‘์„ฑ๋œ domain๊ณผ ์‘๋‹ต๊ฐ์ฒด do..