Linux Shell ๊ธฐ๋ณธ ๋ช
๋ น์ด์๋ฒ๋ฅผ ๊ด๋ฆฌํ๊ฑฐ๋, ์ด์ํ ๋ ๋ฆฌ๋
์ค ๋ช
๋ น์ด๋ ํ์์ด๋ค. ํนํ, ์๋ฒ ํ๊ฒฝ์์ ์์
์ ์๋ํํ๊ฑฐ๋ ์์คํ
์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด์๋ ๋ฆฌ๋
์ค ์(Bash/Zsh) ๋ช
๋ น์ด๋ฅผ ์์์ผํ๋ค. ๋ช
๋ น์ด๋ค๋ก ์๋ฒ ์ํ ํ์ธ, ํ์ผ ๊ด๋ฆฌ, ๋คํธ์ํฌ ์ค์ ๋ฑ ๋ค์ํ ์์
์ ์ฌ์ฉ๋๋ค.์ด๋ฒ ๊ธ์์๋ ์๋ฒ ๊ด๋ฆฌ์ ์์คํ
์ด์์ ํ์์ธ ๋ฆฌ๋
์ค ์ ๊ธฐ๋ณธ ๋ช
๋ น์ด๋ค์ ์ ๋ฆฌํ๊ณ , ์ด์ด์ ๋ค์ ํฌ์คํ
์๋ Git ๋ช
๋ น์ด(Git Bash)๊น์ง ์์๋ณด๊ณ ์ ํ๋ค.์์ํ๊ธฐ์ ์์ ํ์๋ Git Bash ๋๋ Ubuntu๋ฅผ ์ฌ์ฉํ ์์ ์ด๋ค.๋ฆฌ๋
์ค ์(Shell) ์ด๋?์(Shell)์ ๊ฐ๋
์์ ์ฌ์ฉ์๊ฐ ์ด์์ฒด์ ์ปค๋๊ณผ ์ง์ ์ํตํ ์ ์๋๋ก ๋์์ฃผ๋ ์์คํ
์ํํธ์จ์ด์ ์ข
๋ฅ์ด๋ค. ์ด์์ฒด์ (OS)๋ ํ๋์จ์ด ์..
๐ปDEV-STUDY/HTTP
HTTPS & ์น ๋ธ๋ผ์ฐ์ ์์์ CORS ์น ๋ณด์์์ ์ค์ํ ๋ ๊ฐ์ง ๊ฐ๋
์ HTTPS์ CORS์ด๋ค. CORS๋ ์น ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ํ ๋ฒ์ฏค์ ๋ณด๊ฒ๋๋ค๋ ์๋ฌ๋ฉ์ธ์ง๋ผ๊ณ ํ๋ค. ์น ๊ฐ๋ฐ์์ ์ ๊ณ ์์ด๋ผ๊ณ ๋ ํ๋ CORS๊ฐ ๋ฌด์์ธ์ง, ์ด ์๋ฌ๋ฅผ ์ฌ์ ์ ์ด๋ป๊ฒ ๋ฐฉ์งํ ์ ์๋์ง๋ฅผ ์์์ผ ๋ ํจ์จ์ ์ด๊ณ ์์ ํ๊ฒ ์น ๊ฐ๋ฐ์ ํ ์ ์๊ธฐ๋๋ฌธ์ ์์๋ณด๊ณ ์ ํ๋ค. HTTPS๋ ์น ํต์ ์ ๋ณด์์ ๊ฐํํ๊ธฐ ์ํ ํ๋กํ ์ฝ์ด๋ฉฐ, CORS๋ ์น ๋ธ๋ผ์ฐ์ ์์์ ๋ฐ์ํ ์ ์๋ ์
์์ , ์ ์ ๋น์๋ ์์ฒญ(CSRF)์ผ๋ก๋ถํฐ ๋ถ๋ถ์ ์ผ๋ก ๋ณดํธํ๋ ์ ์ฑ
์ด๋ค. โป '๋ถ๋ถ์ ': ์๋ฒฝํ๊ฒ๋ CSRF๋ฅผ ๋ฐฉ์ดํ์ง ๋ชปํ๋ค๋ ์๋ฏธ์ด๋ค. "์น"์๋ง ์๋ ๋ฐฉ์ด ์ ์ฑ
์ผ๋ก ์ฑ์๋ ์๊ณ Form ์์ฒญ๋ ๋ฐฉ์ด ํ ์ ์๋ค.HTTPS (HTTP Secured,..
Session"์ธ์
์ ์ ์งํ์๊ฒ ์ต๋๊น" ์ง๋ ๊ธ์ ์ด์ด์ ์ด๋ฒ์ Session์ ๋ํด ์์๋ณด๊ณ ์ ํ๋ค.์ฌ์ฉ์๊ฐ ์น ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ ๋ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ด๋ป๊ฒ ์ ์งํ๋ ๊ฒ์ผ๊น ?์ด๋ฌํ ์ผ์์ ์ธ ๊ธฐ๋ฅ์๋ '์ธ์
(Session)'์ด๋ผ๋ ๊ฐ๋
์ด ์จ์ด์๋ค. ์ด๋ฒ ํฌ์คํ
์์ ์น ์ดํ๋ฆฌ์ผ์ด์
์์ ์ธ์
์ด ์ด๋ป๊ฒ ๋์ํ๋์ง์ ๋ํด ์ง๋ ์ฟ ํค์ ๋น๊ตํด์ ์์๋ณด๊ณ ์ ํ๋ค. ์น ์๋ฒ ๋ด ์ ์ฅ + ๋จ, SESSION_ID๋ ์น ๋ธ๋ผ์ฐ์ ๋ด ์ ์ฅ ๋ฐ ์ ์ก์๊ฐ์ ๋ฐ๋ผ ๊ธฐ์กด ๊ฐ์ ์์ ์ค๊น?์ธ์
๋ฐ์ดํฐ๊ฐ ์ผ์ ์๊ฐ ๋์ ์ฌ์ฉ๋์ง ์์ผ๋ฉด ์๋์ผ๋ก ์ญ์ ํด์ผํ๋ค. ์ธ์
๋ฐ์ดํฐ๋ ์ฃผ๋ก ์ฌ์ฉ์ ํ๋์ ๋ฐ๋ผ ์์ฑ๋๋ค. ์๊ฐ์ด ์ง๋๋ฉด ๋ ์ด์ ์ ํจํ์ง ์๊ฒ ๋ง๋ค์ด์ผํ๋ค. → ๋ฐฑ์๋ ๊ฐ๋ฐ์๊ฐ ๋ฐฐ์น ์์
์ ์ค์ ํ ์ ์๋ค.Session์ ์ฌ์ฉ์์ ์..
Web Storage"์ฟ ํค๋ณด๋ค ๋ ๋ง์ ์ ์ฅ ๊ณต๊ฐ" ์ง๋ ๊ธ์์ Cookie๋ฅผ ๋ณด์ ์ธก๋ฉด์์ ์ฃผ๋ก ๋ค๋ค๋ดค๋ค๋ฉด, ์ด๋ฒ ๊ธ์์ ์ ์ฅ๊ณต๊ฐ ์ธก๋ฉด์์ ๋ค๋ค๋ณผ๊นํ๋ค. ์น ๋ธ๋ผ์ฐ์ ๋ด์์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋ค. HTML5 ์ด์ ์๋ ์ฟ ํค(Cookie)๊ฐ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์ผํ ์ ์ฅ์ ์ญํ ์ ํ์ง๋ง, HTML5 ํ์ค์ด ๋ฑ์ฅํ๋ฉด์ Storage๊ฐ ์ถ๊ฐ๋์๊ณ , ์ด๋ฅผ ํตํด ์น ๊ฐ๋ฐ์๋ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ ์ ์๊ฒ ๋์๋ค. ์ด๋ฒ ํฌ์คํ
์์๋ Storage์ Cookie์ ์ฐจ์ด์ ๊ณผ ์ฉ๋์ ๋ํด ์์๋ณด๊ณ ์ ํ๋ค. Web Strorage๋?Storage๋ Cookie, Session ์ฒ๋ผ Stateful HTTP๋ฅผ ์ํ ๊ธฐ์ ์ ์๋๋ค. → ์ฝ๊ฒ ๋งํด, ์น ๋ธ๋ผ์ฐ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ผ๊ณ ์๊ฐํ๋ฉด ํธํ๋ค.์น ์คํ ..
Cookie"์ฟ ํค๋ฅผ ํ์ฉํ์๊ฒ ์ต๋๊น"HTTP Cookie๋?HTTP Cookie๋ ์ฌ์ฉ์๊ฐ ์น ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ ๋ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋๋ ์์ ๋ฐ์ดํฐ ํ์ผ์ด๋ค.๋ธ๋ผ์ฐ์ ๋ ๊ทธ ๋ฐ์ดํฐ ์กฐ๊ฐ๋ค์ ์ ์ฅํด๋์๋ค๊ฐ ๋์ผํ ์๋ฒ์๊ฒ ์ฌ ์์ฒญ ์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ํจ๊ป ์ ์กํ๋ค. ์ฟ ํค๋ ๋ ์์ฒญ์ด ๋์ผํ ๋ธ๋ผ์ฐ์ ์์ ๋ค์ด์๋์ง ์๋์ง ํ๋จํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค. ์ด๋ฅผ ์ด์ฉํ๋ฉด ์ฌ์ฉ์์ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์งํ ์์๋ค. ์ํ๊ฐ ์๋(stateless)HTTP ํ๋กํ ์ฝ์์ ์ํ ์ ๋ณด๋ฅผ ๊ธฐ์ต์์ผ์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ฅผ ๋ค์ด, ์ฟ ํค๋ ๋ก๊ทธ์ธ ์ ๋ณด, ์ฌ์ฉ์ ์ค์ , ์ฅ๋ฐ๊ตฌ๋์ ๋ด๊ธด ํญ๋ชฉ ๋ฑ์ ์ ์ฅํ ์ ์๋ค.์น ์๋ฒ์ ์ ์ด + ์น ๋ธ๋ผ์ฐ์ ๋ด ์ ์ฅ ๋ฐ ์ ์ก'Set-Cookie' ํค๋๋ฅผ ํตํด ์ฟ ํค์ ๋ฐ์ดํฐ, ์ ํจ ์๊ฐ, ๋ณด์ ์ค์ ๋ฑ์ ๊ด๋ฆฌ..
์ธ์ฆ/์ธ๊ฐ > 3๊ฐ์ ํด๊ฒฐ์ฑ
"์ฟ ํค"๋ผ๋ ๋จ์ด์์ฒด๊ฐ ์น์ํด์์๋์ง ๋ง๋งํ๊ฒ ๋ณด์๋ค. ๋น๋ถ๊ฐ ์๋ธ์จ์ด ์ฟ ํค๋ ์
์๋ ๋์ง ์์ ์์ ์ด๋ค.๋ฌผ๋ก ์ฟ ํค์ ์ธ์
๋ชจ๋ ์ด์ ์ ๋ค์ด๋ดค๊ณ ๋์ถฉ ์ด๋ค ๊ฒ์ธ์ง๋ ์๊ณ ์์๊ณ ํ๋ก์ ํธ์ ์ ์ฉํด๋ณธ ์ ๋ ์๋ ๊ฒฝํ์ด ์์ง๋ง ์ด๋ ๊ฒ ๋ฅํ๊ฒ ๋ค์ด๊ฐ ์ ๋ ์์๋ค.. ์ฟ ํค&์ธ์
๊ทธ๋ฆฌ๊ณ ๊ฑฐ๊ธฐ์ ํ์๋๋ HTTPS๋ณด์ ๋ฑ์ ์์๋ณผ๊นํ๋ค. ๋ด์ฉ์ด ์๋ ๋ง๋ค๋ณด๋ ๊ธ์ ๋๋ ์ ํฌ์คํ
ํ ์์ ์ด๋ค. Stateless & Stateful ๋ด๊ฐ ์ดํดํ ๋ฐ๋ก๋, HTTP๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์์ฒญ์ด ๋
๋ฆฝ์ ์ธ Stateless(๋น์ํ์ฑ, ๋น์ฐ์์ฑ)์ด๋ค.์๋ฒ๋ ๊ฐ ์์ฒญ์ด ๋ณ๊ฐ์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์จ ๊ฒ์ฒ๋ผ ์ฒ๋ฆฌํ๋ฉฐ, ์ด์ ์์ฒญ๊ณผ ํ์ฌ ์์ฒญ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์งํ์ง ์๋๋ค.๋ฐ๋๋ก Stateful(์ํ..
Proxy๋?์ฐ๋ฆฌ๋ง๋ก "๋๋ฆฌ์ธ"์ด๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.๋คํธ์ํฌ์์ Proxy๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์ค๊ฐ์๋ก์ ๋์ํ๋ฉฐ, ๋ค์ํ ๊ธฐ๋ฅ์ ์ํํ๋ค.์น ์๋น์ค์์ Proxy๋ ๋ณด์, ์บ์ฑ, ํธ๋ํฝ ๋ถ์ฐ ๋ฑ์ ์ค์ํ ์ญํ ์ ํ๋ค. ์๋ฒ ๋ถํ ์ํ ๋ฐ ๋ณด์(์์ฒญ/์๋ต ๋ณ์กฐ)์ ์ํ ProxyProxy ์๋ฒ๋ ์น ํ๊ฒฝ์์ ๋ถํ๋ฅผ ์ค์ด๊ณ ๋ณด์์ ๊ฐํํ๊ธฐ ์ํด ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์์นํ๋ ์ค์ํ ๋๊ตฌ์ด๋ค.Proxy๋ ์ฃผ๋ก ํด๋ผ์ด์ธํธ ์ธก์ Foward Proxy์ ์๋ฒ ์ธก์ Reverse Proxy๋ก ๋๋๋ค. https://www.youtube.com/watch?app=desktop&v=4NB0NDtOwIQ์ฐธ์กฐ ์์: Proxy vs Reverse Proxy (Real-world Examples) (You..
Cache ๋์์ ํต์ฌ์ ์ฌ๊ฒ์ฆ ์ฃผ๊ธฐ์ ์ฌ๊ฒ์ฆ ๊ธฐ์ค ์ฃผ๊ธฐ์ ๊ฒ์ฆ ์ฃผ๊ธฐ์ ๊ฒ์ฆ ์ฃผ๊ธฐ์ ๊ฒ์ฆ ์ฃผ๊ธฐ์ ๊ฒ์ฆ ์ฃผ๊ธฐ์ ๊ฒ์ฆ HTTP Cache๋ ์น ์ฑ๋ฅ ์ต์ ํ์ ์ค์ํ ์ญํ ์ ํ์ง๋ง, ์ค์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ฒ ๋ฐ์ํ์ง๋ ์๋๋ค. ์๋ฅผ ๋ค์ด, ์ํ ๊ณ์ข ์๊ณ ์ฒ๋ผ ์ค์๊ฐ์ผ๋ก ๋ณ๋๋๋ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ, ์บ์๋ฅผ ํตํด ์๋ชป๋ ์ ๋ณด๊ฐ ์ ๊ณต ๋ ์ ์๋ค. ๋ง์ฝ 100๋ง ์์ด ์บ์๋์ด ์๋ ์ํ์์ ๋์ ๊ณ์ ์ฌ์ฉํ๋ฉด, ์ค์ ์๊ณ ๊ฐ -500๋ง ์์ด ๋์ด๋ ์บ์๊ฐ ๊ฐฑ์ ๋์ง ์๋ ํ 100๋ง์ ๋ง ๋ณด์ผ ์ ์๋ค.์ด๋ฌํ ์ด์ ๋ก ์ค์๊ฐ์ฑ์ด ์ค์ํ ๋ฐ์ดํฐ์๋ ์บ์ ์ฌ์ฉ์ ์ ์คํ๊ฒ ๊ณ ๋ คํด์ผ ํ๋ค.์บ์์ ์ค์ค์๊ฐ์ฑ ๋ณด์ฅ ์บ์๋ ์์(๋ฐ์๊ตฌ์ )์ ์ฅ์ ์ํ ์ ๋ต์ด๋ค. ๊ทธ๋ฌ๋ ์ค์๊ฐ์ฑ์ ์์ ํฌ๊ธฐํ๋ค๋ ๊ฒ์ด ์๋๋ผ, ์ฌ๊ฒ์ฆ(revalidate..