Open API , Rest API ๋ฑ๋ฑ ์ฌ๊ธฐ์ ๊ธฐ์ API ์ด์ผ๊ธฐ ํ๋๋ฐ ๋ญ์๋ฆฐ์ง ์ ๋ชจ๋ฅด๊ฒ ์ฃ ? ์ ๋ ๊ฐ์ด ์ ๋ฆฌํด๋ด
์๋ค API ๋? Application Programming Interface ํ ํ๋ก๊ทธ๋จ์์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ๋ฐฉ๋ฒ ์ฝ๊ฒ ๋งํด์, ๋ฉ๋ดํ์ด๋ค! ์ฐ๋ฆฌ๊ฐ ์๋น์์ ์ฃผ๋ฌธ์ ํ๋ค๊ณ ๊ฐ์ ํด๋ณด์ฃ . ์ค๊ตญ์ง๊ฐ์ ์นํจ ๋จน๊ณ ์ถ๋ค๊ณ ์นํจ์ ์ํฌ์๋ ์์ฃ ? ์ฐ๋ฆฌ์ ์ ํ๊ถ์ ํ์ ์์ผ์ฃผ๋ '๋ฉ๋ดํ'์ด ํ์ํ๊ฒ ์ฃ . ์ฃผ์ธ์ด ๋ฉ๋ดํ์ ๋ง๋ค๋ฉด, ๊ทธ ์์์ ์ฐ๋ฆฌ๊ฐ ์์์ ๊ณ ๋ฅด๊ฒ ๋์ฃ . ๋ฉ๋ดํ์ด ์๋น์ API ๊ฐ ๋๋ ๊ฒ๋๋ค. ์๋น๊ณผ ์๋์ด ์์์ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉ๋๋๊น์ ํ๋ก๊ทธ๋จ ์ธก๋ฉด์์ ์๊ฐํด๋ณด์ฃ . ์ํ๋ฅผ ๋ณด์ฌ์ฃผ๋ ํ๋ก๊ทธ๋จ์ด ์์ต๋๋ค ์ฌ๊ธฐ์ ๋ด๊ฐ ๋ง์๋๋ก '์๋ํ๋'์ ์์ฒญํ๋ฉด ์ด๋ป๊ฒ..
์ ์ฒด ๊ธ
๐ฉ๐ป java, mysql, android, php, javascript๋ฅผ ๋ค๋ฃน๋๋คInput box ์ข
๋ฅ โ ์ด๊ฑฐ ๋ง๊ณ ๋ ๋ค์ํ ์ข
๋ฅ์ ์ธํ ๋ฐ์ค๊ฐ ๋ง์ผ๋ ํ์ํ ๋ ์ฐพ์์ฐ๊ธฐ ์ ๋ญ๊ฐ ์
๋ ฅํ๋ฉด, ์ฝ๋๊ฐ ์คํ๋๋๋ก ์ด๋ด๋ onChange ์๋๋ฉด onInput ์ด๋ฒคํธํธ๋ค๋ฌ๋ฅผ ๋ถ์ฐฉํ๋ฉด ๋ฉ๋๋ค {์คํํ ์ฝ๋}}/> ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ ๋ง๋ค onMouseOver={ } ์ด๊ฑด ์ด ์์์ ๋ง์ฐ์ค๋ฅผ ๋์ ๋ ์์ ์ฝ๋๋ฅผ ์คํํด์ค onScroll={ } ์ด๊ฑด ์ด ์์๋ฅผ ์คํฌ๋กค ํ์๋ ์์ ์ฝ๋๋ฅผ ์คํํด์ค ์
๋ ฅ๊ฐ์ ๊ฐ์ ธ์ค๋ ๋ฒ {console.log(e.target.value)}}/> e๋ผ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ๊ฐํ๊ณ , e.target.value๋ฅผ ์ฐ๋ฉด ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์์ ์ฐธ๊ณ ๋ก e๋ง๊ณ ์๋ช
์์ ๋กญ๊ฒ ํด๋๋จ e.target => ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ html e.preventDefault()=> ์ด๋ฒค..
SSR๊ณผ CSR์ด๋? SSR(Server Side Rendering) ์๋ฒ์์ ์นํ์ด์ง๋ฅผ ๋ ๋๋งํฉ๋๋ค CSR(Client Side Rendering) ํด๋ผ์ด์ธํธ์์ ์นํ์ด์ง๋ฅผ ๋ ๋๋งํฉ๋๋ค SSR๊ณผ CSR ์ฐจ์ด์ SSR๊ณผ CSR์ ์ฐจ์ด์ ์ ํ์ด์ง๊ฐ ๋ ๋๋ง๋๋ ์์น์
๋๋ค. ์ด ์ค CSR์ ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ)์์ ํ์ด์ง๋ฅผ ๋ ๋๋งํฉ๋๋ค. CSR์ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ๊ฒฝ๋ก๋ฅผ ์์ฒญํ ๋๋ง๋ค ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ์ง ์๊ณ , ๋์ ์ผ๋ก ๋ผ์ฐํ
์ ๊ด๋ฆฌํฉ๋๋ค SSR ์ฌ์ฉ SEO(๊ฒ
์์์ง์ต์ ํ)๊ฐ ์ฐ์ ์์์ธ ๊ฒฝ์ฐ ์นํ์ด์ง๊ฐ ์ฌ์ฉ์์ ์ํธ์์ฉ์ด ์ ์๊ฒฝ์ฐ ์นํ์ด์ง ์ฒซํ๋ฉด ๋ ๋๋ง์ด ๋น ๋ฅด๊ฒ ํ์ํ ๊ฒฝ์ฐ (๋จ์ผํ์ผ, ์ฉ๋์ด ์์ SSR์ด ์ ํฉ) ์์ :๋ค์ด๋ฒ ๋ธ๋ก๊ทธ, ๋ด์ํ์์ฆ CSR ์ฌ์ฉ SEO(๊ฒ
์์์ง์ต์ ํ)๊ฐ ์ฐ์ ์์๊ฐ ์๋ ๊ฒฝ์ฐ ์นํ..
์์ ๋ฌด์ ์ฌ ํ์ด์ง์ฒ๋ผ ์น ํ์ด์ง์ ์ผ๋ถ๋ถ๋ง ๋ฐ๊พธ๊ณ ์ถ๊ฐ๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น? ๊ทธ๋ด๋ AJAX ๋ฅผ ์ฌ์ฉํ๋ค 1. AJAX๋? AJAX๋ ์นํ์ด์ง์ ํ์ํ ๋ถ๋ถ์ ํ์ํ ๋ฐ์ดํฐ๋ง ๋น๋๊ธฐ์ ์ผ๋ก ๋ฐ์์ ํ๋ฉด์ ๊ทธ๋ ค๋ผ ์ ์๋ค๋ ๊ฒ์
๋๋ค ๊ตฌ๊ธ์ ์ด์ด๋ณด์. ๊ตฌ๊ธ์์ ๋ฑ ํ๋ถ๋ถ ๋งํผ์ html ์ ์์ฑ๋๋๋ก ์ ์ ๊ฐ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ, ์ ์ ์ ์๊ตฌ์ ๋ฐ๋ผ ๋ฐ์ํ๋ฉฐ ๋ณํํ๋ ๋ถ๋ถ์ด ์กด์ฌํ๋ค. ๊ทธ ๋ถ๋ถ์ด ๋ฐ๋ก ๊ฒ์์ฐฝ์ด๋ค. ๊ฒ์์ฐฝ์ ํ ๊ธ์๋ฅผ ์
๋ ฅํ ๋๋ง๋ค , ํด๋น๊ธ์๋ก ์์ํ๋ ๋จ์ด๋ค์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์, ์๋ ์ถ์ฒ ๊ฒ์์ด๋ก ๋ณด์ฌ์ฃผ๊ฒ ๋๋ค. ๋ค์๋งํด, ๊ฒ์์ฐฝ์ ํ์ํ ๋ฐ์ดํฐ๋ง ๋น ๋๊ธฐ์ ์ผ๋ก ๋ฐ์์ ๋ ๋๋ง ๋๋ฉฐ,์ฌ๊ธฐ์ ajax ๊ฐ ์ฌ์ฉ๋๋ค. ๋๋ค๋ฅธ ์์๋ก๋ ์ํฐ๋๊ฐ ์๋ค ์ํฐ๋์ ๋ค์ด๊ฐ๋ณด๋ฉด ์ฌ์ฉ์๊ฐ ๋งจ ๋ฐ๊น์ง ์คํฌ๋กคํ๋๋ผ..
HyperText Transfer Protocol ์ปจํ
์ธ ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด์๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ๊ณตํต์ ์ผ๋ก ์ดํดํ ์ ์๋ ๋ฉ์ธ์ง์ธ http ๋ฅผ ์จ์ผ ํ๋ค. http๋ request ์ response message ๋ก ๊ตฌ๋ถ๋์ด ์๋ค request ์ response message๋ ๋ค์๊ณผ ๊ฐ์ ์ ์ฌํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋๋ค 1. start line 2. http hesders 3. empty line 4. body ๊ตฌ๊ธ์ 'http request format' ์ด๋ผ๊ณ ์ณ๋ณด์๋ค http request ๋ start line, headers, body ๋ผ๋ ์ธ ๋ถ๋ถ์ผ๋ก ๋๋๋ค start line :GET ์์ฒญ์ ์น ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ๋ ์ฐ๋ ์์ฒญ์ด๋ค ๋ฐ๋๋ก, ์น์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ๋๋ POST ์์ฒญ์ ..
์์ state๋ฅผ ์ฐ๋ ค๊ณ ํ๋๋ฐ ๋ฌธ์ ๊ฐ ์์ function App (){ let [๊ธ์ ๋ชฉ, ๊ธ์ ๋ชฉ๋ณ๊ฒฝ] = useState(['๋จ์์ฝํธ ์ถ์ฒ', '๊ฐ๋จ ์ฐ๋๋ง์ง', 'ํ์ด์ฌ๋
ํ']); return ( ) } function Modal(){ return ( { ๊ธ์ ๋ชฉ[0] } ๋ ์ง ์์ธ๋ด์ฉ ) } ํ์ง๋ง, '๊ธ์ ๋ชฉ'์ด๋ผ๋ ๋ณ์๊ฐ define ๋์ง ์์๋ค๊ณ ์๋ฌ๊ฐ ๋น๋๋ค ์๋๋ฉด ๊ธ์ ๋ชฉ์ด๋ผ๋ state ๋ณ์๋ function App()์ ์์ง function Modal() ์์ ์์ง ์์ผ๋๊น์ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ค๋ฅธํจ์์ ์๋ ๋ณ์๋ฅผ ๋ง์๋๋ก ๊ฐ์ ธ๋ค ์ธ ์ ์์ต๋๋ค ๋ค๋ฅธ ํจ์์ ๋ณ์๋ฅผ ๊ฐ์ ธ๋ค ์ฐ๋ ค๋ฉด? ์ปดํฌ๋ํธ 2๊ฐ๊ฐ ๋ถ๋ชจ/์์ ๊ด๊ณ์ธ ๊ฒฝ์ฐ์ ๊ฐ๋ฅํฉ๋๋ค. (ํ ์ปดํฌ๋ํธ๊ฐ ๋ค๋ฅธ ์ปดํฌ๋ํธ ์์ ์๋ ๊ฒฝ์ฐ) ๋ถ๋ชจ ..
๋ชจ๋ array ์๋ฃ ์ค๋ฅธ์ชฝ์๋ map()์ ๋ถ์ผ ์ ์์ต๋๋ค map ํจ์ ์ฐ๋๋ฒ ๊ธฐ๋ฅ1. var ์ด๋ ์ด = [2,3,4]; ์ด๋ ์ด.map(function(){ // ์ด ์์ ์ฝ๋๋ฅผ ์ด๋ ์ด์์ ๊ฐฏ์๋งํผ ์คํํด์ฃผ์ธ์~ console.log(1) }); ์ด๋ ์ด์ ๋ค์ด์๋ ์์ ๊ฐฏ์๋งํผ {}์ ์ฝ๋๋ฅผ ๋ฐ๋ณต์คํํด์ค๋ค ์ ๋ฌ๋ฉด ์ง์ง๋ก console.log(1) 3๋ฒ ์คํ๋จ ๊ธฐ๋ฅ2. var ์ด๋ ์ด = [2,3,4]; ์ด๋ ์ด.map(function(a){ // ์ด๋ ์ด ์์ ์๋ ์์๋ค์ ํ๋์ฉ ์ถ๋ ฅํด์ฃผ์ธ์~ console.log(a) }); ์ฝ๋ฐฑํจ์ ์์ ํ๋ผ๋ฏธํฐ(a)๋ฅผ ์๋ช
ํ๋ฉด, ๊ทธ ํ๋ผ๋ฏธํฐ๋ ์ด๋ ์ด์ ์์๋ค์ ํ๋์ฉ ์ถ๋ ฅํด์ค๋๋ค ์ ๋ฌ๋ฉด ์ง์ง๋ก 2, 3, 4๊ฐ ์ฝ์์ฐฝ์ ์ถ๋ ฅ๋จ ๊ธฐ๋ฅ3. var ์ด๋ ์ด = [2,3,4]..
๋ฆฌ๋์ ์ธ UI ๊ฐ ๋ญ๋๋ฉด, ์ ์ ๊ฐ ์กฐ์์ ํํ๊ฐ ๋ฐ๋๋ ๋ชจ๋ฌ์ฐฝ, ํญ, ์๋ธ๋ฉ๋ด, ํดํ, ๊ฒฝ๊ณ ๋ฌธ ๋ฑ ๊ทธ๋ฐ UI๋ฅผ ์๋ฏธํฉ๋๋ค. ๋์ ์ธ UI ๋ง๋๋ ๋ฐฉ๋ฒ 1. html, css๋ก ๋ฏธ๋ฆฌ UI ๋์์ธ์ ๋ค ํด๋๊ณ 2. UI์ ํ์ฌ์ํ๋ฅผ state ๋ก ์ ์ฅํด๋๊ณ 3. state์ ๋ฐ๋ผ์ UI ๊ฐ ์ด๋ป๊ฒ ๋ณด์ผ์ง ์กฐ๊ฑด๋ฌธ ๋ฑ์ผ๋ก ์์ฑ 1๋ฒ์ ํ์ผ๋ 2๋ฒ๋ถํฐ ํ ๊ฑฐ์ step 2. UI์ ํ์ฌ์ํ๋ฅผ state๋ก ์ ์ฅ state ํ๋ ๋ง๋ค๊ณ , ๊ฑฐ๊ธฐ์ ํ์ฌ UI์ ์ํ์ ๋ณด๋ฅผ ์ ์ฅํด๋๋ผ๋ ์๋ฆฌ let [modal, setModal] = useState(false); useState ์์ ๋ฌด์จ ์๋ฃ๋ฅผ ๋ฃ์ด์ผ ๋๋๋ฉด ์ ๋ง ๋ง์๋๋ก ํ๋ฉด๋จ ๋ชจ๋ฌ์ฐฝ์ ์ด๋ฆผ or ๋ซํ ์ด ๋๊ฐ ์ํ๋ฐ์ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฑฐ 2์ข
๋ฅ๋ง ํํํ ์ ์๋ ์๋ฃํ์ด๋ฉด..