ํ์
๋ณ์นญ ํ์
๋ณ์นญ์ ์ด์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ณ์๋ฅผ ์ ์ธํ๋ฏ ํ์
์ ๋ณ๋๋ก ์ ์ํ ์ ์์ต๋๋ค. type ํ์
_์ด๋ฆ = ํ์
ํํ๋ก ํ์
์ ์ ์ํฉ๋๋ค. //ํ์
๋ณ์นญ type User = { id: number; name: string; nickname: string; birth: string; }; // ๊ฐ์ ์ค์ฝํ ๋ด์์๋ ์ค๋ณต์ ์ X function func(){ type User = { // ์ด ์ค์ฝํ ๋ด์์๋ User๋ฅผ ์ด๋ฐ์์ผ๋ก ์ ์, ๋ฐ์์๋ ์ ๋ฐ์์ผ๋ก ์ ์ } } let user: User ={ id: 1, name: "์ ์ง์", nickname:"Becky", birth: "1999.06.30", } let user2: User ={ id:2, name:"์ด๋์
", nickname: "์ด๋๊ณฐ..
์ ์ฒด ๊ธ
๐ฉ๐ป java, mysql, android, php, javascript๋ฅผ ๋ค๋ฃน๋๋คํ์
์คํฌ๋ฆฝํธ๋ ์ด๋ป๊ฒ ์คํ๋ ๊น? ์ ๋ฆฌํ์๋ฉด ํ์
์คํฌ๋ฆฝํธ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ ํ์
๊ฒ์ฌ๋ฅผ ๊ฑฐ์ณ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก ๋ณํ๋๋๋ฐ, ์ด๋ ๋ง์ฝ ์ฝ๋์ ์ค๋ฅ๊ฐ ์๋ค๋ฉด ์ปดํ์ผ ๋์ค ์คํจํ๊ฒ ๋๋ฏ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ณด๋ค ๋ ์์ ํ๊ฒ ์ฌ์ฉํ๋ ๋ฏธ๋ฆฌ ํ๋ฒ ์ฝ๋๋ฅผ ๊ฒ์ฌํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ค๊ณ ๋ณผ ์ ์๊ฒ ์ต๋๋ค~ ๊ธฐ๋ณธํ์
๊ธฐ๋ณธํ์
์ด๋ ํ์
์คํฌ๋ฆฝํธ๊ฐ ์์ฒด์ ์ผ๋ก ์ ๊ณตํ๋ ํ์
๋ค์ ๋งํฉ๋๋ค. (๋ด์ฅํ์
) ๋ค์ ๊ทธ๋ฆผ์ ํ์
์คํฌ๋ฆฝํธ๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ํ์
๋ค์ ๊ณ์ธต์ ๋ฐ๋ผ ๋ถ๋ฅํ "ํ์
๊ณ์ธต๋" ๊ทธ๋ฆผ์
๋๋ค ๊ทธ๋ฆผ์ ์์ธํ ๋ณด๋ฉด null, undefined,number,string ์ฒ๋ผ ์ฐ๋ฆฌ๊ฐ ํํ ์๊ณ ์๋ ํ์
๋ค๋ ์กด์ฌํ๊ณ ๊ทธ ์ธ์ any,void,never ๊ฐ์ ์ฒ์๋ณด๋ ํ์
๋ ์กด์ฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ํ์
๋ค์ ์๋ก ๋ถ๋ชจ, ์์ ๊ด๊ณ๋ฅผ ์ด๋ฃจ๋ฉด์..
ํ์
์์คํ
์ด๋? ์ธ์ด์์ ์ฌ์ฉํ ์ ์๋ ์์ฃผ ์ฌ๋ฌ๊ฐ์ง ๊ฐ๋ค์ ์ด๋ค ๊ธฐ์ค์ผ๋ก ๋ฌถ์ด์ ํ์
์ผ๋ก ์ ํ ์ง ๊ฒฐ์ ํ๊ณ ,๋ ์ฝ๋์ ํ์
์ ์ธ์ ๊ฒ์ฌํ ์ง ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ๊ฒ์ฌํ ์ง ๋ฑ ์ฐ๋ฆฌ๊ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ ๋ ํ์
๊ณผ ๊ด๋ จํ์ฌ ์ง์ผ์ผ ํ๋ ๊ท์น๋ค์ ๋ชจ์๋ ์ฒด๊ณ์
๋๋ค. ์ด ํ์
์์คํ
์ ํฌ๊ฒ ๋๊ฐ์ง๋ก ๋๋ ์ ์๋๋ฐ, ์ฒซ๋ฒ์งธ๋ ๋ชจ๋ ๋ณ์์ ํ์
์ ๊ณ ์ ์ ์ผ๋ก ๊ฒฐ์ ํ๋ ์ ์ ํ์
์์คํ
์ด์๊ณ , ๋๋จธ์ง ํ๋๋ ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ ์๋ ํ์
์ ๊ฒฐ์ ํ์ง ์๊ณ , ์ฝ๋๋ฅผ ์คํํ๊ณ ๋์ ๊ทธ๋๊ทธ๋ ๋ง๋ค ์ ๋์ ์ผ๋ก ๋ณ์์ ํ์
์ ๊ฒฐ์ ํ๋ ๋์ ํ์
์์คํ
์ด ์์ต๋๋ค ๋ณดํต C ๋ Java ๊ฐ์ ์๊ฒฉํ ๋ฌธ๋ฒ์ ๊ฐ์ง ์ธ์ด๋ค์ ๋น์ฐํ ์๊ฒฉํ ์ ์ ํ์
์์คํ
์ ์ฌ์ฉํ๊ณ ์๊ณ , ํ์ด์ฌ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ ์ ์ฐํ ๋ฌธ๋ฒ์ ๊ฐ์ง ์ธ์ด๋ค์ ๋์ ํ..
// ๊ตฌ์กฐ๋ถํดํ ๋น function solution(dot) { const [num,num2] = dot; const check = num * num2 > 0; return num > 0 ? (check ? 1 : 4) : (check ? 3 : 2); } function solution(num_list) { const [a, b] = [...num_list].reverse(); return [...num_list, a > b ? (a-b):a*2]; } //const [a, b]๋ [...num_list] ์ ์์ ์ค ์์๋๋ก a์ b์ ํ ๋นํ๋๊ตฌ๋ // ์ฝ๋ฐฑํจ์๋ฅผ ์์ฑํ ๋ {()=>{return A}} or (() => a) // {}๋ฅผ ์ฐ๋ฉด ๋ฐ๋์ return ์ ์จ์ค์ผ ํ๊ณ , ๋ง์ฝ {}๋ฅผ ์ฐ์ง์์ผ๋ฉด..
์ฝ๋์คํ
์ด์ธ ์์ ์๋กํ๋ก์ ํธ๋ก ์ผํ๋ชฐ์ ๋ง๋ค์๋ค 8์ผ๋์ ์ ๋ง ๊ณ ์์ ๋ง์ด ํ๋ค.. ์ฒ์์ react-router๋ฅผ ์ค์นํ ๋๋ถํฐ ์ค๋ฅ๊ฐ ๋ฌ์ผ๋,,, ํ๋ง๋๋ก ์ฒซ ํ๋ก์ ํธ๋ ์ค๋ฅ ๋ฒ๋ฒ
์ด์๋ค ๊ฐ๋ฐ์๋๋ ๋๋ ธ์ ๋ฟ๋๋ฌ, ๋ณด๊ธฐ์ข์ ์ฝ๋๋ฅผ ์์ฑํ ๊ฒ๋ ์๋์๋ค. ๋ถ๋งํฌ state๋ฅผ ์ ์ํ ์ต์์์ปดํฌ๋ํธ๋ฅผ ์๋ชป์ก์์, ์ค๊ฐ์ ์์ ์ปดํฌ๋ํธ props ์ฐ๊ฒฐ์ ๊ฐ์์๊ธฐ๋ ํ๋ค.. (์์ผ๋ก ๊ผญ ํ๋ก์ ํธ ๊ตฌ์กฐ๋๋ฅผ ์์ฑํด์ผ์ง!) ์ฐ์ฌ๊ณก์ ์ด ๋ง์์ง๋ง ์ด์ฐ์ ์ฐ ๊ทธ๋๋ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ค. ์ ๋ง ์น์ดํ๋, ๊ทธ๋ฆฌ๊ณ ์ด๋ ค์ ๋ 8์ผ์ด์์ง๋ง ๊ทธ๋งํผ ๋ฐฐ์ด๊ฒ ์ฐธ ๋ง๋ค. ๋ฌด์์ ๋ฐฐ์ฐ๊ณ ๊นจ๋ฌ์๋์ง, ๊ทธ๋ฆฌ๊ณ ์์ผ๋ก์ ๊ณต๋ถ๋ฐฉํฅ์ ์ด๋ป๊ฒ ์ก๋๊ฒ ์ข์์ง ์ ์ด๋ณด๊ฒ ๋ค ใ
ใ
๊ฐ๋ฐ ๋ฐฉ๋ฒ 1. ์๊ตฌ์ฌํญ๋ค์ ๋ฉ๋ชจ์ฅ์ ์ ์๋ค, ํ๋ฃจ๋์ ๊ฐ๋ฐํ ๊ธฐ๋ฅ์ ์ ๋๋ค 2...
์ด๋ฒ๊ณผ์ ๋? ์ด๋ฒ ๊ณผ์ ์์๋ Figma์์ ๋์์ธ๋ ์ปดํฌ๋ํธ๋ฅผ React ์ปดํฌ๋ํธ๋ก ๊ตฌํํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด, Figma์์ ์ถ์ถํ ๋์์ธ ํ ํฐ๊ณผ Styled Components์ ์ฌ์ฉํ์ฌ ์ผ๊ด๋ ๋์์ธ์ ์ ์งํ๊ณ , Storybook์ ์ฌ์ฉํ์ฌ ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ์ ๋ํ ๋ฌธ์ํ๋ฅผ ์งํํฉ๋๋ค. ์ด ๊ณผ์ ์ ํตํด ๋์์ธ ์์คํ
๊ตฌ์ถ ๋ฐ ์ฝ๋๋ก ๋์์ธ์ ๊ตฌํํ๋ ๊ฒฝํ์ ์์ ์ ์์ต๋๋ค. ์์
๋ด์ฉ์ด ๊ฑฐ์ ๋ฌธ์๋ก ์งํ๋์ ์ง์ง ์ดํด๊ฐ ์๋์๋ค ใ
ํ์ด๋ถ์ด ์ค๋ช
์ ๋ค์ ๋ค, ๋๋ง์ ์ธ์ด๋ก ์ ๋ฆฌํด๋ณด์๋ค! ํผ๊ทธ๋ง์์ ์ปดํฌ๋ํธ๋ฅผ ๋ณด๊ณ , ๋ฌ๋ผ์ง๋ ์์์ ๋ํ ํค์ ๊ฐ์ ๊ณ ๋ฏผํ๋ค ์ด๋ hover ๊ธฐ๋ฅ์ธ์ง, active ๊ธฐ๋ฅ์ธ์ง์ ๋ฐ๋ผ ์ธํ์ ๊ธฐ์ค์ด ๋ฌ๋ผ์ง๋ค (์ ๋ชจ๋ฅด๊ฒ ์ผ๋ฉด input.js ์ inputsories.js ๋ฅผ ..
Custom Hooks ๊ฐ๋ฐ์๊ฐ ์ค์ค๋ก ์ปค์คํ
ํ ํ
์ ์๋ฏธํฉ๋๋ค Custom Hooks์ ์ฝ๋ ์์ ๋ฐ๋ณต๋๋ ๋ก์ง์ ๋ฝ์๋ด์ด ์ฌ์ฌ์ฉ ํ๋ ๊ฒ์ ๋งํฉ๋๋ค ์ฌ๋ฌ url์ fetch ํ ๋, ์ฌ๋ฌ input์ ์ํ ์ํ๋ณ๊ฒฝ ๋ฑ ๋ฐ๋ณต๋๋ ๋ก์ง์ ๋์ผํ ํจ์์์ ์๋ํ๊ณ ์ถ์๋ ์ปค์คํ
ํ
์ ์ฌ์ฉํฉ๋๋ค (์ปค์คํ
ํ
๋ ์ผ์ข
์ ํจ์, ๋ค๋ง ์ผ๋ฐ ํจ์์ ๋ค๋ฅธ ์ ์ ์ปค์คํ
ํ
๋ด๋ถ์์ ๋ด์ฅ hook์ ๋ถ๋ฌ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ) ์๋์ ๋ ์ปดํฌ๋ํธ๋ ๋์ผํ ๋ก์ง์ ํฌํจํ๊ณ ์์ต๋๋ค //FriendStatus : ์น๊ตฌ๊ฐ online์ธ์ง offline์ธ์ง returnํ๋ ์ปดํฌ๋ํธ function FriendStatus(props) { // ๋์ผ๋ก์ง const [isOnline, setIsOnline] = useState(nul..
React.lazy() ์ Suspense๋ ์ฝ๋๋ถํ ๊ณผ ์ง์ฐ๋ ์ปดํฌ๋ํธ ๋ก๋ฉ์ ๊ฐํธํ๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค. ์ฝ๋๋ถํ ๊ณผ ์ง์ฐ๋ ์ปดํฌ๋ํธ ๋ก๋ฉ์ ์ด๊ธฐ์๊ฐ์ด ๊ฐ์, ์ฑ๋ฅํฅ์ ๋ฑ์ ์ฅ์ ์ด ์์ต๋๋ค. ์ฝ๋๋ถํ ์ ๋ฌด์์ผ๊น? React์์ ์ฝ๋ ๋ถํ ํ๋ ๋ฐฉ๋ฒ์ dynamic import(๋์ ๋ถ๋ฌ์ค๊ธฐ)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. React ์์์ ์ฝ๋๋ถํ form.addEventListener("submit", e => { e.preventDefault(); /* ๋์ ๋ถ๋ฌ์ค๊ธฐ๋ ์ด๋ฐ ์์ผ๋ก ์ฝ๋์ ์ค๊ฐ์ ๋ถ๋ฌ์ฌ ์ ์๊ฒ ๋ฉ๋๋ค. */ import('library.moduleA') .then(module => module.default) .then(someFunction()) .catch(handleError()); }..