TECH
-
CSS์ ์ฐ์ ์์, CSS CascadingTECH 2023. 9. 4. 01:29
CSS๋ ์น ํ์ด์ง์ ๋์์ธ๊ณผ ๋ ์ด์์์ ์ ์ํ์ฌ ์ฌ์ฉ์๋ค์ ์๊ฐ์ ์ผ๋ก ์ฌ๋ก์ก์ ์ ์๋ ์น ๊ฐ๋ฐ์์๊ฒ ํ์์ ์ธ ์คํฌ์ ๋๋ค. ํ์ง๋ง CSS๋ ๋จ์ํ ๋ฌธ๋ฒ ๋ค์ ์จ๊ฒจ์ง ๊ท์น๋ค๋ก ์ด๋ณด์๋ค์๊ฒ ์ด๋ ค์์ ์๊ฒจ ์ฃผ๊ธฐ๋ ํฉ๋๋ค. HTML/CSS๋ก ํธ๊ธฐ๋กญ๊ฒ ์ฝ๋ฉ ์ธ๊ณ์ ๋ฐ์ ๋ค์๋ค๊ฐ ์ง๋ ๊ฒ์ ๋จน๊ณ (๋ฐฑ์๋๋ก) ํ์ฃผํ๋ ์ฌ๋๋ค์ ์ฌ๋ฟ ๋ณด๊ธฐ๋ ํ์ต๋๋ค. ๐คฃ ์์ฃผ ์ฌํ ์ผ์ ๋๋ค. "์ ์คํ์ผ์ด ์ ๋๋ก ์ ์ฉ๋์ง ์์๊น?"์ ๊ฐ์ ๊ณ ๋ฏผ์ ์บ์ค์บ์ด๋ฉ์ ์ํฅ์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ด ํฌ์คํ ์์๋ ๋ฐ๋ก ๊ทธ CSS์ ์บ์ค์บ์ด๋ฉ ์์น์ ๋ํด ์ด์ผ๊ธฐํด๋ณด๋ ค๊ณ ํฉ๋๋ค. CSS์ Cascading์ด๋? CSS๋ Cascading Style Sheets์ ์ฝ์๋ก, CSS์ ๋ค์ด๋ฐ์์๋ถํฐ ๋ น์ ์๋ ์บ์ค์บ์ด๋ฉ ๊ฐ๋ ์ ์คํ์ผ ๊ท์น์ด ๊ณ๋จ์์ผ๋ก ..
-
๋ชจ๋ ธ๋ ํฌ ๋์ ํ๊ธฐ(Feat. Nx)TECH 2023. 8. 27. 17:49
์ต๊ทผ ๋ชจ๋ ธ๋ ํฌ๋ผ๋ ๊ฐ๋ ์ด ์ฃผ๋ชฉ๋ฐ๊ณ ์์ต๋๋ค. ๋ชจ๋ ์ฝ๋์ ๋ฆฌ์์ค๊ฐ ํ๋์ ์ ์ฅ์ ์์์ ๊ด๋ฆฌ๋๋ ๋ชจ๋ ธ๋ ํฌ ๋ฐฉ์์ ๊ฐ๋ฐ์์ ์์ฐ์ฑ์ ๋์ฌ ์ค๋ค๋ ์ฅ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ ๊ฐ ์ํด ์๋ ํ์์๋ ๋จ์ํ ์๋ก์ด ํธ๋ ๋๋ฅผ ๋ฐ๋ผ๊ฐ๋ ๊ฒ์ด ์๋, ๊ฐ๋ฐ์์ ์์ ํจ์จ๊ณผ ์์ฐ์ฑ ํฅ์์ ์ฃผ ๋ชฉ์ ์ผ๋ก ๋ฉํฐ๋ ํฌ ํ๊ฒฝ์์ ๋ชจ๋ ธ๋ ํฌ ํ๊ฒฝ์ผ๋ก์ ์ ํ์ ๊ฒฐ์ ํ๊ฒ ๋์์ต๋๋ค. ์ด ๋ง์ด๊ทธ๋ ์ด์ ๊ณผ์ ์ ๊ฒฝํ๊ณผ ๊ทธ ๊ฒฐ๊ณผ์ ๋ํ ํ๊ธฐ๋ฅผ ์์ฑํด ๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ชจ๋ ธ๋ ํฌ ๋์ ๋ฐฐ๊ฒฝ ์ฐ์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ ์ํฉ์ ๋ค์๊ณผ ๊ฐ์์ต๋๋ค. . โโโ AProject โโโ BProject โโโ CProject ๋ ํฌ์งํ ๋ฆฌ์ ํ์์ ๋ชจ๋ ธ๋ ํฌ๋ณด๋ค๋ ๋ชจ๋๋ฆฌ์ ํ ๋ ํฌ์งํ ๋ฆฌ ์์ n๊ฐ์ ํ๋ก์ ํธ๊ฐ ์์ ๋ชจ๋ ํ๋ก ํธ์๋์ ์ฝ๋์ ๋ฆฌ๋ทฐ๋ ํ๋์ ๋ ํฌ์์ ์ฐธ๊ณ ํ ..
-
๋ฆฌ์กํธ ์ฟผ๋ฆฌ์ StaleTime๊ณผ CacheTimeTECH 2023. 1. 24. 00:27
* ์ด ๊ธ์ 2023๋ 11์ 6์ผ ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ์ด ๊ธ์ TanStack Query v4๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑ๋์์ต๋๋ค. 2023๋ 11์ 6์ผ ๊ธฐ์ค ์ต์ ๋ฒ์ ์ธ v5์์๋ cacheTime → gcTime์ผ๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ ์ฐธ๊ณ ํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ๋ฆฌ์กํธ ์ฟผ๋ฆฌ๋ฅผ ์ฒ์ ์ฌ์ฉํ ๋ ํท๊ฐ๋ฆด ์ ์๋ ๊ฐ๋ ์ค ํ๋์ธ staleTime๊ณผ cacheTime์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. โ staleTime stale์ ์ฌ์ ์ ์ ์๋ [์ ์ ํ์ง ์์, (๋ง๋ ์ง) ์ค๋๋]์ ๋๋ค. ๋ง ๊ทธ๋๋ก staleTime์ ๋ฐ์ดํฐ๊ฐ ์ ์ ํ ์ํ๋ก ๋จ์ ์๋ ์๊ฐ์ ๋งํฉ๋๋ค. ๋ฆฌ์กํธ ์ฟผ๋ฆฌ์์์ ๊ธฐ๋ณธ ๊ฐ์ 0์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ํ์นํด ์ค์๋ง์ ์ ์ ํ์ง ์๋ค๊ณ ๊ฐ์ฃผํ๋ ๊ฒ์ด์ฃ . ๋ฆฌ์กํธ ์ฟผ๋ฆฌ์์ ๋ฐ์ดํฐ๋ freshํ ๋ฐ์ดํฐ์ผ ์๋, s..
-
[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, ๋ฉ๋ชจ์ด์ ์ด..
-
[JavaScript] ๋ ๋์ ๋น๋๊ธฐ ํต์TECH 2022. 3. 27. 15:02
ํ๋ฆฌ์จ๋ณด๋ฉ ํ์๋ค๊ณผ ํจ๊ป ๋ฉด์ ์คํฐ๋๋ฅผ ์์ํ๋ค! ์ด๋ฒ ์ฃผ ์ฃผ์ ์ค ํ๋์ธ Promise, callback hell, async/await, fetch ๋ฑ์ ๋ํด ์์ธํ ์์๋ณด๋ ์๊ฐ์ ๊ฐ์ก๋ค. API๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ async/await๋ fetch๋ฅผ ์ฌ์ฉํ๋ฉด์๋ ๋ด๋ถ์ ์ผ๋ก ์ด๋ป๊ฒ ๋์ํ๋์ง๋ ์ ๋ชจ๋ฅด๊ณ ์์๋๋ฐ ์ด๋ฒ ๊ธฐํ์ ๋ด๋ถ ๋์์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง ๊ณต๋ถํด ๋ณผ ์ ์์๋ค. ๊ทธ๋ผ ๋ฐ๋ก ์์~ โ๏ธ ์ฝ๋ฐฑ ํจ์ ํจ์์ ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ๋ค๋ฅธ ํจ์์ ๋ด๋ถ๋ก ์ ๋ฌ๋๋ ํจ์๋ฅผ ์ฝ๋ฐฑ ํจ์(callback function)๋ผ๊ณ ํ๋ค. ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ํจ์์ ์ธ๋ถ์์ ์ฝ๋ฐฑ ํจ์๋ฅผ ์ ๋ฌ๋ฐ์ ํจ์๋ ๊ณ ์ฐจ ํจ์(Higher-Order Function, HOF)๋ผ๊ณ ํ๋ค. ํน์ ์์ ์ n ๋ฒ ๋ฐ๋ณต์ํค๋ ํจ์๊ฐ..
-
[React] Redux ๊ฐ๋ ์ ๋ฆฌTECH 2022. 3. 13. 02:04
โ๏ธ Redux๋? Redux๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ํ(state)๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ ๋๊ตฌ ์ค ํ๋์ด๋ค. โ๏ธ Redux ๊ธฐ๋ณธ ๊ฐ๋ 1. ์ก์ (Action) ์ํ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด์๋ ์ก์ ์ ํตํด ๋ณ๊ฒฝํด์ผ ํ๋ค. ์ก์ ์ ๊ฐ์ฒด ํ์์ผ๋ก ํํ๋๊ณ , type์ ํ์๋ก ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค. ์ต์ ์ผ๋ก ๋ค๋ฅธ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง ์ ์๊ณ , ์ก์ ์ ํ์ํ ๋ถ๊ฐ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค. { type: 'ADD_MESSAGE', data: { id: 1 message: "๋ฆฌ๋์ค ๋ฐฐ์ฐ๊ธฐ" } } ๋ฉ์์ง๋ฅผ ์๋ก ์ถ๊ฐํ๋ ์ก์ ์ด๊ณ , ์๋ก์ด ๋ฉ์์ง์ ๋ํ ๋ถ๊ฐ์ ์ธ data๊ฐ ์ ๋ฌ๋๋ค. 2. ์ก์ ์์ฑ ํจ์(Action Creator) ์ก์ ์ ๊ฐ์ฒด ํ์์ผ๋ก ๋ฐ๋ก ๋ง๋๋ ๊ฒ์ด ์๋..
-
[React] Checkbox (2) — ๋ฒํผ์ผ๋ก ์ ํ ํด์ ํ๊ธฐTECH 2022. 2. 21. 01:59
[React] Checkbox (1) — Context API๋ก ์ํ ๊ด๋ฆฌํ๊ธฐ์ ์ด์ด์ง๋ ํฌ์คํ ์ ๋๋ค. ๋ฒํผ์ผ๋ก ์ฒดํฌ๋ฐ์ค ํด์ ํ๊ธฐ ์ฒดํฌ๋ฐ์ค์ ์ํ ๊ด๋ฆฌ๋ฅผ ํ ์ ์๋ค๋ฉด ๋ฒํผ์ผ๋ก ์ฒดํฌ๋ฐ์ค ํด์ ํ๋ ๋ฐฉ๋ฒ์ฏค์ ๊ป์ ๋๋ค. ์ฐ์ ์ฒดํฌ๋ ์์๋ค์ ๋ฒํผ์ผ๋ก ์ถ๋ ฅํด ๋ณด๊ฒ ์ต๋๋ค. ๋ฒํผ ์์ ํ๋๋ Selected.jsx๋ก ๋ง๋ค๊ณ , ์ถ๋ ฅ์ CheckboxList์์ ๊ฐ์ด ํด ๋ณด๊ฒ ์ต๋๋ค. 1. ์ฒดํฌ๋ ์์ ๋ฒํผ์ผ๋ก ์ถ๋ ฅํ๊ธฐ {Object.keys(cateObject).map((key, index) => { return ( ); })} CheckboxList.jsx์ return ๋ฌธ์ ์ด๋ฐ ์ฝ๋๋ฅผ ์ถ๊ฐํด ์ค๋๋ค. value์๋ ํ ์คํธ๋ฅผ ์ ๋ฌํด ์ฃผ๊ณ , checked์๋ true/false ์์ฑ์ ์ ๋ฌํด ์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์..
-
[React] Checkbox (1) — Context API๋ก Checkbox ์ํ ๊ด๋ฆฌํ๊ธฐTECH 2022. 2. 19. 20:00
ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์ฒดํฌ๋ฐ์ค๋ก ์ ํํ๊ณ ๋ฒํผ์ผ๋ก ํด์ ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํ๋๋ฐ ๋ฒํผ์ผ๋ก ์ฒดํฌ๋ฐ์ค๋ฅผ ํด์ ํ๋ ๋ฐฉ์์์ ๊ณ ๋ฏผ์ ๋ง์ด ํด, ํฌ์คํ ์ผ๋ก ๋จ๊ฒจ ๋๋ ค๊ณ ํฉ๋๋ค. ์์์ ๋ฐฐ์ด ๋ฐ์ดํฐ๋ก ์ฒดํฌ๋ฐ์ค๋ฅผ ๋ง๋ค๊ณ Context API๋ก ์ํ ๊ด๋ฆฌํ๊ธฐ ์๋์ ๊ฐ์ ๋ฐ์ดํฐ๋ก ์ฒดํฌ๋ฐ์ค๋ฅผ ๋ง๋ค์์ต๋๋ค~ ๋๋ณด๊ธฐ // utils/sampleData.js export const data = [ "๊ฐ์", "๊ฐ๋", "๊ธฐ์จ", "๊ตฌ๋ฆ", "๋๋ฆฌ", "๋์ธ", "๋๋ฆฌ", "๋ ธ์", "๋๊ฝ", "๋ค์", "๋ง์", "๋ง๋ฃจ", "๋ฏธ๋ฅด", "๋ฌด๋ฌ", "๋ง์", "๋ฏฟ์", "๋ญ๋ณ", "๋ฐ๋ค", "๋ฐฉ์ธ", "๋ณด๋ฆ", "๋ด๊ฝ", "๋ณ๋น", "๋ณ๋ฐค", "๋ณ์ฒ", "์ฌ๋", "์์", "์๋ฒฝ", "์์น", "์๋ณ", "์์นจ", "..