๋ฌธ์ 1
์๋ฌด๋ฆฌํด๋ 500์๋ฌ๊ฐ ๋ฐ์ .. ๋จ์ง params๋ก ๊ฐ์ธ์ ์๊ธด ๋ฌธ์
URL Parameters (params)
- ๋ชฉ์ : URL Parameters๋ ์ฃผ๋ก ๊ฐ๋จํ ๊ฐ์ด๋ ์ฟผ๋ฆฌ ์คํธ๋ง์ ์ ๋ฌํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ๋ณดํต ๊ฒ์, ํํฐ๋ง, ์ ๋ ฌ ๋ฑ์ ์ฉ๋๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- ์์น: URL์ ๋์ ํฌํจ๋๋ฉฐ, ? ๋ค์ key=value ํํ๋ก ์ถ๊ฐ๋ฉ๋๋ค. ์ฌ๋ฌ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ &๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
- ์: /search?name=John&age=30
- ์ ์ก ๋ฐฉ๋ฒ: ์ฃผ๋ก GET ์์ฒญ์์ ์ฌ์ฉ๋๋ฉฐ, ์์ฒญํ๋ ๋ฆฌ์์ค๋ฅผ ๋ช ์ํ๊ฑฐ๋ ํํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ํฌ๊ธฐ: URL ๊ธธ์ด์ ์ ํ์ด ์์ด, ๋ฐ์ดํฐ๋ฅผ ๋ง์ด ๋ด์ ์ ์์ต๋๋ค. ์น ๋ธ๋ผ์ฐ์ ์์๋ URL ๊ธธ์ด์ ์ ํ์ด ์๊ธฐ ๋๋ฌธ์ ๊ธด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐ ์ ํฉํ์ง ์์ต๋๋ค.
- ๋ณด์: URL์ ๋ ธ์ถ๋๊ธฐ ๋๋ฌธ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ์ค์ํ ์ ๋ณด๋ ํฌํจํ์ง ์์์ผ ํฉ๋๋ค.
Request Body
- ๋ชฉ์ : Request Body๋ ์ฃผ๋ก ๋๋์ ๋ฐ์ดํฐ๋ ๋ณต์กํ ๊ตฌ์กฐ๋ฅผ ์๋ฒ๋ก ์ ์กํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์ ์ ๋ ฅ ํผ์ ๋ฐ์ดํฐ, ํ์ผ ์ ๋ก๋, JSON ๊ฐ์ฒด ๋ฑ.
- ์์น: ์์ฒญ ๋ณธ๋ฌธ(Body)์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํฉ๋๋ค. HTTP ์์ฒญ ํค๋์ Content-Type์ ๋ฐ๋ผ ๋ฐ์ดํฐ ํ์์ด ๊ฒฐ์ ๋ฉ๋๋ค.
- ์: application/json, application/x-www-form-urlencoded, multipart/form-data ๋ฑ
- ์ ์ก ๋ฐฉ๋ฒ: POST, PUT, PATCH ์์ฒญ์์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ํฌ๊ธฐ: ๋ฐ์ดํฐ ํฌ๊ธฐ ์ ํ์ด ์๋์ ์ผ๋ก ํฌ๋ฉฐ, ์์ฒญ ๋ณธ๋ฌธ์ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์์ต๋๋ค.
- ๋ณด์: URL์ ๋ ธ์ถ๋์ง ์์์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
๋ฌธ์ 2
์ค์จ๊ฑฐ์์๋ ๋ฌธ์ ๊ฐ ์์๋๋ฐ ๋ธ๋ผ์ฐ์ ์์๋ ๊ณ์ 500์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์ด๊ฒ ๋ํ API ์์ฒญ ๋ฐฉ์์ ๋ฌธ์ ์๋ค. 500์๋ฌ๋ ๋ฐฑ์๋ ์๋ฒ์์๋ง ๋ฌธ์ ๊ฐ ์์ ๋ ๋ฐ์ํ๋ ์ค ์์๋ค ๐จ
๋ด๊ฐ ์๋ชป ๋ณด๋ด๊ณ ์์๋ ๊ฒ ..
https://api-duckwho.xyz/api/chat/rooms?articleId=50211 ๋ผ๋ URL๋ก ์๋ฒ์ ํต์ ํด์ผํ๋ค. (URL Parameters)
์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ๋ก ์์ ํ ์ฑ๊ณต์ ์ผ๋ก ํต์ !!
๋ฌธ์ 3
Uncaught Error: Rendered more hooks than during the previous render ์๋ฌ๋ React์์ ๋ฐ์ํ๋ ์๋ฌ๋ก, ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋ ๋๋ง๋ค ์ฌ์ฉํ๋ ํ (Hook)์ ๊ฐ์๋ ์์๊ฐ ๋ณ๊ฒฝ๋ ๋ ๋ฐ์ํ๋ค. React์ ํ ์ ์ปดํฌ๋ํธ์ ๋ ๋๋ง๋ง๋ค ํญ์ ๊ฐ์ ์์๋ก ํธ์ถ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์, ์ด๋ฅผ ์ด๊ธฐ๋ฉด ์ด ์๋ฌ๊ฐ ๋ฐ์ํ๊ฒ๋๋ค.
ํ ์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ์ง ์์๋์ง ํ์ธํด๋ณด์.
1๏ธโฃ ์กฐ๊ฑด๋ถ ๋ ๋๋ง ๋ด์์ ํ ์ฌ์ฉ
React์ ํ ์ ์กฐ๊ฑด๋ถ๋ก ํธ์ถํ๋ฉด ์ ๋๋ค. ์๋ฅผ ๋ค์ด, if ๋ฌธ ์์์ ํ ์ ์ฌ์ฉํ๋ฉด ์ปดํฌ๋ํธ๊ฐ ์ฌ๋ ๋๋ง ๋ ๋๋ง๋ค ํ ์ ํธ์ถ ์์๊ฐ ๋ฌ๋ผ์ ธ์ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ค.
// ์๋ชป๋ ์
if (someCondition) {
const [state, setState] = useState(0); // ์กฐ๊ฑด๋ถ๋ก ํ
ํธ์ถ
}
// ํด๊ฒฐ๋ฐฉ๋ฒ
//์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ํตํด ์ปดํฌ๋ํธ๋ฅผ ๋ค๋ฅด๊ฒ ๋ ๋๋งํ๋ ๋์ , ํ
์ ์ปดํฌ๋ํธ ์ต์์์์ ํญ์ ๋์ผํ๊ฒ ํธ์ถํด์ผ ํฉ๋๋ค.
const [state, setState] = useState(0); // ํญ์ ํธ์ถ๋๋๋ก ์ต์์์์ ์ฌ์ฉ
if (someCondition) {
return <div>Condition is true</div>;
} else {
return <div>Condition is false</div>;
}
2๏ธโฃ ๋ฆฌ์คํธ ๋ ๋๋ง ์ค ํ ์ฌ์ฉ
๋ฆฌ์คํธ๋ฅผ ๋ ๋๋งํ๋ฉด์ ํ ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์๋ฌ๋ฅผ ์ผ์ผํฌ ์ ์๋ค
// ์๋ชป๋ ์
{items.map(item => {
if (item.someCondition) {
const [state, setState] = useState(0); // ํ
์ ๋ฆฌ์คํธ ๋ด๋ถ์์ ํธ์ถ
}
return <div>{item.name}</div>;
})}
// ํด๊ฒฐ๋ฐฉ๋ฒ
// ๋ฆฌ์คํธ ์์์ ํ
์ ์ฌ์ฉํ์ง ๋ง๊ณ , ๋ฆฌ์คํธ ํญ๋ชฉ๋ค์ ๋ถ๋ฆฌํด์ ๋ ๋๋งํ๊ฑฐ๋ ํ
์ ์ปดํฌ๋ํธ ์ต์์์์๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค.
const [state, setState] = useState(0);
return items.map(item => (
<div key={item.id}>{item.name}</div>
));
3๏ธโฃ ํ ์ ์กฐ๊ฑด๋ถ๋ก ์ค์ ํ๋ ๋ค๋ฅธ ๋ก์ง
์ปดํฌ๋ํธ ๋ด์์ ํ ์ ๊ฐ์๋ ํธ์ถ ์์๋ฅผ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ๋ ๋ก์ง์ ์์ฑํ๋ ๊ฒฝ์ฐ์๋ ์ด ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ค.
// ์๋ชป๋ ์
const [state, setState] = useState(0);
if (someCondition) {
const [anotherState, setAnotherState] = useState(0); // ์กฐ๊ฑด์ ๋ฐ๋ผ ํ
์ด ๋ค๋ฅด๊ฒ ํธ์ถ๋จ
}
// ํด๊ฒฐ๋ฐฉ๋ฒ
// ํ
์ ํญ์ ๋์ผํ ์์๋ก ํธ์ถ๋์ด์ผ ํ๋ฏ๋ก, ํ
ํธ์ถ์ ์กฐ๊ฑด๋ฌธ ๋ฐ์ผ๋ก ์ด๋์์ผ์ผ ํฉ๋๋ค.
const [state, setState] = useState(0);
const [anotherState, setAnotherState] = useState(0); // ํญ์ ๋์ผํ๊ฒ ํธ์ถ
if (someCondition) {
// ์กฐ๊ฑด์ ๋ฐ๋ฅธ ๋ ๋๋ง๋ง ์ฒ๋ฆฌ
}
4๏ธโฃ React ๋ฒ์ ๋ฌธ์
React์ ํ ๊ธฐ๋ฅ์ React 16.8 ๋ฒ์ ์ด์์์ ๋์ ๋์๊ธฐ ๋๋ฌธ์, ๊ตฌ ๋ฒ์ ์ React๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ํ ๊ด๋ จ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค. ์ต์ ๋ฒ์ ์ React๋ก ์ ๋ฐ์ดํธ ๊ถ์ฅ.
5๏ธโฃ useEffect๋ useCallback ์์์ ํ ์ฌ์ฉ
useEffect, useCallback, useMemo์ ๊ฐ์ ํ ์์์ ๋ ๋ค๋ฅธ ํ ์ ํธ์ถํ๋ฉด ์ ๋๋ค. ํ ์ ์ปดํฌ๋ํธ ์ต์์์์๋ง ํธ์ถ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
// ์๋ชป๋ ์
useEffect(() => {
const [state, setState] = useState(0); // useEffect ์์์ ํ
ํธ์ถ
}, []);
// ํด๊ฒฐ๋ฐฉ๋ฒ
// useEffect ์์์๋ ์ํ๋ ๋ค๋ฅธ ํ
์ ํธ์ถํ ์ ์์ผ๋ฉฐ, ๋์ ์ธ๋ถ์์ ํ
์ ๋จผ์ ํธ์ถํ๊ณ , ๊ทธ ํ์ useEffect ๋ด์์ ํ์ํ ์์
์ ํ๋๋ก ํด์ผ ํฉ๋๋ค.
const [state, setState] = useState(0);
useEffect(() => {
// side effect ์ฒ๋ฆฌ
}, [state]);
'๐ ๏ธ ํ๋ก์ ํธ > [Duckwho] - ์ค๊ณ ๊ฑฐ๋ ํ๋ซํผ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฌ์ด๋ ํ๋ก์ ํธ Dockwho ๐ฅ (๊ฐ๋ฐ์ค) (0) | 2025.01.16 |
---|