์๋ฒ์๊ฒ ๋ฐ์ดํฐ ์์ฒญํ ๋ ์ ์ ๊ฐ ๊ทธ๋ฅ ๋ฐ์ดํฐ ๋ฌ๋ผ๊ณ ํ๋ฉด ์๋ฒ๊ฐ ๋ณด๋ด์ฃผ์ง ์์ต๋๋ค. ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ ๋๋ ์ ํํ ๊ท๊ฒฉ์ ๋ง์ถฐ์ ์์ฒญํด์ผ ํฉ๋๋ค 1. ์ด๋ค ๋ฐ์ดํฐ์ธ์ง (URL ํ์์ผ๋ก) 2. ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ์์ฒญํ ์ง (GET or POST) ์ ๊ธฐ์ฌํด์ผ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด์ค๋๋ค. ๋ณดํต, ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ๋๋ GET ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ๋๋ POST ๋ฅผ ์๋๋ค. AJAX ๋? ์๋ฒ์ GET,POST ์์ฒญ์ ํ ๋ ์๋ก๊ณ ์นจ์์ด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๊ฒ ๋์์ฃผ๋ ๊ฐ๋จํ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฅ์ ๋งํฉ๋๋ค. (get ์์ฒญ์ ๋ ๋ฆฌ๊ณ ์ถ์ผ๋ฉด ์ฃผ์์ฐฝ์, post์์ฒญ์ ๋ ๋ฆฌ๊ณ ์ถ์ผ๋ฉด form ํ๊ทธ๋ฅผ ์ด์ฉํ๋ฉด ๋์ง๋ง, ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ก๊ณ ์นจ๋๋ค๋ ๋จ์ ์ด ์กด์ฌ) ๊ทธ๋์ AJAX๋ฅผ ์์ฃผ ์๋๋ค. AJAX๋ก GET,POST ์์ฒญ์ ํ๋..
์ ์ฒด ๊ธ
๐ฉ๐ป java, mysql, android, php, javascript๋ฅผ ๋ค๋ฃน๋๋คuseEffect(()=>{์คํํ ์ฝ๋},[count]) useEffect ์ ์ฒซ์งธ ํ๋ผ๋ฏธํฐ๋ก๋ ์คํํ ์ฝ๋๋ฅผ ๋ฃ์ด์ฃผ๊ณ , ๋์งธ ํ๋ผ๋ฏธํฐ๋ก๋ [](๋ฐฐ์ด)์ ๋ฃ์ ์ ์๋๋ฐ, []์์ ๋ณ์๋ state ๊ฐ์ ๊ฒ๋ค์ ๋ฃ์ ์ ์์ต๋๋ค ์ด๋ฐ ๊ฒฝ์ฐ์๋ [] ์ ์๋ ๋ณ์๋ state ๊ฐ ๋ณํ ๋๋ง, useEffect ์์ ์ฝ๋๋ฅผ ์คํํด์ค๋๋ค ์์ ์ฝ๋๋ count ๋ผ๋ ๋ณ์๊ฐ ๋ณํ ๋๋ง, useEffect ์์ ์ฝ๋๋ฅผ ์คํ๋๊ฒ ๊ตฐ์. useEffect(()=>{์คํํ ์ฝ๋},[]) ๋ง์ฝ๋๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ ๋น ๋ฐฐ์ด์ ๋ฃ์ด์ค๋ค๋ฉด, ์ฒ์ ๋ ๋๋ง ์ 1ํ ์คํํ๊ณ ์์ ์คํํด์ฃผ์ง ์์ต๋๋ค. ์ฒ์์ ๋ฑ ํ๋ฒ๋ง ์คํํด์ค๋๋ค clean up function useEffect๋ฅผ ๋์ํ๊ธฐ ์ ์ ํน์ ์ฝ๋๋ฅผ ์คํํ๊ณ ์ถ์ผ๋ฉด ret..
์ปดํฌ๋ํธ๊ฐ ์์ฑ๋๊ฑฐ๋ ์
๋ฐ์ดํธ๋๊ฑฐ๋ ์ญ์ ๋ ๋, ์ปดํฌ๋ํธ์ ์ด๋ค ํจ๊ณผ๋ฅผ ์ฃผ๋ ํจ์ useEffect()๋ฅผ ๋ฐฐ์๋ณผ ๊ฑฐ์์ use์ด์ฉ๊ตฌ๋ก ์์ํ๊ธฐ ๋๋ฌธ์ ์ด๊ฑธ lifecycle hook ์ด๋ผ๊ณ ๋ ๋ถ๋ฆ
๋๋ค ์์ฆ React์์ Lifecycle hook ์ฐ๋ ๋ฒ import {useState, useEffect} from 'react'; function Detail(){ useEffect(()=>{ //์ฌ๊ธฐ์ ์ ์ฝ๋๋ ์ปดํฌ๋ํธ ๋ก๋ & ์
๋ฐ์ดํธ ๋ง๋ค ์คํ๋จ console.log('์๋
') }); return (์๋ต) } ์๋จ์ useEffect import ํด์ค๊ณ , useEffect ์ ์ฝ๋ฐฑํจ์(ํ๋ผ๋ฏธํฐ๋ฅผ ํจ์๋ก ๋ฐ๋๊ฒ)๋ฅผ ์ ์ด์ฃผ๋ฉด, {} ์์ ์๋ ํ ๋๋ฅผ ์ปดํฌ๋ํธ ๋ก๋(์์ฑ) ๋๋ ์
๋ฐ์ดํธ์ ์คํํฉ๋๋ค useE..
์ ๋ฒ์ app.js (๋ฉ์ธํ์ด์ง) ํ์ผ์ ๋ํ
์ผ ์ปดํฌ๋ํธ๋ฅผ ํ๋ ๋ง๋ค์๋๋ฐ์ ์ฌ๊ธฐ์๋ ์ํ์ ๋ณด๊ฐ ์์ง ์ฑ์์ง์ง ์์ ์ํ์
๋๋ค. ๊ทธ๋์ props ๋ฅผ ์ฌ์ฉํด์ shoes ์ ๋ณด๋ค์ ์
๋ ฅํด๋ณผ๊ฒ์ function Detail(props){ return( {props.shoes[0].title} {props.shoes[0].content} {props.shoes[0].price}์ ์ฃผ๋ฌธํ๊ธฐ ) } export default Detail; ์ด๋ ๊ฒ ํ๋ฉด ํ์ฌ ์์ธํ์ด์ง์๋ shoes ๋ฐ์ดํฐ์ 0๋ฒ์งธ ์ ๋ณด๋ง ๋ณด์ฌ์ง๋๋ค 3๊ฐ์ ์ํ์ด ๋ชจ๋ ๋ณด์ด๋๋ก ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น์? ๋ผ์ฐํฐ๋ฅผ 3๊ฐ ๋ง๋ค๋ฉด ๋๊ฒ ์ฃ ? (์ฌ๋์ ๊ธฐํธ๋ ๋ง๋๋ก ์ฌ์ฉ๊ฐ๋ฅํ๋ฐ ๋จ์ด๊ฐ ๋์ด์ฐ๊ธฐ์ฉ์ผ๋ก ๋ง์ด ์ฌ์ฉ) ์ด๋ ๊ฒ ํ๋ฉด 3๊ฐ ํ์ด์ง ์์ฑ! ํ์ง๋ง, ๋ง์ฝ..
์ค๋์ ์ํ๋ชฉ๋ก์ ์ปดํฌ๋ํธ๋ก ๋ง๋ค์ด๋ณผ๊ฑฐ์์. ๊ทธ๋ฆฌ๊ณ ์์ฐจ์ ์ผ๋ก ์ซ์๊ฐ ์ฆ๊ฐํ๋ฉด์, ์ํ๋ชฉ๋ก์ด ๋์ด๋๋ ํํ์ด๋ map ํจ์๋ก ๋ฌถ์ด์ ๊ฐํธํ๊ฒ ๋ง๋ค์ด ๋ณผ๊ฒ๋๋ค function App() { let [shoes]= useState(data) return ( //์๋ต ); } export default App; ํ์ฌ Card ๋ผ๋ ์ปดํฌ๋ํธ 3๊ฐ๋ฅผ ๋ง๋ ์ํ์
๋๋ค. ์์ง ํ
๋น์ด์๊ธฐ ๋๋ฌธ์ data ๋ฐฐ์ด์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ ์ฃผ์ด์ผ ํด์ let data = [ { id : 0, title : "White and Black", content : "Born in France", price : 120000 }, { id : 1, title : "Red Knit", content : "Born in Seoul", pric..
์์ง์ ๋๋ ์ด๋ณด, ๋๋ ์ด๋ณด์ง๋ง ์ธ์ ๊ฐ์ ๊ฐ์ ํ ํ๋ก์ ํธ๋ฅผ ํ ์ผ์ด ์๊ธธ๊ฑฐ์ ์ธ์ ๊ฐ์!! ๊ทธ๋์ ๋ฏธ๋๋ฅผ ๋๋นํ๋ ์ข์ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํด์ ํ์
์ ํ์์ ์ธ branch๋ฅผ ๋ง๋ค๊ณ , merge ๋ฅผ ํด๋ณด๊ฒ ์. ์ฝ๊ฒ ๋งํ์๋ฉด ํ์
ํ ๋, ๊ฐ์๊ธฐ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ผ์ด ์๊ฒ ์ ธ? ๊ทธ๋ด๋ ๋ง๋ค ์๋ณธ ํ์ผ์ ์์ ๋๊ธฐ ๋ณด๋ค๋ ์๋ก์ด ๊ฐ๋ฅ์ผ๋ก ํ์ผ์ ํ๋ ๋ง๋ค๊ณ , ์ฌ๋ฌ๋ฒ ์ํ์ฐฉ์ค๋ฅผ ๊ฑฐ์น๋ค์์ ํฉ์ณ๋ณธ๋ค๋ ๊ฑฐ์! (ํน์๋ ์๋ชปํด์ ์ง๊ธ๊น์ง ์งฏ๋ ํ๋ก๊ทธ๋จ์ด ๋ ๋ผ๊ฐ๋ฉด ์๋๋๊น.. ํฌํก) branch ๋ง๋ค๊ธฐ git branch ๋ธ๋์น์ด๋ฆ //์ ๋ git branch coupon ์ด๋ผ๊ณ ์๋ช
ํด๋ดค์ - main ๋ธ๋์น์์ ๋ฐฉ๊ธ๋ง๋ coupon ๋ธ๋์น๋ก ์ด๋ํ๊ณ ์ถ๋ค๋ฉด? git switch ๋ธ๋์น์ด๋ฆ // git switch c..
๋ค๋ค ์๋ํฐ๋ก vscode๋ฅผ ๋ง์ด ์ธํ
๋ฐ ์ค๋์ vscode๋ฅผ ์ฌ์ฉํด์ git ๋ค๋ฃจ๋ ๋ฒ์ ์ ๋ฆฌํด๋ณผ๊ฑฐ์ ๋๋ ์ด๋ณด์๋ผ ์ฝ๊ฒ ์ฝ๊ฒ ๊ฐ๊ฑฐ์ ๋จผ์ vscode๋ฅผ ์ผ์ ํ์ผ์ ๋ถ๋ฌ์ค์ธ์ ์ฌ์ด๋ ๋ฐ์์ 3๋ฒ์งธ ์ค๋ค๋ฆฌ๊ธฐ(?) ์ฒ๋ผ ์๊ธด ๋ฒํผ์ ๋๋ฅด๊ณ , ํ์ผ ๋ด์ฉ์์ ๋ณํ๋ฅผ ์ฃผ๋ฉด, Changes ๋ผ๋ ๊ฒ ๋ฐ๊ฑฐ์! ์ด๊ฒ ๋ญ๋๋ฉด git ์ด ๋น์ ์ด ์ฐ๊ณ ์๋ ํ์ผ์ ๋ณํ๋ฅผ ๋งค ์๊ฐ์๊ฐ ๊ฐ์ํ๊ณ ์๋ค๊ฐ, ๋ณํ๊ฐ ์๊ธฐ๋ฉด ๋ฑ Changes ๋ผ๋ ๊ฑธ ๋์์ฃผ๋ ๊ฑฐ์! ์ด Changes์ ๋ง์ฐ์ค๋ฅผ ๊ฐ๋ค ๋๋ฉด + ๋ฒํผ๋ ๋์ค๋๋ฐ, ๊ทธ๊ฑธ ๋๋ฌ์ฃผ์
๊ทธ๋ฌ๋ฉด git add ๊ฐ ๋๊ฑฐ์ (ํฐ๋ฏธ๋์์ ์คํํ ์ git add์ ๊ฐ์ ํจ๊ณผ๋ฅผ ๋) ๊ทธ๋ฆฌ๊ณ ๋ฐ์ Commit์ด๋ผ๋ ๋ฒํผ์ ๋๋ฅด๋ฉด, git commit ํ๊ฑฐ์ ๋๊ฐ์ ์์ ํ์ผ๊ณผ ๊ธฐ์กดํ์ผ ๋น..
REST API? REST API๋ ์น์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ ์์์ HTTP URI๋ก ํํํ๊ณ , HTTP ํ๋กํ ์ฝ์ ํตํด ์์ฒญ๊ณผ ์๋ต์ ์ ์ํ๋ ๋ฐฉ์์ด๋ค ์ฝ๊ฒ ๋งํ๋ฉด ์น์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ๋ฐฉ๋ฒ(๋ฉ๋ดํ)์ด๋ค! (์ ๋ฒ ๊ฒ์๋ฌผ์์ API ์ค๋ช
ํ ๋, ์น์ ๊ฒฝ์ฐ, REST API ๋ผ๋ ์์น์ ๋ฐ๋ผ ์์ฑํ๋ฉด ์ข๋ค๊ณ ํ์) REST API๋ฅผ ๋์์ธ ํ๋ ๋ฐฉ๋ฒ REST API๋ฅผ ์์ฑํ ๋๋ ์ง์ผ์ผ ํ ๊ท์น์ด ์๋๋ฐ, ๋ ์ค๋๋๋ก ๋ฆฌ์ฐจ๋์จ ์ด๋ผ๋ ์ฌ๋์ด ์ด ๊ท์น์ 4๋จ๊ณ ๋ชจ๋ธ๋ก ๋ง๋ค์๋ค๊ณ ํฉ๋๋ค REST ์ฑ์๋ ๋ชจ๋ธ์ ์ด 4๋จ๊ณ(0~3๋จ๊ณ)๋ก ๋๋์ด์ง ์ค์ ๋ก 3๋จ๊ณ ๊น์ง ์งํค๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์, 2๋จ๊ณ๊น์ง๋ง ์ ์ฉํด๋ ์ข์ api ๋์์ธ์ด๋ผ๊ณ ๋ณผ ์ ์๊ตฌ, ์ด๋ฐ ๊ฒฝ์ฐ๋ HTTP API ๋ผ๊ณ ๋ ๋ถ๋ฆ~ 0๋จ๊ณ: HTTP ..