์ค๋ ๋ฐฐ์ด ๋ด์ฉ์ด ๋ง์ ๋ถ๋ ์กฐ์ ์คํจํ์ต๋๋ค..๐ ์ธํฐ๋ท ํ๋กํ ์ฝ IP ์ ์ ๋ฐ ํ๊ณ ๊ณผ๊ฑฐ์๋ ์ ์ฉ์ ์ ํตํด ํ์ ๊ตํ ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐํ๋ ๋ฐ๋ฉด, ํ์ฌ๋ ํจํท ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ๋๋์ด ์ต์ ๊ฒฝ๋ก๋ฅผ ํตํด ์ ๋ฌํ๋ ํจํท ํต์ ๋ฐฉ์์ ์ด์ฉํฉ๋๋ค. IP ์ฃผ์๋ ๋คํธ์ํฌ์์ ์ฅ์น๋ค์ด ์๋ก๋ฅผ ์ธ์ํ๊ณ ํต์ ์ ํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ ํน์ํ ๋ฒํธ์ ๋๋ค. IP๋ ์ง์ ํ IP ์ฃผ์์ ํจํท(Packet = Pack + Bucket)์ด๋ผ๋ ํต์ ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํฉ๋๋ค. IP ํจํท์๋ ์ฐ์ฒด๊ตญ ์ก์ฅ์ฒ๋ผ ์ ์ก ๋ฐ์ดํฐ๋ฅผ ๋ฌด์ฌํ ์ ์กํ๊ธฐ ์ํด ์ถ๋ฐ์ง IP, ๋ชฉ์ ์ง IP์ ๊ฐ์ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ํจํท ๋จ์๋ก ์ ์ก์ ํ๋ฉด ๋ ธ๋๋ค์ ๋ชฉ์ ์ง IP์ ๋๋ฌํ๊ธฐ ์ํด ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํฉ๋๋ค. ์ด๋ ๊ฒ๋ง ๋ณด๋ฉด IP๋ ์ ์ ํ ํต์ ๋ฐฉ๋ฒ์ผ๋ก ..
์ค ์ธ์ ๋ด์ฉ๊น์ง ์ ๋ฆฌํด์ ์ ๋ก๋ํฉ๋๋ค! ์ญ์ฌ ์์ ํ๋ฏ์ด ์๋ ค์ฃผ์ ์ ์ฌ๋ฏธ์๊ฒ ๋ค์์ต๋๋ค. ๋ฌธ์์ด 1 Byte = 8 Bits ๋นํธ ํ๋ ๋น 0๊ณผ 1๋ก ๋๋์ด์ ํํํ ์ ์์ต๋๋ค. 1 Byte, ์ฆ 8 Bits ์ธ ๊ฒฝ์ฐ 256(2^8, 0~255)๊ฐ์ง์ ๊ฒฝ์ฐ๋ฅผ ํํํ ์ ์์ต๋๋ค. 1 ๋ฐ์ดํธ ์์ 0๊ณผ 1๋ก ํํํ ์ ์๋ 8๊ฐ์ ์นธ์ด ์๋ค๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค. ASCII ์ฝ๋๋ ์์ด์ ์ซ์๋ง ํํํ ์ ์๋ ํ๊ณ๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ๊ทธ๋ฆฌ๊ณ ์ ์ธ๊ณ์ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ปดํจํฐ์์ ์ผ๊ด๋๊ฒ ๋ค๋ฃฐ ์ ์๊ฒํ๊ธฐ ์ํด Unicode๊ฐ ๋ง๋ค์ด์ก์ต๋๋ค. Unicode๋ ์์ด ๋ฟ๋ง ์๋๋ผ ๋ค์ํ ์ธ์ด์ ์ฌ๋ณผ ๋ฑ์ ํํํ ์ ์๋ ๋ฌธ์ ์ธ์ฝ๋ฉ ๋ฐฉ๋ฒ์ ๋๋ค. ์ฌ๊ธฐ์ ์ธ์ฝ๋ฉ์ด๋ ์ด๋ค ๋ฌธ์๋ ๊ธฐํธ๋ฅผ ์ปดํจํฐ๊ฐ ์ด์ฉํ ..
์ฝ๋ฉ์ ๋ํด ๊ด์ฌ์ด ์๊ฒจ ์ฌํด ์ด์ ์ ๊น ์ํ์ฝ๋ฉ์ผ๋ก HTML๊ณผ CSS๋ฅผ ๊ณต๋ถํ๋ ๊ฒฝํ์ด ์์ต๋๋ค. ๊ทธ ๋ OAuth๊ฐ ๋ญ์ง์ ๋ํด ์์ธํ ์ค๋ช ์์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํํ๋ก ์ฌ์ฉํด๋ดค๋๋ฐ ์ด๋ฒ ๊ธฐํ๋ฅผ ํตํด OAuth๊ฐ ๋ฌด์์ธ์ง์ ๋ํด ๊ณต๋ถํ ์ ์์์ต๋๋ค. OAuth๋? ์ง์ ์์ฑํ ์๋ฒ์์ ์ธ์ฆ์ ์ฒ๋ฆฌํด์ฃผ๋ ๋ฐฉ์๊ณผ ๋ฌ๋ฆฌ, OAuth๋ ์ธ์ฆ์ ์ค๊ฐํด์ฃผ๋ ๋งค์ปค๋์ฆ์ ๋๋ค. ๋ณด์๋ ๋ฆฌ์์ค์ ์ ๊ทผํ๊ธฐ ์ํด ํด๋ผ์ด์ธํธ์๊ฒ ๊ถํ์ ์ ๊ณตํ๋ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ๋ ํ๋กํ ์ฝ์ ๋งํฉ๋๋ค. ์ด๋ฏธ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ์น์๋น์ค(GitHub, google, facebook ๋ฑ)์์ ์ฌ์ฉ์์ ์ธ์ฆ์ ๋์ ํด์ฃผ๊ณ , ์ ๊ทผ ๊ถํ์ ๋ํ ํ ํฐ์ ๋ฐ๊ธํ ํ, ์ด๋ฅผ ์ด์ฉํด ๋ด ์๋ฒ์์ ์ธ์ฆ์ด ๊ฐ๋ฅํด์ง๋๋ค. OAuth๋ ์ธ์ฆ(Authenticat..
๋ค์ ์ฃผ์ ํฐ ์ํ ๋ ๊ฐ๊ฐ ๊ฒน์น๊ณ ์ด๋์๊ฐ์ด ๊ธธ์ด์ง๋ค๋ณด๋ ๋ธ๋ก๊ทธ ๊ด๋ฆฌํ๋๋ฐ ์ ์ ์ด ์๋ค์๐ฅฒ ์ต๋ํ ๋ฐ๋ฆฌ์ง ์๊ณ ์ ๋ฆฌํด๋ณด๋ ค๋๋ก ํ๊ฒ ์ต๋๋ค! ์ธ์ ๊ธฐ๋ฐ ์ธ์ฆ์ ์๋ฒ ํน์ DB์ ์ ์ ์ ๋ณด๋ฅผ ๋ด๋ ์ธ์ฆ ๋ฐฉ์์ผ๋ก, ๋งค ์์ฒญ๋ง๋ค ์๋ฒ์๋ง ๋ถ๋ด์ด ๊ฐ์ค๋๋ ์ธ์ฆ ๋ฐฉ์์ ๋๋ค. ์๋ฒ ๋ถ๋ด์ ์ค์ด๊ธฐ ์ํด ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ์ด ๋์ค๊ฒ ๋์๊ณ , ๊ทธ ์ค ๊ฐ์ฅ ๋ํ์ ์ธ ์ธ์ฆ ๋ฐฉ์์ JWT(JSON Web Token)์ ๋๋ค. ํด๋ผ์ด์ธํธ์ ์ํธํํ ์ ์ ์ ๋ณด๋ฅผ ๋ณด๊ดํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. JWT์ ์ข ๋ฅ Access Token์ ๋ณดํธ๋ ์ ๋ณด๋ค(์ ์ ์ ์ด๋ฉ์ผ, ์ฐ๋ฝ์ฒ, ์ฌ์ง ๋ฑ)์ ์ ๊ทผํ ์ ์๋ ๊ถํ๋ถ์ฌ์ ์ฌ์ฉํฉ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์ฒ์ ์ธ์ฆ์ ๋ฐ๊ฒ ๋ ๋(๋ก๊ทธ์ธ), access์ refresh token ๋๊ฐ์ง๋ฅผ ๋ค ๋ฐ์ง๋ง, access to..
์ด๋ฒ ์คํ๋ฆฐํธ๋ ์ด์ ์น์ 3์์ ๋ฐฐ์ ๋ ๋ด์ฉ๋ค์ ๋ง์ด ๋ค๋ฃจ์ด๋ณผ ์ ์์ด์ ๋ณต์ตํ๋๋ฐ ์ ์ฉํ์ต๋๋ค. ๋๋ถ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์๋ฒ, ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋์ด์๊ณ , ๋ฐ์ดํฐ๋ค์ด ์ด๋ป๊ฒ ์ด๋ํ๋์ง๋ฅผ ๋ณผ ์ ์์์ต๋๋ค. Session ์ผ์ ์๊ฐ๋์ ๊ฐ์ ์ฌ์ฉ์(๋ธ๋ผ์ฐ์ )๋ก๋ถํฐ ๋ค์ด์ค๋ ์ผ๋ จ์ ์๊ตฌ๋ฅผ ํ๋์ ์ํ๋ก ๋ณด๊ณ , ๊ทธ ์ํ๋ฅผ ์ ์ง์ํค๋ ๊ธฐ์ ์ ๋๋ค. ๋ฐฉ๋ฌธ์๊ฐ ์น ์๋ฒ์ ์ ์ํด ์๋ ์ํ(์ฌ์ฉ์๊ฐ ์ธ์ฆ์ ์ฑ๊ณตํ ์ํ)๋ฅผ ํ๋์ ๋จ์๋ก ๋ณด๊ณ ๊ทธ๊ฒ์ ์ธ์ ์ด๋ผ ํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ์ ์๋ฒ๊ฐ์ ์ธ์ ์ด ์ด๋ป๊ฒ ์ด์ฉ๋๋์ง๋ Sprint์์ ๊ทธ๋ฆผ์ผ๋ก ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค! ์ด๋ฌํ ์ธ์ ์ ๋์ ๊ด๋ฆฌํด์ฃผ๋ express-session์ด๋ผ๋ ๋ฏธ๋ค์จ์ด๊ฐ ์กด์ฌํฉ๋๋ค. ์ธ์ ์์ด๋๋ฅผ ์ฟ ํค์ ์ ์ฅํ๊ณ , ์ข ์๋๋ ๊ณ ์ ํ ์ธ์ ๊ฐ์ฒด๋ฅผ ์๋ฒ ๋ฉ๋ชจ๋ฆฌ์..
์ค๋์ ์ผ์ ์ด ์์ด ๋ฐฐ์ ๋ ๋ด์ฉ์ ๋ชจ๋ ์ ๋ฆฌํ์ง ๋ชปํ์ต๋๋ค. ์ ํํ ๋ Session ํํธ๊ฐ ์ด๋ ค์ ๊ธฐ ๋๋ฌธ์ Session์ ์ ์ธํ ๋ถ๋ถ์ ์ ๋ฆฌํ๊ณ , ๋ด์ผ ๋ง์ Session๊ณผ ์คํ๋ฆฐํธ๋ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค! ๐ HTTPS ์ ์ ๋ฐ ํน์ง HTTP + Secure ์ ์ฝ์๋ก HTTP ํ๋กํ ์ฝ ๋ด์ฉ์ ์ํธํํ ๊ฒ์ ๋งํฉ๋๋ค. ์ฆ, HTTP๋ณด๋ค ์๋์ ์ผ๋ก ์์ ํ ๋ฐฉ๋ฒ์ด๊ณ , ๋ฐ์ดํฐ ์ ๊ณต์์ ์ ์์ ๋ณด์ฅ๋ฐ์ ์ ์๋ ํ๋กํ ์ฝ์ ๋๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์์ ๊ณต๊ฒฉ์๊ฐ ์๋ก์ ์์ฒญ, ์๋ต์ ๋ฐ์ดํฐ๋ฅผ ํ์ทจ ๋ฐ ๋ณ์กฐํด์ ๋ค์ ์ ์กํ๋ ์ค๊ฐ์ ๊ณต๊ฒฉ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ํฌ๊ฒ ์ธ๊ฐ์ง ํน์ง์ด ์์ต๋๋ค. ์ธ์ฆ์ (Certificate): ๋ฐ์ดํฐ ์ ๊ณต์์ ์ ์์ ๋ณด์ฅํ๋ ์ญํ ์ ํฉ๋๋ค. ์ธ์ฆ์์ ์์ฑ๋ domain๊ณผ ์๋ต๊ฐ์ฒด do..