๐ ๋ค์ด๊ฐ๋ฉฐ React์์ ํ๋ฉด (DOM)๋ฅผ ์บก์ฒ, ์ ์ฅํ๋ ๊ธฐ๋ฅ์ ๋ํด์ ์์๋ณด๋ ค ํฉ๋๋ค. ์์ ํ ์ด ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ์ฌ๋ฌ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๋ง์ด ํ์๋๋ฐ, ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฑ๊ณตํ ๋ฐฉ๋ฒ๋ค๋ก ํฌ์คํ ํ๊ฒ ๋ฉ๋๋ค. ์บก์ณ(์คํฌ๋ฆฐ์ท)์ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค ๋ํ์ ์ผ๋ก html2canvas, dom-to-image, html-to-image ๋ฑ์ด ์์ต๋๋ค. ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด์ html2canvas์ dom-to-image๋ฅผ ๋ชจ๋ ์ฌ์ฉํด ๋ดค์ต๋๋ค. ์ ๊ฐ ์ฌ์ฉํด ๋ณธ ๋ ๊ฐ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋ ์์ญ์ ์ ํํ๊ฒ ์บก์ฒํ๊ณ DOM ์์์ ์ ์ฉ๋ CSS ์คํ์ผ์ ์บก์ฒํ๋ ๋ฐ ํฐ ๋ฌธ์ ๋ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ dom-to-image๊ฐ html2canvas๋ณด๋ค ๋ ๋น ๋ฅด๊ณ ์์ ์ ์ด๋ผ๊ณ ํ๋ ์ฌ์ฉ์๋ ์๋ค๊ณ ํฉ๋๋ค..
โ ๋ฌธ์ ๋ฌธ์ ์ค๋ช ์ง๋๋ค๋๋ ๊ธธ์ 'O', ์ฅ์ ๋ฌผ์ 'X'๋ก ๋ํ๋ธ ์ง์ฌ๊ฐํ ๊ฒฉ์ ๋ชจ์์ ๊ณต์์์ ๋ก๋ด ๊ฐ์์ง๊ฐ ์ฐ์ฑ ์ ํ๋ คํฉ๋๋ค. ์ฐ์ฑ ์ ๋ก๋ด ๊ฐ์์ง์ ๋ฏธ๋ฆฌ ์ ๋ ฅ๋ ๋ช ๋ น์ ๋ฐ๋ผ ์งํํ๋ฉฐ, ๋ช ๋ น์ ๋ค์๊ณผ ๊ฐ์ ํ์์ผ๋ก ์ฃผ์ด์ง๋๋ค. ["๋ฐฉํฅ ๊ฑฐ๋ฆฌ", "๋ฐฉํฅ ๊ฑฐ๋ฆฌ" … ] ์๋ฅผ ๋ค์ด "E 5"๋ ๋ก๋ด ๊ฐ์์ง๊ฐ ํ์ฌ ์์น์์ ๋์ชฝ์ผ๋ก 5์นธ ์ด๋ํ๋ค๋ ์๋ฏธ์ ๋๋ค. ๋ก๋ด ๊ฐ์์ง๋ ๋ช ๋ น์ ์ํํ๊ธฐ ์ ์ ๋ค์ ๋ ๊ฐ์ง๋ฅผ ๋จผ์ ํ์ธํฉ๋๋ค. ์ฃผ์ด์ง ๋ฐฉํฅ์ผ๋ก ์ด๋ํ ๋ ๊ณต์์ ๋ฒ์ด๋๋์ง ํ์ธํฉ๋๋ค.์ฃผ์ด์ง ๋ฐฉํฅ์ผ๋ก ์ด๋ ์ค ์ฅ์ ๋ฌผ์ ๋ง๋๋์ง ํ์ธํฉ๋๋ค. ์ ๋ ๊ฐ์ง์ค ์ด๋ ํ๋๋ผ๋ ํด๋น๋๋ค๋ฉด, ๋ก๋ด ๊ฐ์์ง๋ ํด๋น ๋ช ๋ น์ ๋ฌด์ํ๊ณ ๋ค์ ๋ช ๋ น์ ์ํํฉ๋๋ค.๊ณต์์ ๊ฐ๋ก ๊ธธ์ด๊ฐ W, ์ธ๋ก ๊ธธ์ด๊ฐ H๋ผ๊ณ ํ ๋, ๊ณต์์ ์ข์ธก ์๋จ..
โ ๋ฌธ์ ๋ฌธ์ ์ค๋ช ์ฌ์ง๋ค์ ๋ณด๋ฉฐ ์ถ์ต์ ์ ์ด ์๋ ๋ฃจ๋ ์ฌ์ง๋ณ๋ก ์ถ์ต ์ ์๋ฅผ ๋งค๊ธธ๋ ค๊ณ ํฉ๋๋ค. ์ฌ์ง ์์ ๋์ค๋ ์ธ๋ฌผ์ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ๋ชจ๋ ํฉ์ฐํ ๊ฐ์ด ํด๋น ์ฌ์ง์ ์ถ์ต ์ ์๊ฐ ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ง ์ ์ธ๋ฌผ์ ์ด๋ฆ์ด ["may", "kein", "kain"]์ด๊ณ ๊ฐ ์ธ๋ฌผ์ ๊ทธ๋ฆฌ์ ์ ์๊ฐ [5์ , 10์ , 1์ ]์ผ ๋ ํด๋น ์ฌ์ง์ ์ถ์ต ์ ์๋ 16(5 + 10 + 1)์ ์ด ๋ฉ๋๋ค. ๋ค๋ฅธ ์ฌ์ง ์ ์ธ๋ฌผ์ ์ด๋ฆ์ด ["kali", "mari", "don", "tony"]์ด๊ณ ["kali", "mari", "don"]์ ๊ทธ๋ฆฌ์ ์ ์๊ฐ ๊ฐ๊ฐ [11์ , 1์ , 55์ ]]์ด๊ณ , "tony"๋ ๊ทธ๋ฆฌ์ ์ ์๊ฐ ์์ ๋, ์ด ์ฌ์ง์ ์ถ์ต ์ ์๋ 3๋ช ์ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ํฉํ 67(11 + 1 + 55)์ ์ ๋๋ค. ๊ทธ๋ฆฌ์ํ๋..
โ ๋ฌธ์ ๋ฌธ์ ์ค๋ช ์์์๋ ๋งค๋ ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ๊ฐ ์ด๋ฆฝ๋๋ค. ํด์ค์ง๋ค์ ์ ์๋ค์ด ์๊ธฐ ๋ฐ๋ก ์์ ์ ์๋ฅผ ์ถ์ํ ๋ ์ถ์ํ ์ ์์ ์ด๋ฆ์ ๋ถ๋ฆ ๋๋ค. ์๋ฅผ ๋ค์ด 1๋ฑ๋ถํฐ 3๋ฑ๊น์ง "mumu", "soe", "poe" ์ ์๋ค์ด ์์๋๋ก ๋ฌ๋ฆฌ๊ณ ์์ ๋, ํด์ค์ง์ด "soe"์ ์๋ฅผ ๋ถ๋ ๋ค๋ฉด 2๋ฑ์ธ "soe" ์ ์๊ฐ 1๋ฑ์ธ "mumu" ์ ์๋ฅผ ์ถ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ "soe" ์ ์๊ฐ 1๋ฑ, "mumu" ์ ์๊ฐ 2๋ฑ์ผ๋ก ๋ฐ๋๋๋ค. ์ ์๋ค์ ์ด๋ฆ์ด 1๋ฑ๋ถํฐ ํ์ฌ ๋ฑ์ ์์๋๋ก ๋ด๊ธด ๋ฌธ์์ด ๋ฐฐ์ด players์ ํด์ค์ง์ด ๋ถ๋ฅธ ์ด๋ฆ์ ๋ด์ ๋ฌธ์์ด ๋ฐฐ์ด callings๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฒฝ์ฃผ๊ฐ ๋๋ฌ์ ๋ ์ ์๋ค์ ์ด๋ฆ์ 1๋ฑ๋ถํฐ ๋ฑ์ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ ..
๐ก slice() ๋ฐฐ์ด ๋ฉ์๋ slice() ๋ฉ์๋๋ ๋ฐฐ์ด์ ๋ณต์ฌ๋ณธ์ ๋ง๋ค๊ฑฐ๋ ๋ฐฐ์ด์ ์ผ๋ถ๋ฅผ ๋ฐํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ค. slice() ๋ฉ์๋๋ ์๋ ๋ฐฐ์ด์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋์ ์์ ๋ณต์ฌ๋ณธ์ ์์ฑํ๋ค๋ ์ ์ ์ ์ํด์ผ ํ๋ค. ๊ธฐ๋ณธ ๊ตฌ๋ฌธ์ ๋ค์๊ณผ ๊ฐ๋ค. slice(optional start parameter, optional end parameter) ์ด ์์์์๋ ๊ณผ์ผ ๋ชฉ๋ก์ ๋ง๋ค์๋ค. const fruits = ['apple', 'banana', 'mango', 'melon']; slice() ๋ฉ์๋๋ฅผ ๋งค๊ฐ๋ณ์ ์์ด ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ โ slice() ๋ฉ์๋๋ฅผ ํ์ฉํด ํด๋น ๋ฐฐ์ด์ ์์ ๋ณต์ฌ๋ณธ์ ๋ง๋ค ์ ์๋ค. console.log(fruits.slice()); // ['apple', 'banana', 'm..
๐ ๋ค์ด๊ฐ๋ฉฐ ์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ณต๋ถํ๋ ๋ฐ์ ์์ด์ ์๊พธ ๋น ์ค(Big O), ๋น ์ค(Big O) ๊ฑฐ๋ฆฌ๋๋ฐ ๋๋์ฒด ๋น ์ค(Big O)๊ฐ ๋ญ๊ณ ์ ์ฌ์ฉํ๋ ๊ฑด์ง ๋ชฐ๋ผ์ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ๊ฒ ๋๋ค. 1. ๋น ์ค(Big O) ํ๊ธฐ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฑฐ์ง? ๋จผ์ ๋น ์ค(Big O) ํ๊ธฐ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฑธ๊น. ์๋ฃ๊ตฌ์กฐ, ์๊ณ ๋ฆฌ์ฆ ํด๊ฒฐ์ ์์ด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์ฌ๋ฌ ๊ฐ์ง์ธ ๊ฒฝ์ฐ๊ฐ ๋๋ค์์ด๋ค. ์ ์ n์ ๋ฐ์ผ๋ฉด 1๋ถํฐ n๊น์ง์ ํฉ์ ๊ตฌํ๋ ๋ ๊ฐ์ง์ ์ฝ๋๋ฅผ ์๋ก ๋ค์ด๋ณด๊ฒ ๋ค. ์ฒซ ๋ฒ์งธ ์ฝ๋ function addUpTo(n) { let total = 0; for (let i = 1; i O(1), O(5n^2) => O(n^2) ๋ฑ ์ด๋ฐ ์์ผ๋ก ํ๊ธฐํ๋ ๊ฒ์ด๋ค. 3-3 ๊ณ์ฐ ๋ฐฉ๋ฒ ๊ฐ๋จํ๊ฒ ๋งํ๋ฉด ์ฐ์ฐ์ด ๋ช ..
๐ ๋ค์ด๊ฐ๋ฉฐ ํ๋ก๊ทธ๋๋จธ์ค์์ ์ฐ์ต๋ฌธ์ '2์ฐจ์์ผ๋ก ๋ง๋ค๊ธฐ' ๋ฌธ์ ๋ฅผ ํ๋ ๋์ค ์ฌ๋ฌ ๋ฐฉ์์ด ์์๊ณ ๋ด๊ฐ ํผ ๋ฐฉ์๊ณผ ๋ค๋ฅธ ๋ฐฉ์์ ๋น๊ตํ๋ฉฐ ๊ฐ์ด ์ดํดํ๊ธฐ ์ํด ๊ธฐ๋กํ๋ค. โ ๋ฌธ์ ๋ฌธ์ ์ค๋ช ์ ์ ๋ฐฐ์ด num_list์ ์ ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. num_list๋ฅผ ๋ค์ ์ค๋ช ๊ณผ ๊ฐ์ด 2์ฐจ์ ๋ฐฐ์ด๋ก ๋ฐ๊ฟ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. num_list๊ฐ [1, 2, 3, 4, 5, 6, 7, 8] ๋ก ๊ธธ์ด๊ฐ 8์ด๊ณ n์ด 2์ด๋ฏ๋ก num_list๋ฅผ 2 * 4 ๋ฐฐ์ด๋ก ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํฉ๋๋ค. 2์ฐจ์์ผ๋ก ๋ฐ๊ฟ ๋์๋ num_list์ ์์๋ค์ ์์์๋ถํฐ n๊ฐ์ฉ ๋๋ 2์ฐจ์ ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํฉ๋๋ค. num_list n result [1, 2, 3, 4, 5, 6, 7, 8] 2 [[1, 2], [..
๐ ๋ค์ด๊ฐ๋ฉฐ ์ต๊ทผ React Native + TypeScript ๋ก ๊ฐ๋จํ ์ดํ์ ๋ง๋ค๋ฉด์ ๊ณต๋ถํ๋ ๋์ค์ ํ๊ฒฝ ๋ณ์ (env)๋ฅผ ์ ์ฉ์ด ํ์ํ๋๋ฐ, ๊ทธ๋ฅ React์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ์กฐ๊ธ ๋ค๋ฅธ ๊ฒ ๊ฐ์์ ์์ํ์ต๋๋ค. 1. react-native-dotenv react-native-dotenv๋ React Native ํ๊ฒฝ์์ ํ๊ฒฝ๋ณ์(env)๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค. ํฐ๋ฏธ๋์ ์ผ๊ณ ํด๋น ๋ช ๋ น์ด๋ฅผ ํตํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํฉ๋๋ค. npm i react-native-dotenv ๋๋ yarn add react-native-dotenv ๊ทธ๋ฆฌ๊ณ ํ์ ์คํฌ๋ฆฝํธ ํ๊ฒฝ์์๋ ์ถ๊ฐ๋ก types๋ฅผ ์ค์นํด ์ค์ผ ํ์ ์คํฌ๋ฆฝํธ ํ๊ฒฝ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. npm install -D @types/react-native-dote..
๐ ๋ค์ด๊ฐ๋ฉฐ ์ต๊ทผ 'ํด๋ฆฐ ์ฝ๋'์ฑ ๊ณผ ์ฌ๋ฌ ๊ฐ๋ฐ ๊ด๋ จ ์์์ด๋ ๋ฌธ์๋ฅผ ๋ณด๊ณ ํ ์คํธ ์ฝ๋์ ์ค์์ฑ์ ๊นจ๋ซ๊ฒ ๋์๋ค. ์์ผ๋ก ๊ฐ๋ฐ์ ํ๋ฉด์ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํด์ ํ ์คํธ ์ฝ๋๋ฅผ ๋จผ์ ์์ฑํ๊ณ ํ ์คํธ ์ฝ๋๋ฅผ ํต๊ณผํ๊ธฐ ์ํ ์ฝ๋๋ฅผ ์์ฑํ๋ TDD ๊ฐ๋ฐ ๋ฐฉ์์ผ๋ก React์์ Jest์ React testing library๋ก ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฒ์ ๊ณต๋ถํ๊ฒ ๋์๋ค. ๊ณต๋ถํ ๋ด์ฉ์ ๋ณต์ตํ๊ณ ์ ๋ฆฌํ๊ธฐ ์ํด ๊ธ์ ์์ฑํด ๋ณธ๋ค. ํด๋น ๊ธ์์๋ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ซ์๊ฐ ์ฆ๊ฐ๋๋ ๊ฐ๋จํ ์ฑ์ TDD ๊ฐ๋ฐ ๋ฐฉ์์ผ๋ก ํ ์คํธํ๊ณ ๋ง๋ค์ด ๋ณผ ๊ฒ์ด๋ค. Jest์ React testing library Jest ? Jest๋ ๊ฐ๋ฐ์๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ ์คํฌ๋ฆฝํธ ์ฝ๋์ ๋ํ ํ ์คํธ๋ฅผ ์คํํ ์ ์๋๋ก ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ ์คํธ..