REACT
-
ํ๋ฉด ๋๋น๋ฅผ ์ด๊ณผํ์ง ์๋ ํดํ ๋ง๋ค๊ธฐ w.ReactTECH 2024. 4. 28. 21:08
ํดํ์ ํด๋ฆญํ๊ฑฐ๋ ๋๋ ๋ง์ฐ์ค๋ฅผ ํน์ ๊ตฌ์ฑ ์์์ ๊ฐ์ ธ๊ฐ์ ๋(hover ํ์ ๋) ์ํฉ์ ๋ง๋ ๋์๋ง์ด๋ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค. ํดํ์ ์ง์ ๋ง๋ค์ด์ ์ฌ์ฉํ๋ ์ค, hover ์์๊ฐ ํ๋ฉด ์ ์ค๋ฅธ์ชฝ ๋์ ์์นํ ๋ ํดํ์ ์ปจํ ์ด๋๊ฐ ํ๋ฉด ๋๋น๋ฅผ ๋์ด๊ฐ๋ ํ์์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ ํ์์ ์ฌ์ฉ์๊ฐ ์์ํ ๋๋ก ์ธํฐํ์ด์ค๊ฐ ๋์ํ์ง ์๊ณ , ํดํ์ ๋ด์ฉ์ ํ์ธํ๊ธฐ ์ํด ํ๋ฉด์ ์คํฌ๋กคํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ํดํฉ๋๋ค. ๋ฐ๋ผ์ ์์ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๊ฐ์ ํ์ฌ ํดํ์ ์ปจํ ์ด๋๊ฐ ํ๋ฉด์ ๊ฐ๋ก ๊ธธ์ด๋ฅผ ๋์ด๊ฐ์ง ์๋๋ก ํดํ์ ์์น๋ฅผ ์กฐ์ ํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ฐ์ ์์ ์ ํดํ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.import styles from './tooltip.module.css';import IconQna..
-
React์์ TMap API ์ฌ์ฉํ๊ธฐTECH 2023. 12. 30. 14:48
์ด ๊ธ์์๋ ๋ค์ด๋ฒ ๋ถ์คํธ์บ ํ ๋ด์ ๋ชจ๊ฐ์ฝ ๋ชจ์ง/๊ด๋ฆฌ ํ๋ซํผ์ธ ๋ชจ๋ฝ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๋ฉฐ TMap API๋ฅผ ์ฌ์ฉํ๋ ํ๊ธฐ๋ฅผ ๋ด์ ๋ณด์์ต๋๋ค. GitHub - boostcampwm2023/web17_morak: Morak | ๋ค์ด๋ฒ ๋ถ์คํธ์บ ํ ๋ด ๋ชจ๊ฐ์ฝ ๋ชจ์ง/๊ด๋ฆฌ ํ๋ซํผ ๐ง๐ป๐ป Morak | ๋ค์ด๋ฒ ๋ถ์คํธ์บ ํ ๋ด ๋ชจ๊ฐ์ฝ ๋ชจ์ง/๊ด๋ฆฌ ํ๋ซํผ ๐ง๐ป๐ป๐ฉ๐ป๐ป๐จ๐ป๐ป. Contribute to boostcampwm2023/web17_morak development by creating an account on GitHub. github.com TMAP Open API๋ ์น ๊ฐ๋ฐ ๋๋ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋ค์ํ๊ฒ ํ์ฉ๋ ์ ์๋๋ก, Javascript ํํ๋ก ์ ๊ณต๋๋ TMAP ์ง๋ ํ๋ซํผ์ ๋๋ค. TMap API๋ ์ด..
-
[React] useMemo์ useCallback๋ก ๋ฆฌ์กํธ ๋ ๋๋ง ์ฑ๋ฅ ์ต์ ํํ๊ธฐ(Feat. React.memo)TECH 2022. 4. 9. 10:00
์๋ ํ์ธ์. ๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ค ๋ณด๋ฉด ๋ ๋๋ง ์ฑ๋ฅ ์ต์ ํ์ ๋ํ ์ด์๋ฅผ ์ ํ๊ธฐ ๋ง๋ จ์ ๋๋ค. ๋ฆฌ์กํธ์์๋ ๋ ๋๋ง ์ฑ๋ฅ ์ต์ ํ์ ๊ดํ ๋ํ์ ์ธ ํ ์ผ๋ก useMemo์ useCallback์ด ์์ต๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก useMemo์ useCallback์ด ๋ญ๊ฐ ๋ค๋ฅธ์ง, ์ด๋ค ์ํฉ์์ ์จ์ผ ๋ ๋๋ง ์ฑ๋ฅ ์ต์ ํ๋ฅผ ํ ์ ์์์ง ๊ต์ฅํ ๋ง์ด ํท๊ฐ๋ ธ์๋๋ฐ์~ ์ค๋์ useMemo์ useCallback์ ์ฐจ์ด์ ์ ๋ํด ์์ธํ ์์๋ณด๊ณ ์ด ๋์ ์ฌ์ฉ๋ฒ์ ๊ดํด์๋ ๊ฐ๋จํ๊ฒ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. โ๏ธ useMemo useMemo์์ Memo์ ์๋ฏธ๋ ์ฐ๋ฆฌ๊ฐ ์ด๋ค ์๊ฐ์ด ๋ ๋๋ง๋ค ์์ฑํ๋ ๋ฉ๋ชจ๋ผ๋ ๋ป์ด ์๋๋๋ค. ์ฌ๊ธฐ์ Memo๋ผ๋ ๊ฑด Memoization์ ์ถ์ฝํ Memo๋ผ๋ ๋ป์ ๋๋ค. Memoization, ๋ฉ๋ชจ์ด์ ์ด..
-
์ํฐ๋ ํ๋ฆฌ์จ๋ณด๋ฉ ํ๋ก ํธ์๋ ์ฝ์ค 3์ฃผ์ฐจ ํ๊ณ (1) — Next.jsETC 2022. 3. 22. 02:29
ํ๋ฆฌ์จ๋ณด๋ฉ์ ์์ํ๊ณ ๋๋ ์๊ฐ์ด ๋ฌด์ง ๋น ๋ฅด๊ฒ ํ๋ฅธ๋ค. ๋๋์ด 3์ฃผ์ฐจ! ์ด๋ฒ์๋ Next.js๋ฅผ ์ฒ์ ์จ ๋ณด๊ฒ ๋์๋ค. ์ด๋ฆ๋ง ๋ค์์ ๋ ์ด๋ ค์ธ ๊ฒ ๊ฐ์๋ Next.js๋ ๋ง์ ํด ๋ณด๋ ์๊ฐ๋ณด๋ค ์ด๋ ต์ง๋ ์์์ง๋ง, ์ญ์ ์ฒ์์ด๋ผ ๊ทธ๋ฐ์ง ์ด๋ ต๊ธด ์ด๋ ค์ ๋ค. (๋ชจ์๋ฉ์ด๋ฆฌ) ์ฌ์ค ๋ง๊ฐ ๊ธฐํ๊น์ง๋ ์๋ฒฝํ๊ฒ ์ดํดํ์ง ๋ชปํ๋๋ฐ ํ๋ฆฌ์จ๋ณด๋ฉ ์ฝ์ค๊ฐ ๋๋๊ณ ๋ณต์ตํ๊ณ ๋์์ผ ์กฐ๊ธ์ฉ ์ดํดํ๋ ์ค์ด๋ค.... ์ด๋ฒ ๊ณผ์ ์์ ๋๋ ์ํ ์์ธ ํ์ด์ง, ๊ณ ๊ฐ์ผํฐ์ ๋ง์ดํ์ด์ง, e2e ํ ์คํธ๋ฅผ ๋งก์๋ค. ์๋ฌดํผ ์์~ 1. ์ํ ์์ธ ํ์ด์ง ์ฒ์์๋ ๋ฆฌ์กํธ์์ components๋ฅผ ์์ฑํ๋ ๊ฒ๊ณผ ๋์ผํ๊ฒ components ํด๋ ๋ด์ ํ์ด์ง๋ง๋ค ํด๋๋ฅผ ๋๋ ์ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๋ค. ์ปดํฌ๋ํธ ๋ถ๋ฆฌ ๊ธฐ์ค์ ์ ์ฌ์ง๊ณผ ๊ฐ์ด ๋ถ๋ฆฌํ๋ค. Optio..
-
์ํฐ๋ ํ๋ฆฌ์จ๋ณด๋ฉ ํ๋ก ํธ์๋ ์ฝ์ค 2์ฃผ์ฐจ ํ๊ณ (2) — ReduxETC 2022. 3. 5. 21:39
์ฑ์ฉ ๊ณผ์ ๋ฅผ ํ๊ฑฐ๋, ์ทจ์ ํด์ ํ์ฌ๊ฐ ์๊ธฐ๊ณ ๋๋ฉด ์ ์ญ ์ํ ๊ด๋ฆฌ ํด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ๊ฑฐ๋ค. (์ด๋ง์ด๋งํ props drilling์ผ๋ก ๋ชจ๋ ๊ฑธ ํด๊ฒฐํ์ง ์์ ๊ฑฐ๋ผ๊ณ ์๊ฐ....) ๊ทธ๋์ ๋ฆฌ์กํธ๋ฅผ ํ๋ฉด์ redux, recoil ๊ฐ์ ์ ์ญ ์ํ ํด์ ์๊ณ ์๋ ๊ฒ ํ์๋ผ๊ณ ์๊ฐํ๋๋ฐ, ๋๋ ์ ๊ทธ๋์ ์ฌ์ฉํ์ง ์์๋์ง? ์๋ฌดํผ ์ด๋ฒ์๋ ๋ฆฌ๋์ค๋ฅผ ํ์๋ก ์ฌ์ฉํ๋ ๊ณผ์ ์๊ณ , ์ด์ ์๋ Context API๋ ๋ฆฌ๋์ค ํํ ๋ฆฌ์ผ (์ ๋์ง๋ง)์ ํตํด ์ฌ์ฉํด ๋ดค๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฅ ๊ฑฑ์ ์ ๋์ง ์์๋ค! ์ฐ์ ์ด๋ฒ์๋ ๊ณผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ง์๊ธฐ ๋๋ฌธ์ ์กฑ๊ธ ์ ์ ์ด ์์๊ณ ... swit ๊ณผ์ ๋ ํ๋กํ ํ์ ์ด ์์๊ธฐ ๋๋ฌธ์ ๋์์ธ์ ์ด๋ป๊ฒ ํ์ง ์๊ฐํ๋ค๊ฐ swit์ ์ด๋ฏธ ์ ์ฌ์ฉ๋๊ณ ์๋ ๋ฉ์ ์ ์ด๊ธฐ ๋๋ฌธ์~ ์น ๋ฒ์ ๋์์ธ์..
-
์ํฐ๋ ํ๋ฆฌ์จ๋ณด๋ฉ ํ๋ก ํธ์๋ ์ฝ์ค 2์ฃผ์ฐจ ํ๊ณ (1) — TypeScriptETC 2022. 3. 2. 23:13
์ค๋ ์ฐํด์ ํน~ ์ฌ๋ ์ฒ ์ด๊ฒ์ ๊ฒ ๊ณต๋ถ๋ ๋ง์ด ํ๊ณ ๋์ ๋ค์ ๋ฃ๊ฒ ๋ 2์ฃผ์ฐจ ์์ . TypeScript ์์ ์ด์๋๋ฐ ์ฌ์ค ๋ฐ๋ก ์ค์ ํ๋ก์ ํธ๋ฅผ ํ๊ฒ ๋ ์ค์ ๋ชฐ๋๋ค. ๊ทธ๋๋ง ์ค ์ฐํด์ React with TS๋ก TodoList ๋ง๋๋ ๊ฐ์๋ผ๋ ๋ณด๊ณ ๋ฐ๋ผํด์ ๋ง์ ์ด๋ผ๊ณ ์๊ฐํ์. ๊ทธ๋ฆฌ๊ณ ์ง์ ํด ๋ณด๋๊น ๋ ์ด๋ ค์ ๋ฐ...... TypeScript ์ฌ์ค ํ์ ์คํฌ๋ฆฝํธ๋ C์ธ์ด, Java, Python ๊ทธ๋ฆฌ๊ณ ์ฝ๊ฐ์ C++๊น์ง ๋ฐฐ์ ๋ ์ ๊ณต์์ผ๋ก์จ ์ต์ํ ๋ถ๋ถ๋ค์ด ๋ง์๋ค. ๋น์ฐํจ. ๊ทธ๊ฒ์ด OOP์ด๋๊น. ์ด๋ป๊ฒ ๋ณด๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋๊ฒ ํฌํํ ์ธ์ด๋ค. ๋ณ์์ ํ์ ๋ ์ง์ ํด ์ฃผ์ง ์์๋ ๋๊ณ , ํธ์ด์คํ ์ผ๋ก ์ธํด ๋ณ์ ์ ์ธ์ ํธ์ถ๋ณด๋ค ๋ฐ์ ํด๋ ์ค๋ฅ๊ฐ ์ ๋๋ค๋ ์ง ๊ทธ๋ฐ ์ ์ ๋ณด๋ฉด ๋ง์ด๋ค. ๊ทธ์น๋ง React+TypeS..
-
์ํฐ๋ ํ๋ฆฌ์จ๋ณด๋ฉ ํ๋ก ํธ์๋ ์ฝ์ค ๊ฐ์ธ ๊ณผ์ ํ๊ณETC 2022. 2. 24. 19:15
๋ด๊ฐ ์ฐธ์ฌํ ์ํฐ๋ ํ๋ฆฌ์จ๋ณด๋ฉ ํ๋ก ํธ์๋ ์ฝ์ค๋ 2022/01/24๋ถํฐ ์์ํด ์ค๊ฐ์ ์ค๋ ์ฐํด๊ฐ ๊ปด ์๋ค. ํด์ 1์ฃผ์ฐจ ๋ฐฐ์ฐ๊ณ ํ ์ฃผ๋ฅผ ์ด ์ ์์๋๋ฐ, ํ์๊ฐ ์๋ ๊ฐ์ธ ๊ณผ์ ๋ ํ๋ ์์๋ค. ์ฐํด์ ๋์ง ๋ง๊ณ ๊ณต๋ถ๋ ํ์ ํด์ ์๋ํ๊ฒ ๋์๋ค. ์ฌ์ค ํ์ ์คํฌ๋ฆฝํธ, ๋ฆฌ๋์ค ๋ฑ ์์ฒญ ๋ฐฐ์ธ ๊ฒ ๋ง์๋ ์ผ์ฃผ์ผ์ด์์ ๊ธฐ๋ฅ์ ์ด ๋งํฌ์ ์๋ ํ๋ฉด์ ๊ตฌํํ๋ ๊ฑฐ์๊ณ , ์ฒ์ ๋ดค์ ๋ ์ข ์ด๋ ต๊ฒ ๋๋ฐ? ์ถ์์ผ๋ ์๊ทผ ๋นจ๋ฆฌ ๋๋ ๊ณผ์ ์๋ค. 1. API ์ฐ๋ ์ฌ์ค API ์ฐ๋ํ๋ ๋ฐ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ ธ๋ค. ๋ฒจ๋กํผํธ ๋ฆฌ์กํธ๋ก ๋ฆฌ๋์ค๋ฅผ ์กฐ๊ธ ๊ณต๋ถํ๊ณ ๋์ ๊ณผ์ ์ ๋์ ํ์๋๋ฐ, ๊ฑฐ๊ธฐ์ ๋ฐฐ์ด ์ปค์คํ ํ ์ ์ฐ๋ ค๋ค ๋ญ๊ฐ ์ ์ ๋๋๋ผ.... ์๋ฌดํผ API ํธ์ถ์ ์ด๋ฐ ์์ผ๋ก ์งํํ๋ค. export async function getHo..
-
[React] Checkbox (1) — Context API๋ก Checkbox ์ํ ๊ด๋ฆฌํ๊ธฐTECH 2022. 2. 19. 20:00
ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์ฒดํฌ๋ฐ์ค๋ก ์ ํํ๊ณ ๋ฒํผ์ผ๋ก ํด์ ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํ๋๋ฐ ๋ฒํผ์ผ๋ก ์ฒดํฌ๋ฐ์ค๋ฅผ ํด์ ํ๋ ๋ฐฉ์์์ ๊ณ ๋ฏผ์ ๋ง์ด ํด, ํฌ์คํ ์ผ๋ก ๋จ๊ฒจ ๋๋ ค๊ณ ํฉ๋๋ค. ์์์ ๋ฐฐ์ด ๋ฐ์ดํฐ๋ก ์ฒดํฌ๋ฐ์ค๋ฅผ ๋ง๋ค๊ณ Context API๋ก ์ํ ๊ด๋ฆฌํ๊ธฐ ์๋์ ๊ฐ์ ๋ฐ์ดํฐ๋ก ์ฒดํฌ๋ฐ์ค๋ฅผ ๋ง๋ค์์ต๋๋ค~ ๋๋ณด๊ธฐ // utils/sampleData.js export const data = [ "๊ฐ์", "๊ฐ๋", "๊ธฐ์จ", "๊ตฌ๋ฆ", "๋๋ฆฌ", "๋์ธ", "๋๋ฆฌ", "๋ ธ์", "๋๊ฝ", "๋ค์", "๋ง์", "๋ง๋ฃจ", "๋ฏธ๋ฅด", "๋ฌด๋ฌ", "๋ง์", "๋ฏฟ์", "๋ญ๋ณ", "๋ฐ๋ค", "๋ฐฉ์ธ", "๋ณด๋ฆ", "๋ด๊ฝ", "๋ณ๋น", "๋ณ๋ฐค", "๋ณ์ฒ", "์ฌ๋", "์์", "์๋ฒฝ", "์์น", "์๋ณ", "์์นจ", "..