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 ..
๋ฌธ์ ํธ๋ฆฌ๊ตฌ์กฐ ๋ฐ์ดํฐ interface Data { id: string; children: Data[]; } export const data: Data = { id: "์์1", children: [ { id: "ํ์1", children: [ { id: "ํ์1-1", children: [{ id: "ํ์1-1-1", children: [] }] }, { id: "ํ์1-2", children: [] }, ], }, { id: "ํ์2", children: [] }, ], }; ํ์ฌ ํด๋ฆญํ๋ ์์ดํ
์ id๋ ์ํ๊ฐ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์๋ค. ํด๋น ์์ดํ
์ ๋๋ฅด๋ฉด id ์ํ๊ฐ์ด ๋ฐ๋ก ๋ณ๊ฒฝ๋๋ค. const [currentId, setCurrentId] = useState(data.id); ๊ทธ ๋ณ๊ฒฝ๋ id๋ฅผ ๊ฐ์ง๊ณ ..
ํ์ฌ 1์ฐจ ํ๋ก์ ํธ ๊ฐ๋ฐ ๋ง๊ฐ์, ๋ฐฉํต๋ ๊ธฐ๋ง๊ณ ์ฌ์ ~ ๊ฝค๋ ๋ฐ์ 12์์ ๋ณด๋๋ค. ์ํ์ 12์ 10์ผ์ ๋๋ฌ๋๋ฐ.. ์์ฐ์ด ๊ฑฐ์ ์ฐ๋ง ๊ฐ๊น์ด์ธ 12์ 20์ผ์ ์กํ์์ด ๊ทธ๋๊น์ง ์กฐ๊ธ ํ๋ค์๋ ๋๋์ด ์์๋ค. ์ํ ๋ฐ ์์ฐ์ด ๋๋๊ณ ๋ ์ข ๋๋ํ๊ฒ ๊ฐ๋ฐํ๋๋ฐ, ์ฐ๋ง๊น์ง ๋งจ๋ ํ์ฌ๋ฅผ ๊ฐ์์ธ์ง ๋ชฉ/์ด๊นจ ํต์ฆ์ด ์ง์๋์ด์ ๊ทธ๋ฌ๋์ง ์๋์ง๊ฐ ์๋ ๋๋... ๋ด ๊ฐ์ธ์๊ฐ์๋ ๊ฐ๋ฐ๊ณต๋ถ๋ ํ์ง ์๊ณ ๊ฑฐ์ ์ฌ๋ ์๊ฐ์ ๊ฐ์ก๋ ๊ฒ ๊ฐ๋ค. ๊ทผ๋ฐ๋ ํ์ฌ๋ฅผ ๋งจ๋ ๋๊ฐ๋ ๋ญ๊ฐ ์ถฉ๋ถํ ์ฌ์ง ๋ชปํ ๋๋์ด ๊ณ์ ๋ค์๋ค.ใ
์งง๊ฒ ํด๊ฐ๋ฅผ ๋ด๊ณ 12์ ํ๊ณ ๋ฅผ 1์ ์ค์์ด ๋์ด์ ์ด์ ์์ผ ์ ๋๋ก ๋ฐํํ๋ค~ ํ์ฌ ์
๋ฌด - ํ์๊ฐ์
, ๋ง์ดํ์ด์ง ๊ฐ๋ฐ ๊ณตํต์ผ๋ก ์ฌ์ฉ๋๋ ํ์๊ฐ์
, ๋ง์ดํ์ด์ง ์ธ์ฆ ๊ด๋ จ ํ์ด์ง๋ฅผ ๋ง๋ค์๋ค. ํ์ฌ์ ์๋น์ค๊ฐ 3๊ฐ๋ก ..
์ด์์ฌํญ postTokenQuery(token) .then((res) => { console.log(res, '์ฟผ๋ฆฌ res'); if (res.data) { setTokenInStorage(token); } }) .catch(() => toast.error('ํ ํฐ ์๋ฌ ๋ฐ์')); //์๋ฒ ์๋ต ์คํจ์ ์คํ ์๋จ rtk query ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด์ ์๋ฒ์ ํต์ ํ๋๋ฐ ์๋ฒ์์ ๋ณด๋ด์ฃผ๋ ์๋ต์ ๋ฐ๋ผ ์ฑ๊ณตํ๋ฉด? .then ์ผ๋ก ํน์ ๋ก์ง์ ์คํํ๊ณ ์คํจํ๋ฉด? .catch ๋ก ํ ์คํธ๋ฅผ ๋์ฐ๋ ๋ก์ง์ด๋ค. ๊ทธ๋ฐ๋ฐ ์๋ฒ์ ์๋ต์ ์คํจํด๋, catch ๋ฌธ์ผ๋ก ๋์ด๊ฐ์ง ์๊ณ , then์์ ๊ฑธ๋ ค res ์๋ต์ ์ฝ์์ ๋์ฐ๋ ์ด์ํ ์ ์ด ๋ฐ๊ฒฌ๋์๋ค. ์ฑ๊ณต์ {data: {โฆ}} ๊ฐ ์ฝ์์ ์ฐํ๊ณ , ์คํจ์ {error: ..
ํด๋ผ์ด์ธํธ ๋จ์์ http ๋น๋๊ธฐ ํต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก axios๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์๋ฒ์ ์์ฒญํ๋๋ฐ ์๊พธ ์๋ฒ์์ ์๋ฌ๊ฐ ๋ฌ๋ค. API ์์ฒญ ํ์์ ์๋์ ๊ฐ๋ค. ์์ฒญ ๋ฉ์๋๋ POST ์์ฒญ ๋ฐ๋๋ ์๋ฌด๋ฐ ๋ฐ์ดํฐ๋ ๋ฃ์ง ์์์ผํจ ์์ฒญ ํค๋์ ์์ฒญ ํ๋ผ๋ฉํฐ ๊ฐ์ผ๋ก๋ง ์๋ฒ์ ์์ฒญ ๋คํธ์ํฌ ํญ์์ ํ์ธํด๋ณด๋, ํค๋์ ํ๋ผ๋ฏธํฐ๋ก ์ ์์ฒญ์ด๊ฐ์ง ์๊ณ , payload ๋ฐ๋์ ํค๋์ ํ๋ผ๋ฏธํฐ๋ก ์ ์ด์ค ๊ฐ์ฒด๊ฐ ์์ฒญ ๋ฐ๋๋ก ๋ณด๋ด์ ธ์ ์ค๋ฅ๊ฐ ๋๋ ๊ฒ์ผ๋ก ํ์ธ์ด ๋์๋ค. ๊ธฐ์กด ์ฝ๋ axios.post( 'url', { headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, params: { transactionId, email, pageUri: 'http://192..
'๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ' ์นดํ
๊ณ ๋ฆฌ์ ๊ธ ๋ชฉ๋ก (6 Page)
๋จ์ถํค
๋ด ๋ธ๋ก๊ทธ
๋ด ๋ธ๋ก๊ทธ - ๊ด๋ฆฌ์ ํ ์ ํ |
Q
Q
|
์ ๊ธ ์ฐ๊ธฐ |
W
W
|
๋ธ๋ก๊ทธ ๊ฒ์๊ธ
๊ธ ์์ (๊ถํ ์๋ ๊ฒฝ์ฐ) |
E
E
|
๋๊ธ ์์ญ์ผ๋ก ์ด๋ |
C
C
|
๋ชจ๋ ์์ญ
์ด ํ์ด์ง์ URL ๋ณต์ฌ |
S
S
|
๋งจ ์๋ก ์ด๋ |
T
T
|
ํฐ์คํ ๋ฆฌ ํ ์ด๋ |
H
H
|
๋จ์ถํค ์๋ด |
Shift + /
โง + /
|
* ๋จ์ถํค๋ ํ๊ธ/์๋ฌธ ๋์๋ฌธ์๋ก ์ด์ฉ ๊ฐ๋ฅํ๋ฉฐ, ํฐ์คํ ๋ฆฌ ๊ธฐ๋ณธ ๋๋ฉ์ธ์์๋ง ๋์ํฉ๋๋ค.