ํ๋ก์ ํธ 2์ผ์ฐจ ํ์๋ค์ ๋ถ์๊ธฐ๊ฐ ์ ๋ง ์ข๋ค!!
์ฐ๋ฆฌ๊ฐ ์ ์ผ ์ข์ ๊ฒ ๊ฐ๋ค!!
๊ฐ์ ๊ณต๋ถ๋ง ํ๋ค ํ์ผ๋ก ํ๋ก์ ํธํ๋๊น ๋๋ฌด๋๋ฌด ์ฌ๋ฏธ์๋ค!!
๋ฐฑ์๋์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ๋ฃ๋ ๊ฒ ๋๋ฌด ์ฌ๋ฐ๋ค. ๋ฏธ์ง์ ์ธ๊ณ๋ฅผ ์กฐ๊ธ์ฉ ์์๊ฐ๋ ๋๋์ด ๋๊น?
์ญ์ ํ์
ํ๋ ์ฝ๋๊ฐ ๋ ์ดํดํ๊ธฐ ์ข๊ณ ๋ก์ง์ด ๋ ๊ณ ๋ฏผํ ๊ฒ๋ค์ด ๋ง์ง๋ง ๋ ์ ์ ๋ฆฌ๋๋ ๋๋์ด๋ค.
์ค๋ํ ๊ณ ๋ฏผ๋ค์ ๊ธฐ๋ก
ํ ํฐ์ ์ด๋์ ์ ์ฅํ ๊ฒ์ธ๊ฐ?
- ์ฒ์์๋ ๋ฐฑ์์ ํ ํฐ์ ๋ณด๋ผ๋
์ด์ฐจํผ ์ ํจ๊ธฐ๊ฐ์ ์ฃผ๊ธฐ ๋๋ฌธ์ LocalStorage ์ ์ค๋ ๋๋ค๊ณ ํ์ง๋ง
๋ค์ ์๊ฐํด๋ณด๋
๋ก๊ทธ์์์ด ๋์ด์ผํ๋ค๋ฉด sessionStorage ์ ํ ํฐ์ ์ ์ฅํ๋ ๊ฒ์ด ๋ ์ ์ ํด ๋ณด์ธ๋ค.
(์ค์ ๋ก ์ ์ฉํ ๋ ๋ค์ ์ด๋ค ๋ถ๋ถ์ ์ ํํ๊ฒ ๊ตฌํํ๊ณ ์ถ์์ง ๊ณ ๋ฏผํด์ผ๊ฒ ๋ค.)
Back ๊ณผ์ ์ํต์ ์ํด ํ๋ก ํธ ์ญํ notion์ ์์ฑํ๊ธฐ
- ์ญ์ notion์ ์ํต๋๊ฑฐ๋ ๊ณตํต์ผ๋ก ์์์ผํ๋ ๋ถ๋ถ์ ์์ฑํด ๋์ผ๋ฉด
- ์ฐพ๊ธฐ๋ ์ข๊ณ ์์๋ณด๊ธฐ ์ข์
- notion์ ์ ๊ทน ํ์ฉํ์!
์ธ๊ณฝ ๋ ์ด์์ ์ ํ๊ธฐ
- ๊ฐ๊ฐ ๋ค๋ฅธ ํ์ด์ง๋ฅผ ๋งก๋๋ผ๋ ๊ฒฐ๊ตญ ์ผ๊ด์ฑ ์๋ UI๋ฅผ ์ํด ์ต์์ ์ปดํฌ๋ํธ์ width ๊ฐ๊ณผ padding ์ ์ ํ๋ค.
- ๋ฐ์ํ์ ๊ณ ๋ คํ media ๊ฐ๋ ์ง๊ธ ์ ํ๋ฉด ์ข๊ฒ ์ง๋ง ๊ทธ ๋ถ๋ถ์ ๋์ค์ ์ํ์ฐฉ์ค๋ฅผ ๊ฒช์ผ๋ฉฐ ์ ํ๊ธฐ๋ก ํ๋ค :)
๊ทผ๋ฐ ์ญ์ ์ด๋ฐ์ ๋ง์ ํ ๋ก ์ด ์์ผ๋ฉด ๋์ค์ ๋ค ๋ง๋ค์ด์ง ์ํ์์ ui ๋ฅผ ๊ณ ์น๊ฑฐ๋ ๊ณ ์น๋ค๊ฐ ๊ฒฐ๊ตญ ์๋ก ๋ง๋ค์ด์ผ ํ๋ ๋ถ์์ฌ๋ฅผ ์์จ ์ ์์ด ์ด๋ฐ์ ๋ง์ ํ ๋ก ๊ณผ ๊ธฐํ์ด ์ค์ํ ๊ฒ ๊ฐ๋ค.
์์ธํ์ด์ง์ ๋ฐ์ดํฐ๋ ๋ฌด์์ผ๋ก ํ ๊น?
์์ธ ํ์ด์ง ๋ฐ์ดํฐ๋ฅผ ๊ณ ๋ฏผํ๋ ์ด์
- ์ปค๋จธ์ค ์ฌ์ดํธ์ ์์ธ ํ์ด์ง๋ฅผ ๋๊ฐ ์์ฑํ๋๋๋ฅผ ๊ณ ๋ฏผํด ๋ณด๋ฉด ๋๋ค.
๋๋ถ๋ถ ๋น์ฌ์ ๊ฐ๋ฐ์์ด๊ธฐ๋ณด๋ค๋ ๋ค์ํ ํ๋งค์๋ค์ด ๊ฐ์ ์ํ๋ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ฌ๋ฆฐ๋ค.
(ํ์์ ์์ง๋ง ๊ทธ ๋ด์ฉ์ ์ ๋ง ๋ค์ํ๋ค. ์์ฑ์๊ฐ ๋ค์ํ๋ค๋ ๊ฒ ๊ฐ์ฅ ํฐ ๊ณ ๋ ค ์ฌํญ์ด๋ค.)
๊ทธ๋์ ์์ธ ํ์ด์ง๋ ์์ฆ 2๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์์ฑ๋๋ค๊ณ ํ๋ค.
๋ฐฉ๋ฒ 1. ์ด๋ฏธ์ง
- ์ด ๋ฐฉ๋ฒ์ ์ฌ์ค ๊ฐ๋ฐ์ ์
์ฅ์์ ํธํ๋ค.
ํ๋งค์๋ค(ํน์ ๊ฒ์์๋ค)์ด ์์ฑํ ๊ฒ์ ๊ทธ๋๋ก ์ด๋ฏธ์งํํด ์ ์ฅํ๊ณ ๊ทธ ํฌ๊ธฐ๋ง ์กฐ์ ํด ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ด๋ค.
- But!
์ฌ์ฉ์๊ฐ ๋๋๊ทธ๋ฅผ ํ๊ฑฐ๋ ๊ธ์๋ฅผ ์ฝ๋ ์๋น์ค, ๊ธ์๋ก ํด๋น ๋ถ๋ถ์ ์ฐพ๋ ์๋น์ค ๋ฑ์ ์์ ํ์ง ๋ชปํด,
์ ์ฝ์ฌํญ์ด ์ฌ์ค ๋๋ฌด ๋ง์ ๋ฐฉ๋ฒ์ด๋ค.
๋ฐฉ๋ฒ 2. html ์ฝ๋
-
์ด ๋ฐฉ๋ฒ์ ๋ธ๋ก๊ทธ ์์ฑํ๋ ํธ์ง ํ๋ก๊ทธ๋จ์ผ๋ก ์์ฑ์๋ค์ด ์์ฑ์ ํ๊ณ ๊ทธ ์ฝ๋๋ฅผ ํด๋น ๋ถ๋ถ์ ๋ฟ๋ ค์ฃผ๋ ๋ฐฉ์์ด๋ค.
-
์ด ๋ฐฉ๋ฒ์ react ๋ฅผ ์ฌ์ฉํ๋ฉด dangerouslysetinnerhtml ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. (์ด๋ฆ์ด ๋๋ฌด ๋ฌด์๋ฌด์ํ์ง๋ง..)
-
์ด ๋ฐฉ๋ฒ์ ์ฐ๋ ์ด์
-> ํ
ํ๋ฆฟ์ด ๋ฐ๋๋๋ผ๋ ์ดํ ๋ถ๋ถ๋ง ์์ ํ๋ฉด ๋จ
๊ด๋ จ๋ ๊ณ ๋ฏผ๋ค
- ๋๋ ์ฒ์์ html ์ฝ๋๋ฅผ ๊ฐ์ผ๋ก ๋ฐ๋๋ค๊ณ ํ์๋, ์ฌ์ค ์ดํด๊ฐ ๋์ง ์์๋ค.
์๋, ํ๋ก ํธ์์ ํ
ํ๋ฆฟ์ด ์๊ณ react ์ปดํฌ๋ํธ์ฒ๋ผ ํ์ํ ๋ถ๋ถ์ ํด๋น ์ ๋ณด๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋์ง ์๋?
ํ์ง๋ง ์์ฑ์๊ฐ ํ๋ช
์ด ์๋๊ณ ๋ค์ํ๋ฉฐ ๊ทธ๋งํผ ์ํ๋ ์คํ์ผ์ด ๋ค์ํ๊ธฐ์ ํ๊ทธ๋ฅผ ๋ฐ๋ ๊ฒ์ด๋ค.
- html ์ฝ๋๋ฅผ ๊ฐ์ผ๋ก ๋ฐ๋๋ค๋ฉด ๋์ค์ ํ์์ ๋ฐ๊พธ๊ณ ์ถ์ผ๋ฉด ์ด๋กํ๋?
๊ทธ ๋ถ๋ถ์ ๋์ค์ ํ์์ ๋ฐ๊พผ๋ค๊ณ ์ด์ ์ ์์ธ ํ์ด์ง ๋ฐ์ดํฐ๋ก ๋ฐ๊พธ์ง๋ ์๋๋ค๊ณ ํ๋ค.
๊ทธ์ ์ดํ์ ์์ธํ์ด์ง ui ๊ฐ ๋ณ๊ฒฝ๋ ํฌ๋ฉง์ผ๋ก ์ฐ์ฌ์ง๋ ๊ฒ ๋ฟ...
ํ๋ก ํธํ ๊ณต๋๋ถ๋ถ ๋ง์ถ๊ธฐ
- ์์ ๋ง์ถ๊ธฐ
- ์ปจํ
์ธ ํฌ๊ธฐ, ์ฌ๋ฐฑ ๋ง์ถ๊ธฐ
์ฑ์ฅํ ์ฝ๋
- ํ๋๊ฐ ์ ํ๋๋ ๋ถ๋ถ์ด๋ฉด state๋ฅผ ๋ฐฐ์ด์ด ์๋ ์ซ์๋ก ํธํ๊ฒ ๊ด๋ฆฌํ๋ฉด ๋๋ค!
์์ ์ ๋ฐฐ์ด๋ก ๊ตฌํํ ์ฝ๋
const [sortCheck, setSortCheck] = useState([true, false, false]);
setSortCheck(sortCheck.map((_, i) => (i === id ? true : false)));
className={`sortBtn ${sortCheck[i] ? 'checked' : ''}`}
์ด๋ฒ์ ์ซ์๋ง ๋น๊ตํ ์ฝ๋
const [sortCheck, setSortCheck] = useState(0);
setSortCheck(id);
className={`sortBtn ${sortCheck === i ? 'checked' : ''}`}
ํ๋ก์ ํธ๋ฅผ ํ๊ณ Back ์ ๋ ์ดํดํ๋ฉฐ ๋ ํฐ ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ง๋ ์ฝ๋ ์์ฑ์ด ๋ ์ฌ๋ฐ๊ณ ๊ฐ๋ฐ์ด ๋๋ฌด ์ฌ๋ฐ๋ค!!!
์ค๋๋ง์ ์๋์ง๊ฐ ๋ฐค์ธ๋ฐ๋ ๋์ฑ๋ ๋์น๋ค@!