Today, What I learned? ํ์ ์คํฌ๋ฆฝํธ๋ก ๊ธฐ์กด ํ๋ก์ ํธ๋ฅผ ๋ฆฌํฉํ ๋งํ๋ ๊ฒ์ด ์๋๋ผ ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ ๊ธ๋ก ๋จ๊ฒจ๋ณด๋ ค๊ณ ํ๋ค. ํ๋ก์ ํธ ์์ฑ CRA๋ฅผ ํตํด ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์์ํ๋ค. npx create-react-app ํ๋ก์ ํธ๋ช --template typescript ์ด ๋ --template์ ๊ผญ ๋ฃ์ด์ฃผ์ด์ผ ์ฒ์๋ถํฐ ํ์ ์คํฌ๋ฆฝํธ๋ก ํ์ผ๋ค์ด ์คํ๋๋ค. --template์์ด typescript๋ง ๋ฃ์ ๊ฒฝ์ฐ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ๋ก CRA๊ฐ ๋์ด์ ๋ค์ ํ๋ก์ ํธ๋ฅผ ์์ฑํด์ผ ํ ์ ์๋ค. ์ ์์ ์ผ๋ก ๋ช ๋ น์ด๊ฐ ์คํ๋์๋ค๋ฉด ์ด๋ ๊ฒ ts, tsx๋ก ํ์ผ๋ค์ด ๋ง๋ค์ด์ ธ ์๊ณ , tsconfig.json๊น์ง ๊ธฐ๋ณธ์ ์ผ๋ก ํฌํจ๋์ด ์์ ๊ฒ์ด๋ค. react-app-env.d.ts ? ์ผ๋ฐ์ ์ธ ๋ฆฌ์ก..
Today, What I learned? ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ตํ๋ฉด์ ์๊ฐ๋ณด๋ค ์ฝ์ง ์์์ ๋ง์ด ๋๋ผ๋ ์ค..! ํนํ ํท๊ฐ๋ฆฌ๋ ๋ช๋ช ๊ฐ๋ ์ ์ข ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค. JS์ TS ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋์ ํ์ . ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋, ์ฆ ๋ฐํ์์ ๋ณ์์ ํ์ ์ด ๊ฒฐ์ ๋๋ค. ๋ฐ๋๋ก ํ์ ์คํฌ๋ฆฝํธ๋ ์ ์ ํ์ . ์ปดํ์ผ ํ์์ ๋ณ์์ ํ์ ์ด ๊ฒฐ์ ๋๋ค. ์ด๊ฒ์ ์ฆ ํ๋ก์ ํธ๊ฐ ์คํ๋๊ธฐ ์ ์ ๋ฏธ๋ฆฌ IDE์์ ๋ฐ์ํ ์ค๋ฅ๋ฅผ ์ ์ ์๋ค๋ ๊ฒ! any ํ์ any ํ์ ์ ๋ชจ๋ ํ์ ์ ํฌํจํ๋ ํ์ ์ด๋ค. (์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๋ณ์๋ any ํ์ ์ด๋ผ๊ณ ํ ์ ์๋ค.) ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก์ ํธ๋ฅผ ํ์ ์คํฌ๋ฆฝํธ๋ก ๋ฆฌํฉํ ๋งํ๋ ๊ฒฝ์ฐ ์์๋ก ์ฌ์ฉํ๋ฉฐ ์ ์ง์ ์ผ๋ก ํ์ ์ ์ฐจ์ฐจ ๋ฐ๊ฟ๋๊ฐ ๋ ์ ์ฉํ๋ค. ํ์ง๋ง ๋ชจ๋ ํ์ ์ ํฌํจํ๋ค๊ณ ํด์ ๋ฌด๋ถ๋ณํ๊ฒ ์ฌ์ฉํ๋ฉด ํ์ ์ค..
Today What I learned? ์ด์ ์ ์ด์ด ๋ฆฌ๋์ค ํดํท ํฌ๋๋ฆฌ์คํธ๋ฅผ ํ์ ์คํฌ๋ฆฝํธ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ฉฐ ํด๊ฒฐํ ๋ง์ ์ค๋ฅ๋ค์ ๊ธฐ๋กํด ๋ณธ๋ค..!! ์ด์ฐ์ด์ฐ ๋ชจ๋ ์๋ฌ๋ฅผ ํด๊ฒฐํ๊ณ ์ ์ ์๋์ด ๋๊ณ ์๋ค.. ๐ฅบ ๐ง ๋ฒํผ ์ปดํฌ๋ํธ์์ ๋ฐ์ํ ์ค๋ฅ ํด๊ฒฐ Type '' is missing the following properites from type ~~ Type '' is missing the following properites from type ~~ ์๋ง ๋ด๋ ๋ฒํผ ์ปดํฌ๋ํธ์ ๋ค๋ฅธ ํจ์ props๊ฐ ์๋ค๋ ์๊ธฐ ๊ฐ๋ค. ๊ธฐ์กด ์ฝ๋๋ ์ ํจ์๋ค ์ค ํ๋๋ง ๋ฃ์ด์ฃผ์ด ๋ฒํผ ์ปดํฌ๋ํธ๋ฅผ ๊ณตํต์ผ๋ก ์ฐ๊ณ ์๋ ์ํ์๊ธฐ ๋๋ฌธ์ ๊ผญ ๋ชจ๋ ํจ์ props๋ฅผ ๋ฐ์ ํ์๊ฐ ์์๋ค. ๊ทธ๋ ๋ค๋ฉด ์ ํ์ ์ผ๋ก ๋ค์ด๊ฐ์ผ ํ๋ ํ์ ์์ฑ์..
Today, What I learned? ์ผ์ฐจ์ ์ผ๋ก ํฌ๋๋ฆฌ์คํธ๋ฅผ redux-toolkit์ผ๋ก ๋ฆฌํฉํ ๋ง ํ ํ์ ๋ณธ๊ฒฉ์ ์ผ๋ก ํ์ ์คํฌ๋ฆฝํธ๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ค์ด๊ฐ๋ฉฐ ๋ง๋๊ฒ ๋ ์ค๋ฅ๋ค์ ๊ธฐ๋กํด๋ณธ๋ค. ์๋ฌ๊ฐ ๊ผฌ๋ฆฌ์ ๊ผฌ๋ฆฌ๋ฅผ ๋ฌผ๊ณ ๋ฐ์ํด์ ๋ชจ๋ ์๋ฌ๊ฐ ์์ ํด๊ฒฐ๋ ๊ฒ์ ์๋๊ณ ํ์ฌ ์งํํ์ด๋ค.. ๐ ๋ด์ผ์ฏค์ ๋ค ์์ฑํ๊ธฐ ์์๊น!.. ๐ง useRef()์ focus ๊ด๋ จ ์๋ฌ Property 'focus' does not exist on type 'string' Property 'focus' does not exist on type 'string' useRef()์ ํ์ ์ด ์ ๋๋ก ์ ํด์ ธ์์ง ์์ ๋ฐ์ํ ์๋ฌ.. ์ฐพ์๋ณด๋ useRef๋ฅผ DOM ์กฐ์ ์ฉ๋๋ก ์ฌ์ฉํ๋ ค๋ฉด ์๋์ ๊ฐ์ด HTMLํ๊ทธ๋ฅผ ์ง์ ํด์ค์ผ ํ๋ค๊ณ .. ์ง์ญ๋ณ..
Today, What I learned? ๊ธฐ์กด ํ๋ก์ ํธ์ ํ์ ์คํฌ๋ฆฝํธ ๋ฆฌํฉํ ๋ง์ ์๋ํ๊ธฐ ์์, ํผ์ ํ๋ ํฌ๋๋ฆฌ์คํธ ํ๋ก์ ํธ๋ฅผ ํ์ ์คํฌ๋ฆฝํธ๋ก ๋ฆฌํฉํ ๋ง ํด๋ณด๊ธฐ๋ก ํ๋ค. ๋จผ์ ๊ธฐ์กด ํ๋ก์ ํธ๋ ๋ฆฌ๋์ค์ ๋ผ์ฐํฐ๋ฅผ ์ด์ฉํด์ ํ์ด์ง ์ด๋๊ณผ CRUD๊ฐ ์ ์ฉ๋์ด ์๋ ํฌ๋๋ฆฌ์คํธ์๋ค. ๊ธฐ๋ณธ ๋ฆฌ๋์ค๊ฐ ์ ์ฉ๋์ด ์์๊ธฐ ๋๋ฌธ์ ๋จผ์ redux-toolkit์ผ๋ก ๋ฆฌํฉํ ๋ง ํด์ค ํ ๋ณธ๊ฒฉ์ ์ธ ํ์ ์คํฌ๋ฆฝํธ ์ ์ฉ ์์!.. ํจํค์ง ์ค์นํ๊ธฐ ๋จผ์ ํ์ ์คํฌ๋ฆฝํธ์ ๊ด๋ จ๋ ํจํค์ง๋ค์ ์ค์นํด ์ฃผ์๋ค. ํ์ ์คํฌ๋ฆฝํธ ๊ณต์๋ฌธ์์์ ๋ณด๊ณ ํจํค์ง๋ฅผ ์ค์นํ ํ์, https://www.typescriptlang.org/download How to set up TypeScript Add TypeScript to your project, or instal..
Today, What I learned? ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ๋ฒํผ์ ํด๋ฆญํ ๋๋ง๋ค ๋ฎค์ง์ปฌ์ ์์ธ ์ค๋ช ์ด๋ฏธ์ง๊ฐ ์ ๊ณ ํผ์ณ์ง๋ ๋ถ๋ถ์ด ํ์ํ๋ค. collapsible view ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์๋ ๋ฏํ์ง๋ง, ๊ฐ๋จํ๊ฒ ๊ตฌํํ๊ณ ์ถ์ด์ state๋ฅผ ์ด์ฉํ๋ค. ์ด ๊ณผ์ ์์ ๊ฒช์๋ ์ํ์ฐฉ์ค๋ฅผ ์ ๋ฆฌํด๋ณธ๋ค. ์ ํ, ํผ์นจ ๋ฒํผ ์ ๊ณ ํผ์ณ์ง๋ ๋ถ๋ถ์ ํ์๋ถ์ด state๋ก ์ ๊ตฌํํด ์ฃผ์ จ๋ค. const [isMoreButton, setMoreButton] = useState(false); isMoreButton์ ๋ฐ๋ผ์ ์ด๋ฏธ์ง๊ฐ ๋ค์ด๊ฐ๋ ์์ญ์ด ๋ณด์ด๊ณ ๊ฐ์ถฐ์ง๋๋ก ํ๋ค. {isMoreButton && ( )} ์ฒ์์ ์ ์์ญ์ ๋ฎค์ง์ปฌ ์ ๋ณด ์์ญ ์ปดํฌ๋ํธ ์์ ์์๋๋ฐ, ์ด๋ ๊ฒ ๋ณ๊ฒฝ๋์์ ๋ ์ด๋ฏธ์ง๊ฐ ๋ค๋ฅธ ์์ญ์ ์ด๋ฏธ์ง๊น์ง..
Today, What I learned? ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ์นดํ ๊ณ ๋ฆฌ์ ๋ฐ๋ผ์ React Query์ useQuery๋ฅผ ํตํด ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ถ๋ถ์ ์งํํ๋ฉฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค์๋์ง ๊ธฐ๋กํด ๋ณธ๋ค. ํผ๊ทธ๋ง ์์ผ๋ก ๋ง๋ค์ด์ผ ํ๋ ๋ถ๋ถ์ด๋ค. ๊ฐ ์ง์ญ์ ํด๋ฆญํ๋ฉด ํด๋น ์ง์ญ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์์ผ ํ๋ ๋ถ๋ถ! ์ผ๋จ ๋ฒํผ์ ํด๋ฆญํ ๋๋ง๋ค ๊ฐ ์ง์ญ์ ์ฝ๋๋ฅผ API์ params ๊ฐ์ผ๋ก ๋๊ฒจ์ฃผ์ด์ผ ํ๋ค. ๊ทธ๋์ API ํจ์์์๋ ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก params๋ฅผ ๋ฐ์์ค๊ธฐ๋ก ํ๋ค. export const getLocalPopular = (params) => { const [_, category] = params.queryKey; return fetch( `${BASE_URL}/boxoffice?servic..
Today, What I learned? ํ๋ก์ ํธ ์ค!.. api์์ ๊ฐ์ ธ์ค๋ xml ๋ฐ์ดํฐ๋ฅผ JSON ๋ฐ์ดํฐ๋ก ๋ณํํ๊ธฐ ์ํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ณผ์ ์ ์ ๋ฆฌํด ๋ณธ๋ค. ๋จผ์ ์ฌ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด๊ฒ์ด๋ค. https://github.com/connected-io/react-native-xml2js GitHub - connected-io/react-native-xml2js: XML to JavaScript object converter. XML to JavaScript object converter. Contribute to connected-io/react-native-xml2js development by creating an account on GitHub. github.com ๋ณํํ๊ธฐ const p..
Today, What I learned? ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ์์ ์ค์ฒฉ ๋ผ์ฐํฐ๋ก Stack์ ๋ง๋ค์ด๋๊ณ , ๋ด๋น๊ฒ์ด์ ์ ์ง์ ํ์ ๋ ์๋์ ๊ฐ์ ์๋ฌ๋ฅผ ๋ง๋ฌ๋ค. ์ค์ฒฉ ๋ผ์ฐํฐ์์๋ ๋ค๋น๊ฒ์ด์ ์ ์ด๋ค ์์ผ๋ก ์ง์ ํด์ฃผ์ด์ผ ํ๋์ง ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. ๋ด๋น๊ฒ์ด์ ๊ตฌ์กฐ ์ฐ์ ๋ค๋น๊ฒ์ด์ ๊ตฌ์กฐ๋ Root๋ผ๋ ์คํ์์ ์คํ๊ณผ ํญ์ ํ๋๋ก ๋ฌถ์ด์ฃผ๊ณ ์๋, ์ค์ฒฉ๋ ๊ตฌ์กฐ๋ค. ์ค์ฒฉ๋ ๋ค๋น๊ฒ์ด์ ์ ์๋ฌ ๋ฉ์์ง์๋ ์๋ navigation ๊ด๋ จ ๋งํฌ๋ก ์ด๋ํด์ ๋ณด๋ฉด ์ผ๋ฐ์ ์ธ ๋ด๋น๊ฒ์ด์ ์ง์ ์ ์๋์ ๊ฐ์ด ํ ์ ์๋ค. navigation.navigate('ํ์ด์ง ์ปดํฌ๋ํธ๋ช '); ์ค์ฒฉ๋ ๋ด๋น๊ฒ์ด์ ์์๋ ๋จผ์ ์์ ๋ด๋น๊ฒ์ด์ ์ ์ง์ ํด ์ฃผ๊ณ screen์ด๋ผ๋ ์์ฑ์ผ๋ก ํ์ด์ง๋ช ์ ์ง์ ํ๋ค. navigation.navigate('Root', {..
Today, What I learned? ๋ฆฌ์กํธ ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํด์ ๋ฌดํ์คํฌ๋กค์ ์ ์ฉํด ๋ณด์๋ค. ๋ฌดํ์คํฌ๋กค๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋ ๊ฒ์ ์์ง๊น์ง ์๋ํด๋ณด์ง ๋ชปํ๋ ๊ธฐ๋ฅ์ด์๋๋ฐ useInfiniteQuery ํ ์ ์ฌ์ฉํด์ ์๊ฐ๋ณด๋ค ์ฝ๊ฒ ์ ์ฉํ ์ ์์๋ค..! FlatList ๋จผ์ FlatList์์ ๋ฌดํ์คํฌ๋กค์ ์ํด ํ์ํ ๋ ๊ฐ์ง ์์ฑ์ ์ถ๊ฐํด์ผ ํ๋ค. onEndReached ๋์ ์ ๋๋ฌํ์ ๋ ์คํ์ํฌ ํจ์๊ฐ ๋ค์ด๊ฐ๋ ์์ฑ onEndReachedThreshold ์คํฌ๋ฆฐ ๋์ด์ ๋๋ฌํ๊ธฐ ์ ์ ์ผ๋งํผ ๋จผ์ fetch ํจ์๋ฅผ ๋น ๋ฅด๊ฒ ์คํ์ํฌ ๊ฒ์ธ์ง์ ๋ํ ์์ฑ. ์ซ์๋ก ๋ค์ด๊ฐ๋ค. 1์ผ ๊ฒฝ์ฐ์ ๋์ ๋๋ฌํ์ ๊ฒฝ์ฐ ์คํ๋๋ค. ๋ก์ง์ ๊ตฌ์ฑ ๋ฌดํ ์คํฌ๋กค์ด ์ด๋ค ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง๋์ง๋ฅผ ๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํ๋ฉด ์ด๋ ๋ค. ๊ธฐ์กด ๋ฐฐ์ด ..
Comment