์ฌ๊ฑด์ ๋ฐ๋จ ์๋ ํฐ์คํ ๋ฆฌ์์ ์ ๊ณตํด์ฃผ๋ ๊ธฐ๋ณธ ์คํจ ์ค ๊ฐ์ฅ ์ฌํํ๊ณ ๋ง์ ๋๋ ์ ๋ก ๊ณจ๋ผ์ ์ฝ๊ฐ์ ์ปค์คํฐ๋ง์ด์ฆ๋ฅผ ํด์ ์ฌ์ฉํ์๋ค. ๊ทธ๋ฐ๋ฐ ๊ธ์ ์ธ๋๋ง๋ค bullet point ๊ฐ๊ฒฉ์ด ์ ๋ฉ๋๋ก์ + ํ
์คํธ ์ค ๊ฐ๊ฒฉ ์ฌ์ด๊ฐ ๋๋ฌด ๊ฐ๊น์ ๊ฐ๋
์ฑ์ด ๋งค์ฐ ๋งค์ฐ ์ ์ข์๋ค. ๋ ์ด์ํ๊ฒ ํฐํธํฌ๊ธฐ๋ฅผ ์ ๋ชฉ์ผ๋ก ์ค์ ํ๋ฉด ์ค ๊ฐ๊ฒฉ์ด ์ด๋ค ๊ณณ์ ์์ฒญ ํฌ๊ณ ์ด๋๋ ์์ ์ค๊ฐ๊ฒฉ์ด ์์๊ธฐ๊ณ ... ๋ธ๋ก๊น
ํ๋๋ฐ ์ฌ๋ฆฌ๊ธฐ ์ ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ก ๋ฐฑ๋ง๋ฒ ์ด์๋ค ๋ซ์๋ค ์ฌ๋ฆฌ๊ธฐ ์ ์ ๋น๊ตํด์ ๋ณด๋ค๋ณด๋ ์ฌ์ฌ ์ฐธ์ ์ ์๋ ์ง๊ฒฝ์ด์๋ค. ๊ทธ๋์ ์ ๋ง๋ค์ด์ง ์คํ ์์ค ์คํจ์ ๋์
ํ๊ธฐ๋ก ๋ง์๋จน์๋ค..!! ๊ธฐ์กด ์คํจ์์ ์ธ๋ผ์ธ ์ฝ๋๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ๊ฝค๋ ์ ๋ช
ํ hELLO ์คํจ์ ๊ฐ์ ธ๋ค ์ ์ฉํ๋๋ฐ.. ๋ฌธ์ ๊ฐ ํ ๊ฐ์ง ์์๋ค. ์ด ์คํจ์ ์ ..
์ ์ฒด ๊ธ
ํ๋ก์ ํธ ํด๋๊ตฌ์กฐ ๐ฆpublic โฃ ๐policy โ โ ๐service.html ๐ฆsrc โฃ ๐App.tsx โฃ ๐assets โ โฃ ๐fonts โฃ ๐components โฃ ๐containers โ ... ์๋ํ ๋ฐฉ๋ฒ 1. vite.config.ts ํ์ผ์ html ๊ฒฝ๋ก ์ง์ โ https://ko.vitejs.dev/guide/build.html#multi-page-app build: { rollupOptions: { input: { main: resolve(__dirname, 'index.html'), public: resolve(__dirname, 'public/policy/service.html'), }, }, }, 2. iframe ์์ src ๋ก ๋์ฐ๊ธฐ https://ko.vitejs.de..
JavaScript const string = 'dcba' console.log(string.split('').sort().join('')) //'abcd' ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ๋ ฌ์ ํ๊ณ ์ถ์ผ๋ฉด `sort()`๋ฅผ ํ์ฉํ๋ค. ํ์ง๋ง, `sort()` ๋ฉ์๋๋ `๋ฐฐ์ด ์๋ฃํ๋ง ์ ๋ ฌ์ด ๊ฐ๋ฅ`ํ๋ค. ๋ฐ๋ผ์, ๋ฌธ์์ด์ ์ ๋ ฌํ๊ณ ์ถ์ผ๋ฉด ์ฐ์ ๊ทธ ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํด์ค์ผ ํ๋ค. 1. `split()` ๋ฉ์๋๋ก ๋จผ์ ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ค๋ค. split์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ `split(separator)`์ผ๋ก, separator ๊ธฐ์ค์ผ๋ก ์ด๋ป๊ฒ ๋ฐฐ์ด์ ๋๋๊ฑด์ง ์ ํด์ค ์ ์๋๋ฐ, `string.split('')`์ผ๋ก ์ ์ด์ค๋ค๋ฉด string์ธ 'dcba'๋ฅผ ' ํ ์ ํ ์ ๋ถ๋ฆฌํ๋ค, ์ชผ๊ฐ ๋ค๋ ์๋ฏธ๊ฐ ๋๋ค. 2. ์ด์ ๋ฐฐ์ด..
python์์ ์ ๋ ฌํ๊ณ ์ถ์ ๋ ํ์ด์ฌ ๋ด์ฅ ๋ฉ์๋์ `sort()`์ `sorted()`๋ฅผ ํ์ฉํ ์ ์๋ค. ํ์ด์ฌ ์ ๋ ฌ ๋ฉ์๋`sort()`๋ listํ ์๋ฃ๊ตฌ์กฐ์๋ง ์ฌ์ฉ๊ฐ๋ฅํ๋ค๋ฉด, `sorted()`๋ ์๋์ ๊ฐ์ด ๋ฆฌ์คํธํ, ๋ฌธ์ํ, ํํํ๊ณผ ๊ฐ์ ์ดํฐ๋ฌ๋ธํ ์๋ฃ๊ตฌ์กฐ์ ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. ๋ฆฌ์คํธ sort() ๋ฉ์๋my_numbers = [2,5,6,1,8,3]my_numbers.sort()print(my_numbers) #[1, 2, 3, 5, 6, 8] sorted() ํจ์์ ๋ ฌํ๊ณ ์ํ๋ iterable์ ์ฒซ๋ฒ์งธ ์ธ์๋ก ์ ์ด์ค๋คlist = [5, 4, 3, 2, 1]print(sorted(list)) #[1, 2, 3, 4, 5]string = 'abcd'print(sorted(string)) ..
Form์ ์ ์ฅํ ๋ ํ์ํ input ์ํ๊ฐ์ object ํ์
์ผ๋ก ํ๋ฒ์ ๊ด๋ฆฌํ๊ณ , ๊ฐ input ๊ฐ์ด ๋ณ๋๋ ๋๋ง๋ค ์์ ๋ถ๋ชจ์์ handleChange ํจ์๋ฅผ ํธ์ถํ์ฌ form ์ํ๊ฐ์ ์ผ๊ด์ ์ผ๋ก ๊ด๋ฆฌํ๋ค. ์์ ๋ถ๋ชจ๋ ์ํ๊ฐ ๊ด๋ฆฌ ๋ฐ ๋น์ฆ๋์ค ๋ก์ง์ ๋ด๋นํ๊ณ , ํ์ ์ปดํฌ๋ํธ๋ ์์์์ ์ํ๊ฐ์ ๋ฐ์ ui ๋ง ๊ทธ๋ฆด ์ ์๋๋ก ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ์๋ค. ๊ธฐ๋ณธ์ ์ธ ์ค๊ณ๋ ์์ ์ค๋ช
๊ณผ ๊ฐ์ด ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํ๋ ค๊ณ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํ๋๋ฐ ์ด์ ์ ๋ง์ถ์๋๋ฐ, ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ์์๋ค. ์์ ๋ถ๋ชจ ์ปดํฌ๋ํธ export const Form = () => { const initialFormValue: Info = { name: '', location: { address: '', detailAddress: '', zipCode..
์ค์๊ฐ ๊ฒ์์ด ์๋์์ฑ ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํ๋๋ฐ, ๊ธฐ์กด์ ์ฝ๋๋ ๊ฒ์์ด input ๊ฐ์ด ๋ฐ๋๋๋ง๋ค ์๋ฒ์ api๋ฅผ ํธ์ถํ๋ค. ์ฑ๋ฅ ๊ฐ์ ์ ์ํด debounce๋ผ๋ ๊ฐ๋
์ ์ฝ๋์ ์๋ก ์ ์ฉํด๋ณด์๋ค. debounce๊ฐ ์ด๋ค ๊ฐ๋
์ด๋ฉฐ ์ด๊ฑธ react ์ฝ๋๋ก ์ด๋ป๊ฒ ์ ์ฉํ ์ ์๋์ง ์์๋ณธ๋ค. ๊ธฐ์กด ๊ฒ์ ์ปดํฌ๋ํธ useEffect(() => { getLazySearchList(); //api ํธ์ถ }, [searchInputValue]); setSearchInputValue(e.target.value) } /> ์ ์ฝ๋์์๋ useState hook์ผ๋ก ๊ด๋ฆฌํ๊ณ ์๋ searchInputValue๊ฐ ๋ฐ๋๋๋ง๋ค ์๋ฒ์ ์์ฒญ์ ๋ณด๋ธ๋ค. ์ง๊ธ ์์ ์ฌ์ง์์ ๋ณด๋ฏ์ด ๊ฒ์์ฐฝ์ ์ ์ ๊ฐ ์๋ ์ฒ๋ผ ์
๋ ฅํ๋ฉด ใฑ > ๊ทธ > ๊ธ >..
์๋ก ๊ธฐ๋ณธ์ ์ธ Form ์ปดํฌ๋ํธ๊ฐ ์๋๋ฐ, ์ด๋ฆ, ์ฃผ์, ํธ๋ํฐ ๋ฒํธ๋ฅผ input์ผ๋ก ๋ฐ์ ์ ์๊ณ , ์ ์ฅ๋ฒํผ์ ๋๋ฅด๋ฉด input ์ ๋ณด๊ฐ ์ ์ฅ๋๋ค. ์ด Form ์ปดํฌ๋ํธ๋ ์์ฑ์, ์์ ์ ์ฌ์ฌ์ฉํ ์ ์๋ ์ปดํฌ๋ํธ์ด๋ค. ์์ฑ์๊ธฐ๋ณธ input ์ด๊ธฐ ์ํ๊ฐ์ด ๋น string์ ๊ฐ์ง๋ค.์ ์ฅ ์ด๋ฒคํธ ๋ฐ์์ input ๋ฐ์ดํฐ ๊ฐ์ ๋ชจ์์ ์์ฑ์์ฒญ์ ๋ณด๋ด๋ ํจ์์ธ onCreateInfo๋ผ๋ ํจ์๋ฅผ ํธ์ถํ๋ค. ์์ ์์์ ์ปดํฌ๋ํธ์์ ์ ๋ฌ ๋ฐ์ ๋ฐ์ดํฐ value๊ฐ์ ์ด๊ธฐ๊ฐ์ผ๋ก ๊ฐ์ง๋ค. ์ ์ฅ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด input ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์์ ์์ฒญ์ ๋ณด๋ด๋ onEditInfo๋ผ๋ ํจ์๋ฅผ ํธ์ถํ๋ค. interface Props { data?: Data; //์์ ์์๋ง ์กด์ฌ onCreateInfo?: (inputs: ..
๋ชจ๋
ธ๋ ํฌ ๋์
์ง๊ธ ํ์ฌ ํ๋ฐํธ ํ์ ํ๋ก์ ํธ๋ ์๋๋ ๋๋ฉ์ธ ๋ฉ๋ด๋ณ๋ก ๋๋์ด์ ๋ฉํฐ๋ ํฌ Multi repo ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐ์ ํ์๋ค. ์ฆ ๊ฐ๋ฐ์๋ง๋ค ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํ๋ํ๋ ๋ฐ๋ก ๊ด๋ฆฌํด์ ๊ฐ๋ฐํ์๊ณ , ํ์๋ผ๋ฆฌ ๋๊ฐ์ ui๋ฅผ ๊ฐ๋ฐํ๋ค๊ณ ํ์ฌ๋ ์ ์ฅ์๊ฐ์ ์ปจํ
์คํธ ๊ณต์ ๊ฐ ์ด๋ ค์์ ๊ฐ๊ฐ์ธ ๊ฐ์๊ฐ ๊ด๋ฆฌํ๋ ๋ ํฌ์งํ ๋ฆฌ ๋ด๋ถ์์ ๋๊ฐ์ ui๋ฅผ ์ค๋ณตํด์ ๊ฐ๋ฐํ๊ธฐ๋ ํ๋ค. ๊ทธ๋ฐ๋ฐ ์ด์ ์ฌ๋ฌ๊ณณ์์ ์ค๋ณต์ผ๋ก ์ฌ์ฉํ๋ ์ฝ๋๋ฅผ ๊ณต์ ํด์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ ํ๋์ ์ฝ๋๋ฒ ์ด์ค์์ ๋ชจ๋ ํ๋ก์ ํธ์ ์ฝ๋์ ์์์ ๊ด๋ฆฌํ์ฌ ์๋ก์ ๊ด๊ณ์ ์์กด์ฑ์ ์ฝ๊ฒ ํ์
ํ ์ ์๋๋ก ๋ชจ๋
ธ๋ ํฌ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ค. ๋ชจ๋
ธ๋ ํฌ ํ๊ฒฝ์์ ์ฒ์ ๊ฐ๋ฐํ๋ฉด์ ํ๋ก์ ํธ ์คํ์ด ์๋ ๋๊ฐ ์์๋๋ฐ ์ด๋ ๋ง์ฃผํ ์๋ฌ๋ฅผ ์ ๋ฆฌํ๋ค. Monorepo ๋น๋ ๋๊ตฌ Turborepo ..