ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ปจํผ๋ฐ์ค ํ๊ธฐ ์ด๋ฒ์ฃผ์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ปจํผ๋ฐ์ค๋ฅผ ๋ค๋ ์๋ค. ์์ ์ ์ฝ์๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ฑ ์์ ๋งํ๋ ‘ํ๋์ ๊ณ์ฐ์ ํ๋์ ํจ์’ ์์น์ ์ ์ ์ฉํ ๋๋ ์์ง๋ง, ์ค์ ๋ก๋ ๋ค์ํ ๋๋ฉ์ธ ๋ก์ง๊ณผ ์ํ ๊ด๋ฆฌ๊ฐ UI ๋ก์ง๊ณผ ์ฝํ๋ฉด์ ์งํค๊ธฐ ์ด๋ ค์ธ ๋๊ฐ ๋ง์๋ค. ๋ค๋ฅธ ๋ถ๋ค์ ์ด๋ป๊ฒ ํ์ด๋๊ฐ๋์ง ๊ถ๊ธํ๋๋ฐ, ๋ง์นจ ์ด๋ฒ ์ปจํผ๋ฐ์ค์ FE ์ธ์ ๋ ์์ด์ ์ ์ฒญํ๊ฒ ๋์๋ค. ๊ธฐ์ต์ ๋จ์๋ ๋ด์ฉ์ ๊ฐ๋จํ ์ ์ด๋ณด์๋ฉด 1. FE ํํฌ ๋ ์ธ์ ์์ ๋ด๊ฐ ์์ฑํ ๋ก์ง์ด ์์ํ์ง? ๋ฅผ ํ๋จํ๋ ๊ธฐ์ค ์ค์ ํ๋๋ก ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด์ ๋๊ปด์ง๋ ๋ถํธํจ+์ด์ํจ์ด ๋ก์ง์ ์ ๋๋ก ์์ฑํ์ง ๋ชปํ๋ค๋ ์ ํธ๋ก ํ๋จํ๋ค๋ ๊ฒ์ด์๊ณ ํด๋น ๋๋ชฉ์์ ํ ์คํธ ์ฝ๋์ ์ค์์ฑ์ ๋๋ผ๊ฒ ๋์๋ค. ๋ค๋ง FE ์ธ์ ์ ํจ๋ ํ ํฌ๋ก ์กฐ๊ธ์ ๋ผ์ดํธํ๊ฒ ์งํ๋์๋๋ฐ ๊ทธ๋ผ.. 2024. 12. 15. Polyfill์ด๋? ์ต๊ทผ์ ์ ๊ท ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์งํํ๋ฉด์, EyeDropper API๋ฅผ ์ฌ์ฉ์ด ํ์ํ๋ค. ์ฌ์ฉ์๊ฐ ํ๋ฉด์ ํ์๋ ์์์ ์ ํํ๊ณ ๊ทธ ์ ๋ณด๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๊ฐ์ ธ์ฌ ์ ์๋ Web API ์ด์๋๋ฐ, ์์ง ๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ์์ ํด๋น API๋ฅผ ๊ณต์ ์ง์ํ์ง ์๊ฑฐ๋, ์ง์ ๋ฒ์๊ฐ ์ ํ์ ์ด๋ผ ํ๋ก์ ํธ์ ๋ฐ๋ก ์ ์ฉํ๋ ๋ฐ์๋ ๋ฌด๋ฆฌ๊ฐ ์์๋ค. ๐ฅฒ๐ฆ์ด๋ ํ์๋ถ์ด EyeDropper Polyfill ์ด ์๋ค๋ ๊ฒ์ ์๋ ค์ฃผ์ จ๋๋ฐ, Polyfill์ด ๋ฌด์์ธ์ง, ๊ทธ๋ฆฌ๊ณ EyeDropper Polyfill์ ์ด๋ป๊ฒ ๊ตฌํ๋์ด ์๋์ง ์ ๋ฆฌํ๊ณ ์ ํ๋ค.Polyfill์ด๋?Polyfill์ ์ฝ๊ฒ ๋งํด ์ต์ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฅ์ ์ง์ํ์ง ์๋ ๊ตฌํ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํด ๊ทธ ๊ธฐ๋ฅ์ ๋์ ๊ตฌํํด ์ฃผ๋ ‘์ฝ๋’์ด๋ค.์๋ฅผ ๋ค์ด, ES6์์ ์๋กญ๊ฒ ๋์ ๋ .. 2024. 12. 8. ๐ FSD (Feature-Slided Design) 1๏ธโฃ FSD ๊ตฌ์กฐFSD๋ ๋ ์ด์ด(Layers), ์ฌ๋ผ์ด์ค(Slices), ์ธ๊ทธ๋จผํธ(Segments)์ ๊ณ์ธต ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.1. ๋ ์ด์ด(Layers) => ํ๋ก์ ํธ ๊ธฐ๋ฅ์ ์ญํ ๋ ์ด์ด๋ ๋ชจ๋ FSD ํ๋ก์ ํธ์์ ํ์คํ๋ ๊ตฌ์กฐ๋ก ์ด 7๊ฐ์ ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋์ด ์๋ค.App - ์ฑ์ ์คํํ๋ ๋ชจ๋ ๊ฒ - ๋ผ์ฐํ , ์ง์ ์ , ์ ์ญ ์คํ์ผ, ํ๋ก๋ฐ์ด๋.Processes(๋ ์ด์ ์ฌ์ฉ๋์ง ์์) - ํ์ด์ง ๊ฐ ๋ณต์กํ ์๋๋ฆฌ์ค.Pages - ์ ์ฒด ํ์ด์ง ๋๋ ์ค์ฒฉ ๋ผ์ฐํ ์์ ํ์ด์ง์ ์ฃผ์ ๋ถ๋ถ.Widgets - ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ๋ ๋๊ท๋ชจ ๊ธฐ๋ฅ ๋๋ UI ์ปดํฌ๋ํธ, ๋ณดํต ํ๋์ ์์ ํ ๊ธฐ๋ฅ.Features - ์ ํ ์ ๋ฐ์ ๊ฑธ์ณ ์ฌ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ ๊ตฌํ์ฒด๋ก, ์ฌ์ฉ์์๊ฒ ์ค์ง์ ์ธ ๋น์ฆ๋์ค ๊ฐ์น๋ฅผ ์ ๊ณตํ๋ ๋์.Entitie.. 2024. 12. 1. ํ๋ก ํธ์๋์๊ฒ ๋ฐฐํฌํ๋ซํผ์ด๋ - 2024 ๋น๊ทผ ํ ํฌ ๋ฐ์ ๋น๊ทผ ํ ํฌ ๋ฐ์ ์์์ ๋ณด๊ณ ๋ด์ฉ ์์ฃผ๋ก ์ ๋ฆฌํ์์ต๋๋ค.๐ HTML์นํ์ด์ง์์ ๊ฐ์ฅ ์ค์ํ ์์๋ ๋ธ๋ผ์ฐ์ ์ ํ์๋๋ ๋ด์ฉ์ ๊ฒฐ์ ํ๋ HTML์ด๋ค.์ฌ์ฉ์๊ฐ ๋ก์ปฌ์์ HTML ํ์ผ์ ์ ๊ทผํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ง์ ์ด ์ ์์ง๋ง ๋ฆฌ๋ชจํธ ์๋ฒ์ ์๋ HTML์ ์ ๊ทผํ๊ธฐ ์ํด์๋ ๋ฆฌ๋ชจํธ URL๋ก ์ ๊ทผํด์ผ ํ๋ค. (* ๋ฆฌ๋ชจํธ URL : ์ธ๋ถ์ ์์นํ HTML์ ๊ฐ๋ฆฌํค๋ ๊ฒฝ๋ก)๋ก์ปฌ์์๋ ํ์ผ ํ๋กํ ์ฝ์ ํตํด HTML์ ์์ฒญ, ๋ฆฌ๋ชจํธ์์ ์ ๊ทผํ ๋๋ HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์์ฒญํ๋ค.(*ํ๋กํ ์ฝ: ์ปดํจํฐ์ ์ปดํจํฐ ์ฌ์ด, ๋๋ ํ ์ฅ์น์ ๋ค๋ฅธ ์ฅ์น ์ฌ์ด์์ ๋ฐ์ดํฐ๋ฅผ ์ํํ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ์ฌ ์ฝ์ํ ์ฌ๋ฌ ๊ฐ์ง ๊ท์ฝ)๐ฆ ๋ฐฐํฌ์ ์ ์ ๋ฐ ์ฑ๊ณต์ ์ธ ๋ฐฐํฌ์ ์กฐ๊ฑด๋ฐฐํฌ๋?1. ์ฌ์ฉ์์ ๊ฐ๋ฐ์๊ฐ ๋ง๋๋ ์ง์ .2. HTML ์์น๋ฅผ .. 2024. 11. 24. ๋์ผํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฌ์ฉํ๋ฉด์ ๋ ๋ฆฝ์ ์ธ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ ์ด์ ๊ธ์์ ์ปค์คํ ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํด ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํ์๋ค. ํด๋น ์ํฝ ๋ฒ๊ทธ๋ฐฐ์๋ฅผ ์งํํ๋ฉด์ ๋ฐ๊ฒฌํ ์ด์๋ก ๋์ผํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฌ์ฉํ๋ ์ํฉ์ด ๋ฐ์ํ๋ฉด์ ์ด๋ฒคํธ๊ฐ ๊ณ ์ ํ์ง ๋ชปํด ์ํ๊ฐ ๊ณต์ ๋๋ ์ด์๊ฐ ๋ฐ๊ฒฌ์ด ๋์๊ณ ์ด๋ฒคํธ ๋ค์ด๋ฐ์ ๊ณ ์ ํ ID๋ฅผ ์ถ๊ฐํด ์ค๋ณต ํธ์ถ์ ๋ฐฉ์งํ๋๋ก ์ถ๊ฐํ์๋ค.์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Zustand๋ฅผ ํ์ฉํ๋ค๋ฉด, ์ด์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ์ ์๋์ง ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค.1. createStore์ ์ฌ์ฉํด ๋ณด์zustand์ createStore๋ฅผ ์ฌ์ฉํ๋ฉด ์ปดํฌ๋ํธ๋ณ๋ก ๋ ๋ฆฝ์ ์ธ store๋ฅผ ์์ฑํ ์ ์๋ค๊ณ ํ๋ค.import { createStore, useStore } from "zustand";// ๋ ๋ฆฝ์ ์ธ store๋ฅผ ์์ฑํ๋ ํจ์function create.. 2024. 11. 17. CustomEvent ์ฌ์ฉํด์ ๋ ธ๋ ์ฐ๊ฒฐํ๊ธฐ ์ด๋ฒ์ ProseMirror์์ ๋ถ๋ชจ-์์ ๋ ธ๋ ๊ฐ์ ๋ฐ์ดํฐ ์ ๋ฌ ๋ฌธ์ ๋ก ์ด๋ ค์์ ๊ฒช๊ฒ ๋์๋๋ฐ, React ์ปดํฌ๋ํธ์์๋ ๋ถ๋ชจ๊ฐ ์์ ์ปดํฌ๋ํธ์ props๋ฅผ ํตํด ์ฝ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ณ , ๋ณ๊ฒฝ๋ Props์ ๋ฐ๋ผ ๋ฆฌ๋ ๋๋ง ๋๋ฉด์ ์ปดํฌ๋ํธ ์ํ๋ฅผ ์ฝ๊ฒ ๋ณ๊ฒฝํ ์ ์์ง๋ง, ProseMirror์์๋ ๋ถ๋ชจ์ ์ํ๊ฐ ๋ณ๊ฒฝ๋๋๋ผ๋ ์์ ๋ ธ๋๋ฅผ ๋ฆฌ๋ ๋๋งํ๊ธฐ ์ด๋ ค์, ์ํ๋ฅผ ์ํํ๊ฒ ๊ณต์ ํ๊ธฐ์๋ ํ๊ณ๊ฐ ์๋ค.์ ๋ฌธ์ ๋ฅผ ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ๊ธฐ ์ํด dispatchEvent ๋ฅผ ์ฌ์ฉํ์๋๋ฐ, dispatchEvent ๊ฐ ๋ฌด์์ธ์ง์ ๋ํด ๊ฐ๋จํ ์ ๋ฆฌํด ๋ณด์๋ค. ๐ค๐ CustomEvent1. ์์ฑํ๊ธฐCustomEvent๋ ์๋์ ๊ฐ์ ํํ๋ก ์์ฑํ ์ ์๋ค.const event = new CustomEvent('crush'.. 2024. 11. 10. ๐คจ lingui ์ด๋ฒ์ ํ์ฌ์์ https://lingui.dev/introduction ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ํ์ฌ ๋ค๊ตญ์ด ์์ ์ด ํ์ํ ํ๋ก์ ํธ์ ์ถ๊ฐํ๋ ์์ ์ ์งํ ์ค์ธ๋ฐ, ๋๋ ์ ์ ์์ ์ ํจ๊ป ์งํํ๊ฒ ๋๋ฉด์ ์๊ฒ ๋ lingui์ ๋ํด ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด ๋ณด์๋ค.1. Lingui ์ด๊ธฐ ์ค์ ๋จผ์ Lingui CLI์ ํ์ํ ํจํค์ง๋ฅผ ์ค์น๊ฐ ํ์ํ๋ฐ, @lingui/cli๋ CLI ๋๊ตฌ๋ก ๋ฉ์์ง ์ถ์ถ ๋ฐ ๋ฒ์ญ ๊ด๋ฆฌ๋ฅผ ๋๊ณ , @lingui/macro๋ ์ฝ๋๋ฅผ ๋ถ์ํ์ฌ ๋ฒ์ญ์ด ํ์ํ ํ ์คํธ๋ฅผ ์ธ์ํ๊ณ , @lingui/react๋ React์์ ์ฌ์ฉํ ์ปดํฌ๋ํธ๋ฅผ ์ ๊ณตํ๋ค.npm install @lingui/cli @lingui/macro @lingui/react๊ทธ๋ฆฌ๊ณ lingui.config.js๋ฅผ ์์ฑํด์ loca.. 2024. 11. 3. ๐จ React Dev Tools ์ ๋ํด ์์๋ณด์ ์์ฆ ๊ฐ๋ฐ์ผ์ ์ด ํฝ์ค๋์ด ์๋ ์ํฉ์ด ๋ง๋ค ๋ณด๋ ์ด์๊ฐ ๋ฐ์ํ์ ๋ ์ด์๋ฅผ ํ์ ํ๋ ๊ณผ์ ์ ์์ด์ ์ด๋ป๊ฒ ํ๋ฉด ํจ์จ์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์ด์๋ฅผ ํด๊ฒฐํ ์ ์์ ์ง์ ๋ํด ๊ณ ๋ฏผํ๊ฒ ๋์๋๋ฐ.. ๋ฌธ๋ ๋ด๊ฐ ๋๋ฒ๊น ์ ์ํ๋ ํธ์ด ์๋๋ผ๋ ์๊ฐ์ด ๋ค์๊ณ ..(์ฝ์๋ก๊ทธ๋ง ๋ ๋ค ๋ง์ด ์ฐ๋ ์ฌ๋ + debugger๊ฐ ํธํ์ง ์๋ ์ฌ๋ = ๋) React Dev Tools์ ์ ํ์ฉํด ๋ณด๊ธฐ ์ํด ๊ด๋ จ ๋ด์ฉ๋ค์ ์ฐพ์์ ์ฝ๊ณ ๊ฐ๋จํ ์ ๋ฆฌํด ๋ณด์๋ค! ๐ฅ React Dev Tools ์ ํฌ๊ฒ Components ํญ๊ณผ Profiler ํญ์ผ๋ก ๋๋์ด์ง๋๋ฐ, Components ํญ ์์๋ ํ์ฌ React ๊ตฌ์ฑ ์์ ํธ๋ฆฌ์ ๋ชจ๋ props, state ๋๋ context๋ฅผ ํ์ํ๊ณ , Profiler ํญ์์๋ ์ฌ์ฉํ๋ฉด ์ํธ ์์ฉ์ ๊ธฐ๋ก.. 2024. 10. 27. ์ด์ 1 2 3 4 5 6 ยทยทยท 9 ๋ค์