๐ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ
๐ ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๊ณผ์
์น ๋ธ๋ผ์ฐ์ ์ ๊ตฌ์กฐ
Critical rendering path
1. ์ ์ ๊ฐ ์ ์ํ๊ณ ์ ํ๋ URL์ ์
๋ ฅ
2. ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ์๊ฐ ์์ฒญํ ์นํ์ด์ง๋ฅผ ํ์ฑ
3. HTML๊ณผ CSS๋ฅผ DOM (๊ณ์ธตํ)
4. ํ๋ฉด์ ํ์๋์ด์ผ ํ๋ ์ ๋ณด๋ฅผ ํฌํจํ๋ ํธ๋ฆฌ
๐ Flexbox
- ํ ๋๋ ์ด์ ๊ธฐ์ค์ผ๋ก ์น ์์๋ค์ ์ ๋ ฌํ๋ ๋ฐฉ์
- ํฌ๊ธฐ๊ฐ ์ ๋์ ์ด์ด์ผ ํ๋ ์ํฉ์์ ๋ง์ด ์ฌ์ฉ
- ํ๋ฉด ํฌ๊ธฐ์ ๋ง์ถฐ ํ๋ฉด์ ์์ดํ
๋ค์ ๋์ด์ ๋์ด๋ฅผ ์ต์ ์ ๊ธธ์ด๋ก ๋ง์ถฐ์ค
๐ CSS ์ ๋๋ฉ์ด์
VS JS ์ ๋๋ฉ์ด์
CSS ์ ๋๋ฉ์ด์
- Transition๊ณผ Animation ์์ฑ์ด ์กด์ฌ
- Transition์ hover๋ click๊ณผ ๊ฐ์ ์ด๋ฒคํธ ํธ๋ฆฌ๊ฑฐ์ ์ํด ๋์ํ๊ณ , ํด๋น ์์์ ๋ณํ๋ฅผ ์ผ์ ๊ธฐ๊ฐ๋์ ์ผ์ด๋๊ฒ ํจ
- Animation์ ์ด๋ฒคํธ๋ฅผ ํฌํจํ์ฌ ์์, ์ ์ง, ๋ฐ๋ณต๊น์ง ์ ์ด ๊ฐ๋ฅ
- IE๋ฅผ ์ ์ง์ํ์ง ์์
- CSS๋ง ๊ด๋ฆฌํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ํธ๋ฆฌํจ
JS ์ ๋๋ฉ์ด์
- setInterval()๊ณผ ๊ฐ์ ํจ์๋ฅผ ํ์ฉํด ์์์ ๋ณํ๋ฅผ ์ค
- ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง ์ธก๋ฉด์์๋ JS ์ ๋๋ฉ์ด์
์ด ์ ํธ๋จ
- ์์ ํ๋ํ๋์ ๋์์ ๊ด๋ฆฌํด์ค์ผ ํจ
- ์ธ๋ฐํ ๋์๊น์ง ๋ณํ์ ์ค ์ ์์
๐ ๋ธ๋ผ์ฐ์ ์ ์ฅ์์ ์ฐจ์ด์
localStorage
- ๊ฐ์ฅ ๊ฐ๋จํ๊ฒ key-value ์ ์ฅ
- ์ต๋๋ก ์ ์ฅํ ์ ์๋ ์ฉ๋(์ฝ 5~10MB)์ ์ ํ์ด ์์
- ๋๋ฉ์ธ์ด ๊ฐ์ผ๋ฉด ์ ์ญ์ ์ผ๋ก ๋ฐ์ดํฐ ๊ณต์
sessionStorage
- ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข
๋ฃํ๋ฉด ์ด๊ธฐํ (์๋ก๊ณ ์นจ์ ์ ์ธ)
- ๊ฒ์ํ์ ์๋ ์์ ์ ์ฅ ์ฉ๋๋ก ์์ฃผ ํ์ฉ
- ๋๋ฉ์ธ์ด ๊ฐ์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ค๋ฅด๋ฉด ๋ฐ์ดํฐ ๊ณต์ ๊ฐ ์๋จ (๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ณ๋์ sessionStorage๊ฐ ์์ฑ๋จ)
Cookie
- ๋ฐ์ดํฐ ์ ํจ ๊ธฐ๊ฐ์ ์ง์ ํ ์ ์์
- ์ ์ฅํ ์ ์๋ ์ฉ๋์ด ์์๋ฐ, ๊ทธ ์ด์ ๋ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋๋ง๋ค ์ฟ ํค ๋ฐ์ดํฐ๊ฐ ๋ด๊ฒจ์ ์ ์ก๋๊ธฐ ๋๋ฌธ์
๐ SSR VS CSR
SSR(Server Side Rendring)
- ํ์ด์ง ๋ด์ฉ์ ์๋ฒ์์ ๊ทธ๋ฆฐ ๋ค์ ๋ธ๋ผ์ฐ์ ๋ก ์ ๋ฌ
- ํ์ด์ง๋ฅผ ์ด๋ํ ๋๋ง๋ค ์๋ฒ์ ์๋ก์ด ํ์ด์ง ์์ฒญ
- ์ด๊ธฐํ๋ฉด ๋ก๋ฉ ์๋๊ฐ ๋น ๋ฆ
- ์ฆ์ ์๋ฒ ์์ฒญ์ ๋ฐ๋ฅธ ๋ถํ๊ฐ ์์ ์ ์์
CSR(Client Side Rendering)
- ํ์ด์ง ๋ด์ฉ์ ๋ธ๋ผ์ฐ์ ์์ ๊ทธ๋ฆผ
- React๋ฅผ ์๋ก ๋ณด๋ฉด index.js ํ์ผ๋ง ๋ก๋ํ๋ ๊ฒฝ์ฐ (Single Page Application)
- ์น๋ด์ด ํฌ๋กค๋งํ ๋๋ ์น์ด ๋ก๋๋๊ธฐ ์ ์ ๋น ์ํ ์ฝ๋๋ฅผ ํฌ๋กค๋งํ๊ธฐ ๋๋ฌธ์ SEO์ ๋จ์ ์ด ์์
- ์ด๊ธฐ ๋ก๋ฉ ์ดํ SSR๋ณด๋ค ๋ก๋ฉ ์๋๊ฐ ๋น ๋ฆ
๊ธฐ์กด์๋ ํ์ด์ง๋ฅผ ์ด๋ํ ๋๋ง๋ค ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ๊ณ ํ๋ฉด์ ๋ ๋๋งํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค๋ฉด ์ต๊ทผ์ ์น ํธ๋ ๋๋ ๋ธ๋ผ์ฐ์ ๋ก๋ ์ ํ์ด์ง ์ ์ฒด๋ฅผ ๋ก๋ํ ๋ค์ ์๋ก์ด ํ์ด์ง ๊ฐฑ์ ์ ํ์ํ ๋ฐ์ดํฐ ๋ง์ ์ ๋ฌ๋ฐ์ ํ์ด์ง๋ฅผ ๊ฐฑ์ ํจ. ๋ํ์ ์ผ๋ก React, Vue, Angular๊ฐ ์์
๐ CORS(Cross-Origin Resource Sharing)
- ๋๋ฉ์ธ์ด ๋ค๋ฅด๋ฉด ์์ฒญ์ ์ฃผ๊ณ ๋ฐ์ ์ ์๊ฒ ํ๋ ค๋ ์ด๊ธฐ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์ฑ
์ผ๋ก ์ธํด ๋ฐ์ํ ๋ฌธ์
cross-origin ์ผ์ด์ค
- ํ๋กํ ์ฝ(http, https), ๋๋ฉ์ธ, ํฌํธ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ํ๋ก ํธ์ ๊ฒฝ์ฐ Reqeust Header์ CORS ๊ด๋ จ ์ต์
์ ์ถ๊ฐํ๊ณ , ์๋ฒ ๊ฐ๋ฐ์์๊ฒ CORS ํ์ฉ์ ์์ฒญํจ
- ํ๋ก์ ์๋ฒ๋ฅผ ํตํ ์ฐํ (์ธ๋ถ ๋๋ฉ์ธ ์๋ฒ์ ๋ฐ๋ก ์์ฒญํ๋ ๊ฒ์ด ์๋ ํ๋ก์ ์๋ฒ๋ฅผ ํตํด ์ธ๋ถ ์๋ฒ์ ์์ฒญํ ๋ค์ ๊ฒฐ๊ณผ ๊ฐ์ ๋ฐ๋ ๋ฐฉ๋ฒ)
๐ ์ฐธ๊ณ ๋ํผ๋ฐ์ค