๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป
article thumbnail
[React] ํ™”๋ฉด(DOM) ์บก์ณ ๋ฐ ์ €์žฅ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ (feat. html2canvas, file-saver)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ React์—์„œ ํ™”๋ฉด (DOM)๋ฅผ ์บก์ฒ˜, ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ž‘์€ ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ๋งž์ด ํ–ˆ์—ˆ๋Š”๋ฐ, ๊ฒฐ๊ณผ์ ์œผ๋กœ ์„ฑ๊ณตํ•œ ๋ฐฉ๋ฒ•๋“ค๋กœ ํฌ์ŠคํŒ…ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์บก์ณ(์Šคํฌ๋ฆฐ์ƒท)์„ ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค ๋Œ€ํ‘œ์ ์œผ๋กœ html2canvas, dom-to-image, html-to-image ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ html2canvas์™€ dom-to-image๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•ด ๋ดค์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์‚ฌ์šฉํ•ด ๋ณธ ๋‘ ๊ฐ€์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ๋‘ ์˜์—ญ์„ ์ •ํ™•ํ•˜๊ฒŒ ์บก์ฒ˜ํ•˜๊ณ  DOM ์š”์†Œ์— ์ ์šฉ๋œ CSS ์Šคํƒ€์ผ์„ ์บก์ฒ˜ํ•˜๋Š” ๋ฐ ํฐ ๋ฌธ์ œ๋Š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ dom-to-image๊ฐ€ html2canvas๋ณด๋‹ค ๋” ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์ด๋ผ๊ณ  ํ•˜๋Š” ์‚ฌ์šฉ์ž๋„ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค..

article thumbnail
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ '๊ณต์› ์‚ฐ์ฑ…' ๋ฌธ์ œํ’€์ด (LV.1)

โ“ ๋ฌธ์ œ ๋ฌธ์ œ ์„ค๋ช… ์ง€๋‚˜๋‹ค๋‹ˆ๋Š” ๊ธธ์„ 'O', ์žฅ์• ๋ฌผ์„ 'X'๋กœ ๋‚˜ํƒ€๋‚ธ ์ง์‚ฌ๊ฐํ˜• ๊ฒฉ์ž ๋ชจ์–‘์˜ ๊ณต์›์—์„œ ๋กœ๋ด‡ ๊ฐ•์•„์ง€๊ฐ€ ์‚ฐ์ฑ…์„ ํ•˜๋ คํ•ฉ๋‹ˆ๋‹ค. ์‚ฐ์ฑ…์€ ๋กœ๋ด‡ ๊ฐ•์•„์ง€์— ๋ฏธ๋ฆฌ ์ž…๋ ฅ๋œ ๋ช…๋ น์— ๋”ฐ๋ผ ์ง„ํ–‰ํ•˜๋ฉฐ, ๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ["๋ฐฉํ–ฅ ๊ฑฐ๋ฆฌ", "๋ฐฉํ–ฅ ๊ฑฐ๋ฆฌ" … ] ์˜ˆ๋ฅผ ๋“ค์–ด "E 5"๋Š” ๋กœ๋ด‡ ๊ฐ•์•„์ง€๊ฐ€ ํ˜„์žฌ ์œ„์น˜์—์„œ ๋™์ชฝ์œผ๋กœ 5์นธ ์ด๋™ํ–ˆ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ๋กœ๋ด‡ ๊ฐ•์•„์ง€๋Š” ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ๋‘ ๊ฐ€์ง€๋ฅผ ๋จผ์ € ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์–ด์ง„ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•  ๋•Œ ๊ณต์›์„ ๋ฒ—์–ด๋‚˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.์ฃผ์–ด์ง„ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ ์ค‘ ์žฅ์• ๋ฌผ์„ ๋งŒ๋‚˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์œ„ ๋‘ ๊ฐ€์ง€์ค‘ ์–ด๋Š ํ•˜๋‚˜๋ผ๋„ ํ•ด๋‹น๋œ๋‹ค๋ฉด, ๋กœ๋ด‡ ๊ฐ•์•„์ง€๋Š” ํ•ด๋‹น ๋ช…๋ น์„ ๋ฌด์‹œํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.๊ณต์›์˜ ๊ฐ€๋กœ ๊ธธ์ด๊ฐ€ W, ์„ธ๋กœ ๊ธธ์ด๊ฐ€ H๋ผ๊ณ  ํ•  ๋•Œ, ๊ณต์›์˜ ์ขŒ์ธก ์ƒ๋‹จ..

article thumbnail
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ '์ถ”์–ต ์ ์ˆ˜' ๋ฌธ์ œ ํ’€์ด (LV.1)

