๐ ๊ธฐ์ ๋ฉด์ 20 JavaScript ์ฝ๋๋ฅผ HTML๋ณด๋ค ๋ฐ์ ์์ฑํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์? ๐ฉ๐ป๐ป JavaScript ์ฝ๋๋ฅผ HTML๋ณด๋ค ๋ฐ์ ์์ฑํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์? ์๋ฆผ์ฐฝ Open ๐๐ปโ๏ธ ์์ฝํ์๋ฉด , ํ์ด์ง ๋ก๋ฉ ์๋๋ฅผ ํฅ์์ํฌ ์ ์๊ณ , DOM ์กฐ์ ๋ฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ฐ ํจ์จ์ ์ผ๋ก ์ด๋ฃจ์ด์ง ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. 1. ๋ก๋ฉ ์์ ์น ๋ธ๋ผ์ฐ์ ๋ HTML ๋ฌธ์๋ฅผ ์์์ ์๋๋ก ํ์ฑํ๋ฉฐ ๋ก๋ฉํ๋๋ฐ, HTML ๋ฌธ์ ๋ด์ ์๋ ์์๋ค์ ๋ง๋๋ฉด ํด๋น ์์๋ค์ ์์๋๋ก ์ฒ๋ฆฌํ๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์ HTML ๋ฌธ์์ ํฌํจ๋ JavaScript ์ฝ๋๋ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๋ง์ฝ JavaScript ์ฝ๋๊ฐ HTML๋ณด๋ค ์์ ์์นํ๋ค๋ฉด, HTML ํ์ฑ ์ค์๋ JavaScript ์ฝ๋๋ฅผ ๋ง๋๊ฒ ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ๋ JavaScript ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด HTML ํ์ฑ์ ์ค๋จํ๊ณ ์ฝ๋๋ฅผ ์ฒ๋ฆฌํด์ผ ํ.. 2023. 8. 29. TypeScript๋ ์ ํํ ๋ฌด์์ด๋ฉฐ JavaScript์ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฐ์? ๐ฉ๐ป๐ป ์ง๋ฌธ ๐๐ปโ๏ธ ์์ฝํ์๋ฉด , TypeScript๋ Microsoft์์ ๊ฐ๋ฐํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก, JavaScript์ ํ์ฅ๋ ๋ฒ์ ์ ๋๋ค. TypeScript๋ ์ ์ ํ์ ์ ์ง์ํ๋ ์ธ์ด๋ก, ๊ฐ๋ฐ์์๊ฒ ํ์ ์์ ์ฑ๊ณผ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ฌ์ฃผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. JS vs. TS JavaScript๋ ๋์ ํ์ ์ธ์ด๋ก, ๋ณ์์ ํ์ ์ ์ ์ธํ์ง ์๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ์ ์ฐ์ฑ๊ณผ ๊ฐํธํจ์ ์ ๊ณตํ์ง๋ง, ํ์ ์๋ฌ์ ๊ฐ๋ฅ์ฑ์ด ๋์์ง ์ ์๊ณ , ๋๊ท๋ชจ ํ๋ก์ ํธ์์ ์ฝ๋ ์ ์ง๋ณด์์ ์ด๋ ค์์ ์ผ๊ธฐํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด์ TypeScript๋ ๋ณ์, ํจ์, ๊ฐ์ฒด ๋ฑ์ ๋ช ์์ ์ธ ํ์ ์ ์ง์ ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ปดํ์ผ๋ฌ๊ฐ ์ฝ๋๋ฅผ ๋ถ์ํ๊ณ ํ์ ์ฒดํฌ๋ฅผ ์ํํ ์ ์์ด, ํ์ ๊ด๋ จ ์๋ฌ๋ฅผ ์ฌ์ ์ ๋ฐฉ์งํ .. 2023. 6. 8. Virtual DOM์ด๋? ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ ์ ์ฅ์ ์? ๐ฉ๐ป๐ป Virtual DOM์ด ๋ฌด์์ด๊ณ , Virtual DOM์ด ์ด๋ค ๋ฉด์์ ์ข์๊ฐ์? ๐๐ปโ๏ธ ์์ฝํ์๋ฉด , React์ ๊ฐ์ DOM์ ์ค์ DOM๊ณผ ์ ์ฌํ ๋ด์ฉ์ ๋ด๊ณ ์๋ ๋ณต์ฌ๋ณธ์ด๋ฉฐ, ์ด๋ฅผ ํ์ฉํ๋ฉด ๋ ๋๋ง์ ์ต์ ํํ ์ ์์ต๋๋ค. ๊ฐ์ DOM์ ๋จผ์ ์ค๋ช ํ์๋ฉด, React๋ ๋ณ๊ฒฝ ์ด์ ๊ณผ ๋ณ๊ฒฝ ์ดํ์ ๋ ๊ฐ์ ๊ฐ์ DOM์ ์ ์งํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๊ฐ์ DOM์ ๋ณ๊ฒฝ ์ด์ ์ ๋ด์ฉ์, ๋ ๋ฒ์งธ ๊ฐ์ DOM์ ๋ณ๊ฒฝ ์ดํ์ ๋ณด์ฌ์ง ๋ด์ฉ์ ๋ด๊ณ ์์ต๋๋ค. ๋ณ๊ฒฝ๋ ๋ด์ฉ์ด ํ๋ฉด์ ์๋กญ๊ฒ ๊ทธ๋ ค์ง๊ธฐ ์ , ์ฆ ์ค์ DOM์ด ๋ณ๊ฒฝ๋๊ธฐ ์ด์ ์ React๋ ๋ ๊ฐ์ ๊ฐ์ DOM์ ๋น๊ตํ์ฌ ์ด๋ค ๋ถ๋ถ์ด ๋ณ๊ฒฝ๋์๋์ง ํจ์จ์ ์ผ๋ก ์ฐพ์๋ด๋ ์์ (๋๋ Diffing)์ ์ํํฉ๋๋ค. ์ด๋, React๋ ๋ถ๋ชจ ์์์ ํ์ ์ด ๋ณ๊ฒฝ๋๋ฉด .. 2023. 6. 8. ์ฌ๊ท๋ฅผ ํ์ฉํ๊ธฐ ์ข์ ์ํฉ์ ์ธ์ ์ธ์ง ์์๋ฅผ ๋ค์ด ์ค๋ช ํด ์ฃผ์ธ์. ๐ฉ๐ป๐ป ์ฌ๊ท๋ฅผ ํ์ฉํ๊ธฐ ์ข์ ์ํฉ์ ์ธ์ ์ธ์ง ์์๋ฅผ ๋ค์ด ์ค๋ช ํด ์ฃผ์ธ์. ๐๐ปโ๏ธ ์์ฝํ์๋ฉด , ์ฌ๊ท ํจ์(Recursive function)๋ ์๊ธฐ ์์ ์ ํธ์ถํ๋ ํจ์์ ๋๋ค. ์ฌ๊ท ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ๋ณต์ ์ธ ์์ ์ ๊ฐ๋จํ๊ณ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ฌ๊ท ํจ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ข์ ์ํฉ์ ์ธ ๊ฐ์ง ์ ๋๋ก ์ด์ผ๊ธฐํด๋ณผ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. 1. ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ๋น์ทํ ๊ตฌ์กฐ์ ๋ ์์ ๋ฌธ์ ๋ก ๋๋ ์ ์๋ ๊ฒฝ์ฐ ํ์ ๋ฌธ์ ์ ํด๊ฒฐ์ด ์์์ ์๋ ๋ฌธ์ ํด๊ฒฐ์๋ ์ด์ด์ง๋ ๊ฒฝ์ฐ ์ฌ๊ท ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํผ๋ณด๋์น ์์ด์ n๋ฒ์งธ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ํ์ ๋, ํผ๋ณด๋์น ์์ด์ n๋ฒ์งธ ์๋ n-1๋ฒ์งธ ์์ n-2๋ฒ์งธ ์๋ฅผ ํฉํ ๊ฐ์ด๋ฏ๋ก, ๋ช ๋ฒ์งธ ์๋ฅผ ๊ตฌํ๋ ๋์ผํ ๊ตฌ์กฐ์ ์์ ๋ฌธ์ ๋ก ๋๋.. 2023. 5. 9. Semantic HTML์ ํ์์ฑ์ ์์๋ฅผ ๋ค์ด ์ค๋ช ํด ์ฃผ์ธ์. ๐ฉ๐ป๐ป Semantic HTML์ ํ์์ฑ์ ์์๋ฅผ ๋ค์ด ์ค๋ช ํด ์ฃผ์ธ์. ๐๐ปโ๏ธ ์์ฝํ์๋ฉด , Semantic HTML์ ์น ํ์ด์ง์ ๊ฐ ์์์ ์๋ฏธ๋ฅผ ๋ถ์ฌํ๋ HTML ๋งํฌ์ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ ์น ํ์ด์ง์ ๊ตฌ์กฐ์ ์๋ฏธ๋ฅผ ๋ ๋ช ํํ๊ฒ ์ ๋ฌํ๋ฉฐ, ๊ฒฐ๊ตญ ๊ฒ์ ์์ง ์ต์ ํ(SEO)์ ์น ์ ๊ทผ์ฑ์ ํฅ์์ํค๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค. ์๋ฅผ ๋ค์ด, HTML ์์ ์ ๋ชฉ, ๋ด์ฉ, ํธํฐ๋ก ๋ด์ฉ์ด ๋๋ ์ ธ ์์์๋ ๋ถ๊ตฌํ๊ณ ๋ชจ๋ ์์๋ฅผ ํ๊ทธ๋ก ์์ด๋ค๋ฉด ์ฝ๋๋ฅผ ๋ณด๋ ๊ฐ๋ฐ์ ์ ์ฅ์์ ์น ํ์ด์ง ๊ตฌ์กฐ์ ์๋ฏธ๊ฐ ์ ํํ๊ฒ ๋ณด์ด์ง ์์ ๋ฟ ์๋๋ผ, ์ฐ๋ฆฌ๊ฐ ์ ์จ ๋ง๋ ์น ์ฌ์ดํธ๊ฐ ๊ฒ์ ์์ง์ ์ต์ ํ๋์ง ์์ ๊ฒ์ ๋๋ค. ์ ๋ชฉ ๋ด์ฉ ๋ฐ๋ผ์, HTML์ ๊ฐ ์์ญ์ ๊ฐ ์์ญ์ ์๋ฏธ์ ๋ง๊ฒ ์์๋ ์น ํ์ด์ง์ ์ ๋ชฉ, ์์๋ก๋ ์น์ ์ ์ ์, ์์๋ก๋ .. 2023. 5. 9. HTTP ๋ฉ์ธ์ง ๊ตฌ์กฐ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์. ๐ฉ๐ป๐ป HTTP ๋ฉ์ธ์ง ๊ตฌ์กฐ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์. ๐๐ปโ๏ธ ์์ฝํ์๋ฉด , HTTP ๋ฉ์์ง๋ ํฌ๊ฒ start line, HTTP header, empty line, body๋ก ๋๋ฉ๋๋ค. ๋ฉ์์ง์ ๊ตฌ์กฐ 1. start-line ์์ฒญ์ด๋ ์๋ต์ ์ํ๋ฅผ ๋ํ๋ด๋ฉฐ ํญ์ ์ฒซ ๋ฒ์งธ ์ค์ ์์นํฉ๋๋ค. ์ด๋ค ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋์ง, ์ด๋ค HTTP ๋ฉ์๋์ธ์ง, ์ํ ์ฝ๋๋ ๋ฌด์์ธ์ง ๋ฑ์ ๋ํ๋ ๋๋ค. 2. HTTP header ์์ฒญ์ ์ง์ ํ๊ฑฐ๋, ๋ฉ์์ง์ ํฌํจ๋ ๋ณธ๋ฌธ์ ์ค๋ช ํ๋ ํค๋์ ์งํฉ์ ๋๋ค. 3. empty line ํค๋์ ๋ณธ๋ฌธ์ ๊ตฌ๋ถํ๋ ๋น ์ค์ด ์์ต๋๋ค. 4. body ์์ฒญ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ ์๋ต๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ ๋๋ ๋ฌธ์๋ฅผ ํฌํจํฉ๋๋ค. ์์ฒญ๊ณผ ์๋ต์ ์ ํ์ ๋ฐ๋ผ ์ ํ์ ์ผ๋ก ์ฌ์ฉ๋๋๋ฐ์. GET, DELETE,.. 2023. 4. 10. GET ๋ฉ์๋์ POST ๋ฉ์๋์ ์ฐจ์ด์ ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์. ๐ฉ๐ป๐ป GET ๋ฉ์๋์ POST ๋ฉ์๋์ ์ฐจ์ด์ ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์. ๐๐ปโ๏ธ ์์ฝํ์๋ฉด , GET์ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ์ธ ์ ์๋ ๋ฉ์๋๊ณ , POST๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋ ์ ๋๋ค. GET๊ณผ POST ์์ฒญ์๋ ๊ฐ๊ฐ ์ด๋ป๊ฒ ์ ๋ณด๋ฅผ ๋ด์ ์ ์๋์? GET์ ๋จ์ํ ์กฐํ๋ฅผ ์์ฒญํ๊ธฐ ๋๋ฌธ์ body๋ฅผ ๋ณด๋ด์ง ์๋ ๊ฒ์ด ๋ณดํธ์ ์ด๊ธฐ์ query parameter๋ path parameter๋ฅผ ์๋๋ค. POST ์์ฒญ์์๋ ์ถ๊ฐํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ HTTP body์ ๋ด์ ์ ๋ฌํฉ๋๋ค. ๊ฐ ์์ฒญ์ ํน์ง์ ์ด๋ป๊ฒ ๋๋์? GET์ ์์ฒญ์ ๋ฌดํ๋๋ก ๋ณด๋ด๋ ๊ฐ์ ์์ฒญ์ ํ์ ๋ฐ์ ์ ์๋ ๋ฉฑ๋ฑ์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ฐ๋ฉด POST๋ ์์ฒญ์ ๋ฌดํ๋๋ก ๋ณด๋ด๋ฉด ์ต์ด ์๋ต๊ณผ๋ ๋ค๋ฅธ ํ์ ์ ๋ฐ๊ฒ.. 2023. 4. 10. useEffect์ dependency array์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์. ๐ฉ๐ป๐ป useEffect์ dependency array์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์. ๐๐ปโ๏ธ ์์ฝํ์๋ฉด , useEffect๋, ์ปดํฌ๋ํธ ๋ด์์ ์ฌ์ด๋ ์ดํํธ๋ฅผ ์คํํ ์ ์๊ฒ ํ๋ ํ ์ ๋๋ค. useEffect๋ ์ฒซ ๋ฒ์งธ ์ธ์๋ก ์ฝ๋ฐฑํจ์๋ฅผ ๋ฐ๊ณ , ๋ ๋ฒ์งธ ์ธ์๋ก ๋ฐฐ์ด์ ๋ฐ๋๋ฐ, ์ด ๋ฐฐ์ด์ dependency array ๋ผ๊ณ ํฉ๋๋ค. dependency array๋ ๋ฌด์์ธ๊ฐ์? ์ข ์์ฑ ๋ฐฐ์ด์ด๋ผ ๋ถ๋ฅด๋ ์ด์ ๋ useEffect์ ์คํ์ด ํ๋ฉด์ ์ฒ์ ๋ ๋๋ง ๋ ๋ ๊ทธ๋ฆฌ๊ณ ์ข ์์ฑ ๋ฐฐ์ด์ value ๊ฐ์ด ๋ฐ๋ ๋๋ง๋ค ์คํ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ง์ฝ ๋น ๋ฐฐ์ด์ด ์ ๋ฌ๋๋ค๋ฉด ์ฒซ ๋ ๋๋ง๋ ๋๋ง ์คํ๋ฉ๋๋ค. useEffect์ dependency array๋ฅผ ์ฃผ์ง ์์ผ๋ฉด, ์ํ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง์ด ๋ฉ๋๋ค. .. 2023. 4. 10. React ์ปดํฌ๋ํธ์ key ์์ฑ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์. ๐ฉ๐ป๐ป React ์ปดํฌ๋ํธ์ key ์์ฑ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์. React์์ ๋ฆฌ์คํธ ํํ๋ก ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋ง ํ ๋, key ๊ฐ์ ๋ฃ์ด๋ฌ๋ผ๋ console ์๋ฌ๊ฐ ์์ฃผ ๋จ๋๋ฐ์. ์ด๋ ์ด key ๊ฐ์ด ์ด๋ ํ ์ญํ ์ ํ ๊น์? ๐๐ปโ๏ธ ์์ฝํ์๋ฉด , key๋ React๊ฐ ์ด๋ค ํญ๋ชฉ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ถ๊ฐํ ์ง ๋๋ ์ญ์ ํ ์ง ๊ตฌ๋ณํ๋๋ก ๋๋ ์ญํ ์ ํฉ๋๋ค. key๋ ์๋ฆฌ๋จผํธ์ ์์ ์ ์ธ ๊ณ ์ ์ฑ์ ๋ถ์ฌํ๊ธฐ ์ํด ๋ฐฐ์ด ๋ด๋ถ์ ์๋ฆฌ๋จผํธ์ ์ง์ ํด์ผ ํฉ๋๋ค. key ์์ฑ์ ๊ฐ์ ์ปดํฌ๋ํธ๋ฅผ ์ฌ๋ฌ ๋ฒ ๋ ๋๋งํ ๋, ๋ค๋ฅธ ์ปดํฌ๋ํธ์์ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์์ฑ์ธ๋ฐ์. ์๋ฅผ ๋ค์ด, 10๊ฐ์ ํธ์ ์ค ํ๋์ ํธ์๋ง ๋ณ๊ฒฝ๋์์ ๋ ํด๋น ํธ์๋ง ์ฌ๋ ๋๋งํ๊ณ , ๋ค๋ฅธ 9๊ฐ์ ํธ์์ ๊ทธ๋๋ก ๋ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ key ์์ฑ์ ํ์ฉํ.. 2023. 4. 10. Promise์ ๊ธฐ๋ฅ๊ณผ ํ์ํ ์ด์ ์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์. ๐ฉ๐ป๐ป Promise์ ๊ธฐ๋ฅ๊ณผ ํ์ํ ์ด์ ์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์. ๐๐ปโ๏ธ ํ๋ก๋ฏธ์ค๋, ์๋ฐ์คํฌ๋ฆฝํธ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ์ฌ์ฉ๋๋ ๊ฐ์ฒด์ ๋๋ค. ์ฌ๊ธฐ์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋, ํน์ ์ฝ๋์ ์คํ์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ค์ ์ฝ๋๋ฅผ ๋จผ์ ์ํํ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ํน์ฑ์ ๋งํฉ๋๋ค. ํ๋ก๋ฏธ์ค๊ฐ ํ์ํ ์ด์ ๋ ํ๋ก๋ฏธ์ค๋ ์ฃผ๋ก ์๋ฒ์์ ๋ฐ์์จ ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ํ์ํ ๋ ์ฌ์ฉํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํํ ๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ ๋ฐ์์ค๊ธฐ ์ํด API๋ฅผ ํ์ฉํ๋๋ฐ, API๊ฐ ์คํ๋์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ธฐ๋ ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ค ๋ฐ์์จ ๊ฒ์ฒ๋ผ ํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ค๊ณ ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ๋น ํ๋ฉด์ด ๋น๋๋ค. ์ด๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด ํ๋ก๋ฏธ์ค์ ๋๋ค. ์ฆ, ์ฝ๊ฒ ๋งํ์๋ฉด ํ๋ก๋ฏธ์ค๋ ์ต์ข ๊ฒฐ.. 2023. 4. 10. ์์ํจ์๋ ๋ฌด์์ธ๊ฐ์? ๋ถ๋ณ์ฑ๊ณผ ์ฌ์ด๋ ์ดํํธ์ ์ฐ๊ฒฐํ์ฌ ์ค๋ช ํด ์ฃผ์ธ์. ๐ฉ๐ป๐ป ์์ํจ์๋ ๋ฌด์์ธ๊ฐ์? ๋ถ๋ณ์ฑ๊ณผ ์ฌ์ด๋ ์ดํํธ์ ์ฐ๊ฒฐํ์ฌ ์ค๋ช ํด ์ฃผ์ธ์. ๐๐ปโ๏ธ ์์ฝํ์๋ฉด , ์์ํจ์๋ ์ฌ์ด๋ ์ดํํธ๊ฐ ์๋ ํจ์, ์ฆ ํจ์์ ์คํ์ด ์ธ๋ถ์ ์ํฅ์ ๋ผ์น์ง ์๋ ํจ์๋ฅผ ๋ปํ๊ณ , ์ ๋ ฅ์ผ๋ก ์ ๋ฌ๋ ๊ฐ์ ์์ ํ์ง ์๋ ๋ถ๋ณ์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ์์ํจ์๋ ์ด๋ ํ ์ ๋ฌ์ธ์๊ฐ ์ฃผ์ด์ง๋๋ผ๋ ํญ์ ๋๊ฐ์ ๊ฐ์ด ๋ฆฌํด๋จ์ ๋ณด์ฅํฉ๋๋ค. ์ฌ์ด๋ ์ดํํธ๋? ํจ์์ ์ ๋ ฅ ์ธ์๋ ํจ์์ ๊ฒฐ๊ณผ์ ์ํฅ์ ๋ฏธ์น๋ ์์ธ ์ ๋๋ค. ๋ํ์ ์ผ๋ก ๋คํธ์ํฌ ์์ฒญ, API ํธ์ถ์ด Side Effect์ ๋๋ค. ์์ํจ์ ๊ฐ๋ ์ด ์ค์ํ ์ด์ ๋? ์ฌ์ด๋ ์ดํํธ๋ฅผ ์ค์ด๊ณ , ๋ชจ๋ํ ์์ค์ ๋์ด๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ํน์ง, ์ฆ ์์ํจ์๋ ํ๊ฐ ์์ ์ด ๋ฌด๊ดํ๋ค๋ ํน์ง์ผ๋ก ์ธํด ํจ์จ์ ์ธ ๋ก์ง์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ์ .. 2023. 4. 10. SOP์ CORS์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์. ๐ฉ๐ป๐ป Same-Origin Policy์ CORS์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์. ๐๐ปโ๏ธ ์์ฝํ์๋ฉด , SOP๋ '๋์ผ ์ถ์ฒ ์ ์ฑ '์ผ๋ก, ๊ฐ์ ์ถ์ฒ์ ๋ฆฌ์์ค๋ง ๊ณต์ ๊ฐ ๊ฐ๋ฅํ๋ค๋ ์ ์ฑ ์ด๋ฉฐ, CORS๋ '๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ ' ์ ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ SOP์ ์ํด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ ์ถ์ฒ์ ๋ฆฌ์์ค ๊ณต์ ๋ฅผ ๋ง์ง๋ง, CORS ์ค์ ์ ํตํด ์ ๊ทผ ๊ถํ์ ์ป์ ์ ์์ต๋๋ค. SOP(Same-Origin Policy) SOP์ ์ถ์ฒ๋ ํ๋กํ ์ฝ, ํธ์คํธ, ํฌํธ์ ์กฐํฉ์ผ๋ก ๋์ด ์๋๋ฐ, ์ด ์ค ํ๋๋ผ๋ ๋ค๋ฅด๋ฉด ๋์ผํ ์ถ์ฒ๋ก ๋ณด์ง ์์ต๋๋ค. ๋๋ถ์ ์ ์ฌ์ ์ผ๋ก ํด๋ก์ธ ์ ์๋ ๋ฌธ์๋ฅผ ๋ถ๋ฆฌํจ์ผ๋ก์จ ๊ณต๊ฒฉ๋ฐ์ ์ ์๋ ๊ฒฝ๋ก๋ฅผ ์ค์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ํดํน ๋ฑ์ ์ํ์ผ๋ก๋ถํฐ ์์ ํด์ง ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๋ธ๋ผ์ฐ์ ๋ SOP ์ ์ฑ ์ ์ฌ์ฉํ๊ณ .. 2023. 4. 5. ์ด์ 1 2 ๋ค์