- ์ด์ /์ด๋ฒ ์ฃผ์ ๋ฌด์์ ๊ณต๋ถํ์ จ๋์?
- ์ฝ๋ฉ์ ํ ๋ ๋น์ ์ ๋ค๋จ๊ฒ ํ๊ฑฐ๋ ํฅ๋ฏธ๋ฅผ ๋๋ ๊ฒ๋ค์ ๋ฌด์์ ๊ฐ์?
- ์ต๊ทผ์ ๋น์ ์ด ๊ฒฝํํ ๊ธฐ์ ์ ์ธ ๋ฌธ์ ๋ ๋ฌด์์ด๊ณ ๊ทธ๊ฒ์ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์?
- ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ์ฌ์ดํธ๋ฅผ ๋ง๋ค ๋ ๊ณ ๋ คํด์ผ ํ UI, Security, Performance, SEO, Maintainability์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ์ ํธํ๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ํด ์์ ๋กญ๊ฒ ์ด์ผ๊ธฐํด ์ฃผ์ธ์.
- ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ์ด๋ค ๊ฒ๋ค์ ์ฌ์ฉํด๋ณด์ จ์ต๋๊น?
- ๋น์ ์ด ์น ํ์ด์ง๋ฅผ ๋ง๋ค ๋์ ๊ณผ์ ์ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
- ๋น์ ์๊ฒ 5๊ฐ์ง ๋ค๋ฅธ stylesheet๊ฐ ์์ต๋๋ค. ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ดํธ์ ์ ๊ณตํ๋ ๊ฒ ๊ฐ์ฅ ํจ๊ณผ์ ์ผ๊น์?
- ์ ์ง์ ํฅ์๋ฒ(progressive enhancement)๊ณผ ์ฐ์ํ ์ฑ๋ฅ์ ํ๋ฒ(graceful degradation)์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ์ค ์ ์์ต๋๊น?
- ์น์ฌ์ดํธ์์ assets/resources๋ฅผ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ๊ดํด ์ค๋ช ํด์ฃผ์ธ์.
- ๋ธ๋ผ์ฐ์ ๊ฐ ํ ๋ฒ์ 1๊ฐ์ ๋๋ฉ์ธ์์ ๋ด๋ ค๋ฐ๋ ์์์ ๋ช ๊ฐ์ธ๊ฐ์?
- ์์ธ์๋ ์ด๋ค ๊ฒ๋ค์ด ์๋์?
- ํ์ด์ง ๋ก๋ ์๊ฐ์ ์ค์ด๋ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๊ดํด์ ์ด์ผ๊ธฐ ํด ๋ณด์ธ์.
- ๋น์ ์ด ํ๋ก์ ํธ์ ํฉ๋ฅํ์ต๋๋ค. ๊ทผ๋ฐ ๊ทธ๋ค์ Tab์ ์ด์ฉํ๊ณ , ๋น์ ์ Space๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ด๋ป๊ฒ ํ์ค ๊ฑด๊ฐ์?
- ๊ฐ๋จํ Slideshow ํ์ด์ง๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๊ดํด์ ์ด์ผ๊ธฐํด ๋ณด์ธ์.
- ๋ง์ฝ ๋น์ ์ด ์ฌํด ๊ธฐ์ ์ ์ฑ ์์๊ฐ ๋์๋ค๋ฉด ๋ฌด์์ ๋จผ์ ํ์๊ฒ ์ต๋๊น?
- ํ์ค์ ์ค์์ฑ์ ๊ดํด ์ค๋ช ํด์ฃผ์ธ์.
- Flash of Unstyled Content์ ๊ดํด ์ค๋ช ํด์ฃผ์ธ์. ๋ FOUC๋ฅผ ํผํ๊ธฐ ์ํด์ ์ด๋ป๊ฒ ํด์ผ ํ๋์?
- ARIA์ screenreader์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๋ ์ ๊ทผ์ฑ์ ์ง์ํ๋ ์น์ฌ์ดํธ๋ฅผ ์ด๋ป๊ฒ ๋ง๋๋์ง์ ๋ํด๋ ์ค๋ช ํด์ฃผ์ธ์.
- CSS ์ ๋๋ฉ์ด์ ๊ณผ JavaScript ์ ๋๋ฉ์ด์ ์ ์ฐจ์ด์ ์ ๊ดํด ์ค๋ช ํด์ฃผ์ธ์.
- CORS๋ ๋ฌด์์ ์ฝ์์ด๊ณ ์ด๋ค ๋ฌธ์ ์ ๋ํด์ ์ธ๊ธํ๋ ๊ฒ์ธ๊ฐ์?
๋น์ ์๊ฒ 5๊ฐ์ง ๋ค๋ฅธ stylesheet๊ฐ ์์ต๋๋ค. ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ดํธ์ ์ ๊ณตํ๋ ๊ฒ ๊ฐ์ฅ ํจ๊ณผ์ ์ผ๊น์?
CSS๋ ๋ฐํ์์ ์กฐ์ ๊ฐ๋ฅํ ์ ์ธํ ์ธ์ด์ ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๊ฐ ์คํ์ผ์ํธ๋ฅผ ์ปดํ์ผํ ์ ์๋ ํ๋ฆฌ์ปดํ์ผ๋ฌ๋ฅผ ๋ง๋ค๊ฑฐ๋ ๋์ (SASS, LESS)ํ์ฌ ํ๋์ ์คํ์ผ์ํธ๋ก ๋ณํฉํ ํ ์ ๊ณตํฉ๋๋ค.
์ ์ง์ ํฅ์๋ฒ(progressive enhancement)๊ณผ ์ฐ์ํ ์ฑ๋ฅ์ ํ๋ฒ(graceful degradation)์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ์ค ์ ์์ต๋๊น?
์ ์ง์ ํฅ์๋ฒ (Progressive enhancement) | ์ฐ์ํ ์ฑ๋ฅ ์ ํ๋ฒ (graceful degradation) |
๋ง์ ํ
์คํธ๋ฅผ ํตํด ๋ง๊ทธ๋๋ก ๊ธฐ๋ฅ์ ์ ์ง์ ์ผ๋ก ํฅ์์ํค๋ ๊ฒ. ๊ธฐ์ด๋ถํฐ ์ฐจ๊ณก์ฐจ๊ณก ์์์ ๋ฐ์ ํด ๋๊ฐ๋ ๋ฐฉ๋ฒ ๋ ธ๋ ฅ๊ณผ ์๊ฐ์ด ํ์ํ๋ค. |
์ต์ ๊ธฐ์ ์ ๊ธฐ๋ฐ ๋๋ ์ต์ ๊ธฐ๊ธฐ์์ ๋์ํ๋ ๊ธฐ๋ฅ์ ๋ง๋ค๊ณ ๋์, ์ค๋๋ ๊ธฐ์ ๋๋ ์ค๋๋ ๊ธฐ๊ธฐ์์ ๋์ํ๊ฒ ํ๊ธฐ ์ํด ์ ์ฌํ ๊ธฐ๋ฅ์ ๋ง๋ค์ด ๋์ํ๊ฒ ํ๋ ๊ฒ. ์ฌ์ฉ์๋ค์ ๊ธฐ๊ธฐ๋ฅผ ์ํด ๋ณ๋์ ๋ฒ์ ์ ๋ง๋ค์ด ๋๋ ๊ฒ. ํ์ง๋ง ์ด๊ฒ์ ์์ ํ ๊ฐ๋ฐ์ ๊ด์ ์์ ์์ฑ๋ ๊ฒ์ด๋ค. ๊ทธ๋์ javascript๋ฅผ ๋ชจ๋ฅด๋ ์ฌ์ฉ์์๊ฒ๋ ๋์์ด ๋์ง ๋ชปํ๋ค. |
ex ) ์น ํ์ด์ง๋ฅผ ๊ตฌ์ฑํ ๋ 1. HTML๋ก ๋งํฌ์ ์ ๊ตฌ์ฑํ๋ค. 2. CSS๋ก ์คํ์ผ์ ์ ํ๋ค. 3. JS๋ก ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์ ์ํจ๋ค. |
ex) ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ๊ฐ javascript๋ฅผ ์ง์ํ์ง ์์ ๋ js๋ฅผ ์ง์ํ์ง ์๋ ๊ธฐ๊ธฐ๋ฅผ ์ํด <noscript> ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ "javascript๊ฐ ์ง์๋๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํด ์ฃผ์ธ์!" ์ ๊ฐ์ ์๋์ ๋์์ฃผ๋ ๊ฒ |
ํ์ด์ง ๋ก๋ ์๊ฐ์ ์ค์ด๋ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๊ดํด์ ์ด์ผ๊ธฐ ํด ๋ณด์ธ์.
https://jsmokblog.tistory.com/21
๋ ๋๋ง ์ต์ ํ ๋ฐฉ๋ฒ - ์ด๊ธฐ ๋ ๋๋ง ์ต์ ํ
ํ๋ก ํธ์๋ ์ฑ๋ฅ ์ต์ ํ = ๋ก๋ฉ ์ต์ ํ + ๋ ๋๋ง ์ต์ ํ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ํตํด ๋น ๋ฅธ ๋ก๋ฉ ์๋๊ฐ ๊ตฌํ๋๋ค๋ฉด ์ฌ์ฉ์ฑ ๊ฐ์ ๊ณผ ๋๋ถ์ด ์ฌ์ ์งํ ํฅ์์๋ ๋์๋๋ค. ์ด๋ฒ ํฌ์คํธ์์๋ ๋ก๋ฉ ์ต์ ํ์
jsmokblog.tistory.com
์น ํ์ค์ ๊ดํด ์ค๋ช ํด์ฃผ์ธ์.
์น ํ์ค์ด๋ ์น ํ์คํ ๋จ์ฒด์ธ W3C(world wide web consorution)์์ ๊ถ๊ณ ํ ํ์ค์์ ์ํด ํํ, ๊ตฌ์กฐ๋ฅผ ๋ถ๋ฆฌํ์ฌ ์ ์ํ๊ณ ์น์ ๊ตฌํํ๋ ์์ ์ ์๋ฏธํ๋ค.
์น ํ์ด์ง ์ ์์ ์์ด ๋ธ๋ผ์ฐ์ ์ ์ข ๋ฅ ๋ฐ ๋ฒ์ ์ ๋ฐ๋ฅธ ๊ธฐ๋ฅ ์ฐจ์ด์ ๋ํด์ ์ด๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ ํํ๋ ์ง ํธํ์ด ๊ฐ๋ฅํ๋๋ก ํ๋ ํ์ค์์ด ๋ฐ๋ก '์น ํ์ค'์ด๋ค.
์น ํ์ค์ ์ค์์ฑ 3๊ฐ์ง 1. ์น ํ์ด์ง ์์ ๋ฐ ์ด์ ๊ด๋ฆฌ ์ฉ์ด ์จ๋ผ์ธ ์ฝํ ์ธ ์ ์ฌ๋ฐ๋ฅธ ๊ตฌ์กฐํ์ CSS๋ก ์๊ฐ ํํ์ ํต์ผํด ์ ์ ๋ถ๋ด์ ์ค์ 2. ์น ์ ๊ทผ์ฑ ํฅ์ ์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ์์ ํธํ์ด ๊ฐ๋ฅํ๊ณ , ํ์ค์ด ์ ํด์ ธ ์๋ค ๋ณด๋ ๋ณด๋ค ๋์ค์ฑ ์ง๋ 3. ๋ค์ํ ๋๋ฐ์ด์ค ํธํ ์น ํ์ค์ผ๋ก ์ ์ํ๋ฉด ๋ณ๋์ ์น ํ์ด์ง ์ ์ ์์ด ํธํ ๊ฐ๋ฅ |
Flash of Unstyled Content์ ๊ดํด ์ค๋ช ํด์ฃผ์ธ์. ๋ FOUC๋ฅผ ํผํ๊ธฐ ์ํด์ ์ด๋ป๊ฒ ํด์ผ ํ๋์?
FOUC์ ์ ์ | FOUC๋ ์ธ๋ถ์ CSS๊ฐ ๋ถ๋ฌ์ค๊ธฐ ์ ์ ์ ์ ์คํ์ผ์ด ์ ์ฉ๋์ง ์์ ์น ํ์ด์ง๊ฐ ๋ํ๋๋ ํ์์ด๋ค. |
FOUC ๋ฐ์ ์์ธ | ์น ํ๋ฉด์ด ๊น๋นก๊ฑฐ๋ฆฌ๋ ํ์์ ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง์ ์์์ ๋ฌธ์ ์ด๋ค. ๋ธ๋ผ์ฐ์ ๋ HTML, CSS, JS์์๋ก ๋ฐ๊ฒ ๋๋๋ฐ, ์ฌ๊ธฐ์ CSS์ ์ฉ์ด ์ ๋ ์ํ์์ ๋ณด์ฌ์ง๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ์๊ธด๋ค. |
FOUC ํด๊ฒฐ์ฑ | 1. Preload์ํค๊ธฐ 2. rendering delay์ํค๊ธฐ 3. Font Loading API์ฐ๊ธฐ 4. Proper caching์ ์ฉํ๊ธฐ(์น ์บ์ฌ ์ฌ์ฉ) |
CSS ์ ๋๋ฉ์ด์ ๊ณผ JavaScript ์ ๋๋ฉ์ด์ ์ ์ฐจ์ด์ ์ ๊ดํด ์ค๋ช ํด์ฃผ์ธ์.
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ช
๋ นํ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ์ธ๋ฐํ ์กฐ์ ์ด ๊ฐ๋ฅํ ๊ฒ์ด ์ฅ์ ์ด๊ณ CSS ์ ๋๋ฉ์ด์
์ ์ ์ธํ ์ธ์ด๋ก์จ ์ง์
์ฅ๋ฒฝ์ด ๋ฎ๊ณ ๋ํ ๋ธ๋ผ์ฐ์ ์ ๋ฉ์ธ์ฐ๋ ๋๊ฐ ์๋ ์ปดํฌ์งํธ๋ผ๋ ๋ณ๋์ ์ฐ๋ ๋์์ ๊ตฌํ๋๊ธฐ ๋๋ฌธ์ GPU์ ๋ฐฑ ๋ฒํผ์์ ์ฒ๋ฆฌ๋๊ฒ ๋๋ฏ๋ก ์ฑ๋ฅํฅ์์ ๋์์ ์ค ์ ์์ต๋๋ค.
๋จ, CSS ์ ๋๋ฉ์ด์
์ ๊ฒฝ์ฐ ์ปดํฌ์งํ
์ ์ํฅ์ ์ฃผ๋ ์์ฑ ์ฆ opacity, transform ๋ง ์ด์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. left, top ๋ฑ์ ๋ ์ด์์์ ์ํฅ์ ์ฃผ๋ ์์ฑ์ผ ๊ฒฝ์ฐ ์คํ๋ ค ์ฑ๋ฅ ์ ํ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค.
๋ธ๋ผ์ฐ์ ์ ๋์ ์๋ฆฌ๋ฅผ ๊ฐ๋จํ๊ฒ ์ค๋ช
ํด ์ฃผ์ธ์.(๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๊ณผ์ )
๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ์ ์ธ ์ญํ ์ HTML, CSS ๋ช
์ธ์ ๋ฐ๋ผ HTML ํ์ผ์ ํด์ํด์ ํ์ํ๋ ๊ฒ์ด๋ค. ๋ธ๋ผ์ฐ์ ๋ฅผ ๊ตฌ์ฑํ๋ ์์๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค, ๋ธ๋ผ์ฐ์ ์์ง(ํฌ๋กฌ, ์ฌํ๋ฆฌ๋ Webkit, ํ์ด์ดํญ์ค๋ Gecko), ๋ ๋๋ง ์์ง, ํต์ , UI ๋ฐฑ์๋, ์๋ฐ์คํฌ๋ฆฝํธ ํด์๊ธฐ, ์๋ฃ ์ ์ฅ์ ๋ฑ์ด ์๋ค. ๋ ๋๋ง ์์ง์ ๋จผ์ HTML ๋ฌธ์๋ฅผ ํ์ฑํด์ DOM ํธ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๋ค. ๊ทธ๋ฆฌ๊ณ CSS ๋งํฌ์
์ ํ์ฑํด์ ์์ ๊ตฌ์ถํ DOM ํธ๋ฆฌ์ ํจ๊ป ๋ ๋๋ง ํธ๋ฆฌ๋ฅผ ๋ง๋ ๋ค. ๋ ๋๋ง ํธ๋ฆฌ๋ ํ๋ฉด์ ๋ณด์ฌ์ค ๊ฒ๋ค๋ง ๊ฐ์ง๊ณ ์๋ ํธ๋ฆฌ๋ก, ๊ตฌ์ถ์ด ๋๋ฉด ์์ฐจ์ ์ผ๋ก ํ๋ฉด์ ๋ฐฐ์นํ๋ค. ๋ถ๋ชจ์์ ์์ ์์๋ก ๋ฐฐ์น๋ ์งํ๋๋ค. ๋ฐฐ์น๊ฐ ์๋ฃ๋๋ฉด ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ์์ํ๋ค.
๋๊ธฐ์ ๋น๋๊ธฐ์ ์ฐจ์ด
๋๊ธฐ(Synchronous) ๋ฐฉ์ | ๋น๋๊ธฐ(Asynchronous) ๋ฐฉ์ |
์์ฒญ์ ๋ณด๋ด๊ณ ์คํ์ด ๋๋๋ฉด ๋ค์ ๋์์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์ | ์์ฒญ์ ๋ณด๋ด๊ณ ํด๋น ๋์์ ์ฒ๋ฆฌ ์ฌ๋ถ์ ์๊ด์์ด ๋ค์ ์์ฒญ์ด ๋์ํ๋ ๋ฐฉ์ |
- ์์์ ๋ง์ถ์ด ์งํ๋๊ธฐ ๋๋ฌธ์ ์ ์ดํ๊ธฐ ์ฝ๋ค. - ์ฌ๋ฌ๊ฐ์ง ์์ฒญ์ ๋์์ ์ฒ๋ฆฌํ ์ ์์ด ํจ์จ์ด ๋จ์ด์ง๋ค. |
- ์์
์ด ์๋ฃ๋๋ ์๊ฐ์ ๊ธฐ๋ค๋ฆด ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. - ์์ ์ด ์๋ฃ๋ ๊ฒฐ๊ณผ๋ฅผ ์ ์ดํ๊ธฐ ์ด๋ ต๋ค. |
SPA (Single Page Application), MPA(Multi Page application)
SPA๋ฅผ CSR(Client Side Rendering)๋ฐฉ์์ผ๋ก, MPA๋ฅผ SSR(Server Side Rendering)๋ฐฉ์์ผ๋ก ๋ ๋๋งํ๋ค๊ณ ๋งํ๋ค.
SPA | <์ฅ์ > | <๋จ์ > |
๋จ์ผ ํ์ด์ง๋ก ๊ตฌ์ฑ๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ๋ปํ๋ ๋จ์ด์ ๋๋ค. ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง์ ๋ฐฐ์ ํ๊ณ , ํ์ํ ๋ฐ์ดํฐ๋ง JSON ๋ฑ์ ํํ๋ก ๋ฐ์ ๋์ ์ผ๋ก ๋ ๋๋งํฉ๋๋ค. | - ์ข์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ค. - ํ์ด์ง์ ์ผ๋ถ๋ง ๋ฐ๋๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๋ค. - ๊ฐ๋ฐํ๊ธฐ์ ๋ ์ฌํํ๋ค. - ๋ก์ปฌ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์บ์ํ ์ ์๋ค. - SPA์ Appication์ ์๋ฒ์๊ฒ ์ ์ ๋ฆฌ์์ค๋ฅผ ํ ๋ฒ๋ง ์์ฒญํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ ๋ฐ์ดํฐ๋ ์ ๋ถ ์ ์ฅํด ๋๋๋ค. ์ด ๋ฐ์ดํฐ๋ ์คํ๋ผ์ธ์์๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. |
- ์ด๊ธฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ํ์ํ ๋ชจ๋ ์ ์ ๋ฆฌ์์ค๋ฅผ ํ๋ฒ์ ๋ค ๋ฐ๊ธฐ ๋๋ฌธ์ ์ด๊ธฐ ๊ตฌ๋ ์๋๊ฐ ๋๋ฆฌ๋ค. - SEO(๊ฒ์ ์์ง ์ต์ ํ) ๊ด์ ์ ๋ถ๋ฆฌํ๋ค. |
MPA | <์ฅ์ > | <๋จ์ > |
์๋ก์ด ํ์ด์ง๋ฅผ ์์ฒญํ ๋๋ง๋ค ์ ์ ๋ฆฌ์์ค๊ฐ ๋ค์ด๋ก๋ ๋๊ณ , ๊ทธ์ ๋ง์ถฐ ์ ์ฒด ํ์ด์ง๋ฅผ ๋ค์ ๋ ๋๋งํ๋ ๋ฐฉ์์ ๋๋ค. | - SEO ๊ด์ ์ ์ ๋ฆฌํ๋ค. - MPA๋ ์์ฑ๋ ํํ์ HTMLํ์ผ์ ์๋ฒ ๋ก๋ถํฐ ์ ๋ฌ๋ฐ๋๋ค. ๋ฐ๋ผ์ ๊ฒ์ ์์ง์ด ํ ์ด์ง๋ฅผ ํฌ๋กค๋งํ๊ธฐ์ ์ ํฉํ๋ค. |
- ์๋ก์ด ํ์ด์ง๋ฅผ ์์ฒญํ ๋๋ง๋ค ์ ์ฒด ํ ์ด์ง๋ฅผ ๋ค์ ๋ ๋๋ง ํ๊ธฐ ๋๋ฌธ์ ํ์ด์ง๋ฅผ ์ด๋ํ๋ฉด ํ๋ฉด์ด ๊น๋นก์ธ๋ค. - ํ๋ก ํธ์๋์ ๋ฐฑ์๋๊ฐ ์๋ก ์ฐ๊ด์ด ๋์ ๊ฐ๋ฐ์ด ๋ณต์กํด์ง ์ ์๋ค. |
CORS์ ํด๊ฒฐ๋ฐฉ๋ฒ
CORS : ๋ค๋ฅธ ๋๋ฉ์ธ์์ ๋ฆฌ์์ค ์์ฒญ ์ cross-origin HTTP์ ์ํด ์์ฒญ์ ํ๋๋ฐ, ๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ๋ ๋ณด์ ์์ ์ด์ ๋ก ์ด ์์ฒญ์ ์ ํํ๋ค. ์ด๋ฅผ ๋์ผ ์ค๋ฆฌ์ง ์ ์ฑ
(Same Origin Policy)์ด๋ผ๊ณ ํ๋ค.
ํด๊ฒฐ๋ฐฉ๋ฒ : ์์ฒญ์ ๋ณด๋ด๊ธฐ ์ํด์๋ ์์ฒญ ๋ณด๋ด๋ ๋์๊ณผ ํ๋กํ ์ฝ์ด ๊ฐ์์ผ ํ๊ณ , ํฌํธ๋ ๊ฐ์์ผ ํ๋ค. JSONP(JSON-padding)์ ํตํด ํด๊ฒฐํ๊ฑฐ๋ ํน์ HTTP ํค๋๋ฅผ ์ถ๊ฐํ์ฌ ์ด ์ด์๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ์ด์ ๊ฐ์ด ํ ๋๋ฉ์ธ ๊ฐ ์์์ ๊ณต์ ํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒ์ Cross Origin Resource Sharing, ์ค์ฌ์ CORS๋ผ๊ณ ํ๋ค.
ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง
ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง์ ์น ํ์ค์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ OS ๋๋ ํ๋ซํผ์ ๋์ํ๋ ๊ฒ์ ๋งํ๋ค. ๋ธ๋ผ์ฐ์ ๋ณ ๋ ๋๋ง ์์ง์ด ๋ค๋ฅธ ์ํฉ ๋ฑ ์ด๋ ํ ์ํฉ ์์์๋ ๋ฌธ์ ์์ด ๋์ํ๊ฒ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค. ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ ์ฌ๋ฌ๊ฐ์ง ์ ๋ต์ ์ธ์ธ ์๊ฐ ์๋๋ฐ, feature detection (๊ธฐ๋ฅ ํ์ง)์ ์ฌ์ฉํด์ ํด๋น ๊ธฐ๋ฅ์ด ํด๋น ๋ธ๋ผ์ฐ์ ์ ์๋์ง๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์๋ ์๋ค. ํนํ ํ ์ชฝ ํ๊ฒฝ์ ์ต์ ํ๋ฅผ ํ๋ ๊ฒ๋ณด๋ค, ์ ์ฒด์ ์ธ ์น ํ์ค์ ์งํค๋ ๋ฐ์ ๋
ธ๋ ฅํด์ผ ํ๋ค.
RESTful API ๊ฐ ๋ฌด์์ธ๊ฐ, ์๋๋๋ก ๋ค ๋งํด๋ฌ๋ผ
HTTP ํต์ ์์ ์ด๋ค ์ฐจ์์ ๋ํ CRUD ์์ฒญ์ Resource์ Method๋ก ํํํ์ฌ ํน์ ํ ํํ๋ก ์ ๋ฌํ๋ ๋ฐฉ์์
๋๋ค. RESTful API๋ ์๋์ ๊ฐ์ ๊ฒ๋ค๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- Resource(์์, URI)
- Method(์์ฒญ ๋ฐฉ์, GET or POST ๋ฑ)
- Representation of Resource(์์์ ํํ, JSON or XML ๋ฑ)
HTTP์ HTTPS์ ์ฐจ์ด
HTTP(Hypertext Transfer Protocol)๋ ์ธํฐ๋ท์์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ์๋ฒ/ํด๋ผ์ด์ธํธ ๋ชจ๋ธ์ ๋ฐ๋ฅด๋ ํ๋กํ ์ฝ์ด๋ค.
HTTPS๋ ๊ธฐ์กด http์ ๋ณด์(security)์ด ์ถ๊ฐ๋ ๊ฒ์ผ๋ก, ์๋ฒ์์ ๋ธ๋ผ์ฐ์ ๋ก ์ ์ก๋๋ ์ ๋ณด๊ฐ ์ํธํ๋์ง ์๋ http์ ์ฝ์ ์ ๋ณด์ํ ํ๋กํ ์ฝ์ด๋ค.
'๐ฐ CS ์ค๋น > ์ผ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
OOP (๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ) (0) | 2021.10.30 |
---|