โ“ ๋ฌธ์ œ ๋ฌธ์ œ ์„ค๋ช… ์‚ฌ์ง„๋“ค์„ ๋ณด๋ฉฐ ์ถ”์–ต์— ์ –์–ด ์žˆ๋˜ ๋ฃจ๋Š” ์‚ฌ์ง„๋ณ„๋กœ ์ถ”์–ต ์ ์ˆ˜๋ฅผ ๋งค๊ธธ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์ง„ ์†์— ๋‚˜์˜ค๋Š” ์ธ๋ฌผ์˜ ๊ทธ๋ฆฌ์›€ ์ ์ˆ˜๋ฅผ ๋ชจ๋‘ ํ•ฉ์‚ฐํ•œ ๊ฐ’์ด ํ•ด๋‹น ์‚ฌ์ง„์˜ ์ถ”์–ต ์ ์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์ง„ ์† ์ธ๋ฌผ์˜ ์ด๋ฆ„์ด ["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)์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ์›Œํ•˜๋Š”..

article thumbnail
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ '๋‹ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ' ๋ฌธ์ œ ํ’€์ด (LV.1)

โ“ ๋ฌธ์ œ ๋ฌธ์ œ ์„ค๋ช… ์–€์—์„œ๋Š” ๋งค๋…„ ๋‹ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ํ•ด์„ค์ง„๋“ค์€ ์„ ์ˆ˜๋“ค์ด ์ž๊ธฐ ๋ฐ”๋กœ ์•ž์˜ ์„ ์ˆ˜๋ฅผ ์ถ”์›”ํ•  ๋•Œ ์ถ”์›”ํ•œ ์„ ์ˆ˜์˜ ์ด๋ฆ„์„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 1๋“ฑ๋ถ€ํ„ฐ 3๋“ฑ๊นŒ์ง€ "mumu", "soe", "poe" ์„ ์ˆ˜๋“ค์ด ์ˆœ์„œ๋Œ€๋กœ ๋‹ฌ๋ฆฌ๊ณ  ์žˆ์„ ๋•Œ, ํ•ด์„ค์ง„์ด "soe"์„ ์ˆ˜๋ฅผ ๋ถˆ๋ €๋‹ค๋ฉด 2๋“ฑ์ธ "soe" ์„ ์ˆ˜๊ฐ€ 1๋“ฑ์ธ "mumu" ์„ ์ˆ˜๋ฅผ ์ถ”์›”ํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰ "soe" ์„ ์ˆ˜๊ฐ€ 1๋“ฑ, "mumu" ์„ ์ˆ˜๊ฐ€ 2๋“ฑ์œผ๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค. ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด 1๋“ฑ๋ถ€ํ„ฐ ํ˜„์žฌ ๋“ฑ์ˆ˜ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด๊ธด ๋ฌธ์ž์—ด ๋ฐฐ์—ด players์™€ ํ•ด์„ค์ง„์ด ๋ถ€๋ฅธ ์ด๋ฆ„์„ ๋‹ด์€ ๋ฌธ์ž์—ด ๋ฐฐ์—ด callings๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๊ฒฝ์ฃผ๊ฐ€ ๋๋‚ฌ์„ ๋•Œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์„ 1๋“ฑ๋ถ€ํ„ฐ ๋“ฑ์ˆ˜ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ ..

article thumbnail
[JavaScript] ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ slice() vs splice() ์ฐจ์ด์ 

๐Ÿ’ก 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..

article thumbnail
๋น…์˜ค(Big O) ํ‘œ๊ธฐ๋ฒ•์ด ๋ญ˜๊นŒ? ์–ด๋–ป๊ฒŒ ๋ณด๋Š” ๊ฑฐ์ง€?

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ณต๋ถ€ํ•˜๋Š” ๋ฐ์— ์žˆ์–ด์„œ ์ž๊พธ ๋น…์˜ค(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 ๊ณ„์‚ฐ ๋ฐฉ๋ฒ• ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด ์—ฐ์‚ฐ์ด ๋ช‡ ..

article thumbnail
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ '2์ฐจ์›์œผ๋กœ ๋งŒ๋“ค๊ธฐ' ๋ฌธ์ œ ํ’€์ด

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ์—ฐ์Šต๋ฌธ์ œ '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], [..

article thumbnail
[React Native] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ™˜๊ฒฝ์—์„œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜(.env) ์ ์šฉํ•˜๊ธฐ

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์ตœ๊ทผ 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..

article thumbnail
[React] Jest์™€ React testing library๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ„๋‹จํ•œ React app ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ธฐ (feat. TDD)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์ตœ๊ทผ 'ํด๋ฆฐ ์ฝ”๋“œ'์ฑ…๊ณผ ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ ๊ด€๋ จ ์˜์ƒ์ด๋‚˜ ๋ฌธ์„œ๋ฅผ ๋ณด๊ณ  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ์ค‘์š”์„ฑ์„ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ๋‹ค. ์•ž์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•˜๊ณ  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ํ†ต๊ณผํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” TDD ๊ฐœ๋ฐœ ๋ฐฉ์‹์œผ๋กœ React์—์„œ Jest์™€ React testing library๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฒ•์„ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๋ณต์Šตํ•˜๊ณ  ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ธ€์„ ์ž‘์„ฑํ•ด ๋ณธ๋‹ค. ํ•ด๋‹น ๊ธ€์—์„œ๋Š” ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ˆซ์ž๊ฐ€ ์ฆ๊ฐ๋˜๋Š” ๊ฐ„๋‹จํ•œ ์•ฑ์„ TDD ๊ฐœ๋ฐœ ๋ฐฉ์‹์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋งŒ๋“ค์–ด ๋ณผ ๊ฒƒ์ด๋‹ค. Jest์™€ React testing library Jest ? Jest๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ…Œ์ŠคํŠธ..