๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

๐Ÿ‘ฉ‍๐Ÿ’ป Today I Learned ๐Ÿ“š โ—พ ์ •์ฒ˜๊ธฐ ๋“ฑ๋ก ํ•„๊ธฐ๋ฅผ ๋“ฑ๋กํ–ˆ๋‹ค. ์•„๋‹ˆ..๋ณ€๋ช…์•„๋‹Œ ๋ณ€๋ช…์„ ํ•ด๋ณด์ž๋ฉด...์ด๋ฒˆ๋…„๋„ 1ํšŒ์ฐจ์— ์ ‘์ˆ˜๋ฅผ ํ•˜๋ ค๊ณ ํ–ˆ๋Š”๋ฐ, ์ž๊ฒฉ์š”๊ฑด์ด ๋ญ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€๊ฑฐ๋‹ค ใ… ใ…  ๊ทธ ์š”๊ฑด ์ค‘์— ํ•ด๋‹น ์•ˆ๋˜๋Š”๊ฒŒ ๋„ˆ๋ฌด ๋งŽ์•„์„œ ๋‚œ ๋‹น์—ฐํžˆ ์ž๊ฒฉ์ด ์•ˆ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ๋“ฑ๋ก์„ ์•ˆ ํ–ˆ๋Š”๋ฐ, .... ๋ถ€ํŠธ์บ ํ”„๋ฅผ ํ•˜๋ฉด์„œ ์นœ๊ตฌ๋“ค๊ณผ ์ด์•ผ๊ธฐํ•ด๋ณด๋‹ˆ ๊ทธ๋Ÿฐ๊ฒŒ ์•„๋‹ˆ์˜€๋‹ค. ๊ทธ๋ƒฅ 4๋…„์ œ ๋‚˜์™”์œผ๋ฉด ๋œ๋‹ค๊ณ  ... ๋‹ค๋“ค ์™œ ๊ทธ๊ฑธ ์•ˆ ํ–ˆ๋ƒ๊ณ ... 2ํšŒ๋•Œ๊ฐ€ ์˜ค๊ธธ ๊ธฐ๋‹ค๋ ธ๊ณ , ์˜ค๋Š˜ ๊ฐ€์ž…ํ•ด์„œ ํ•ด๋ณด๋‹ˆ ์ž๊ฒฉ์š”๊ฑด์ด ๋˜๋”๋งŒ....ใ… ใ… ใ… ใ… ใ… ใ… ใ…  ๋‚˜ ์ง„์งœ ..๋ญํ–ˆ๋‹ˆ.... โ—พ ๋ฉ˜ํƒˆ์ฑ™๊ฒจ ์˜ค๋Š˜ ์ฒจ์œผ๋กœ ๋ช…์ƒ์ด๋ผ๋Š” ๊ฑธ ํ•ด๋ดค๋‹ค. ๊ฐ€๋งŒํžˆ ์•‰์•„์„œ ๋ˆˆ์„ ๊ฐ๊ณ  ํ˜ธํก์„ ํ•˜๋ฉฐ ๋จธ๋ฆฟ์†์„ ์ •๋ฆฌํ•ด๋ดค๋‹ค. ๋‚ด๊ฐ€ ๋†“์นœ ๊ฒƒ๋“ค์ด ๋ญ๊ฐ€ ์žˆ์„๊นŒ ๋ถ€์กฑํ•œ๊ฒƒ๋“ค์ด ๋ญ๊ฐ€ ์žˆ์—ˆ๋˜๊ฑธ๊นŒ? ...
React-Query React app์—์„œ ๋น„๋™๊ธฐ ๋กœ์ง์„ ์‰ฝ๊ฒŒ ๋‹ค๋ฃจ๊ฒŒ ํ•ด์ฃผ๋Š” data fetching ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. "์ „์—ญ ์ƒํ…Œ"๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ ๋„ React ๋ฐ React-Native ์•ฑ์—์„œ ์„œ๋ฒ„์˜ ๊ฐ’์„ ํด๋ผ์ด์–ธํŠธ์— ๊ฐ€์ ธ์˜ค๊ณ  ์บ์‹œํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋ฒ„ ์ƒํƒœ์˜ ๊นŒ๋‹ค๋กœ์šด ๋ฌธ์ œ์™€ ์žฅ์• ๋ฌผ์„ ๊ทน๋ณตํ•˜๊ณ  ์•ฑ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์•ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ์„œ๋ฒ„๋กœ ๋ถ€ํ„ฐ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๋Š” ๋กœ์ง์„ store ๋‚ด๋ถ€์— ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๋ณด๋ฉด store๋Š” ํด๋ผ์ด์–ธํŠธ state๋ฅผ ์œ ์ง€ํ•ด์•ผํ•˜๋Š”๋ฐ, ์–ด๋Š ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ์™€ ํด๋ผ์ด์–ธํŠธ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณต์กดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.(redux๊ฐ€ ๊ทธ๋Ÿฌํ•จ..) ์ด๋Ÿฐ ๋ถ€๋ถ„์„ ๋ถ„๋ฆฌํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์”๋‹ˆ..
ํ•„์š”์— ์˜ํ•ด์„œ ๊ตฌ๊ธ€๋ง์„ ์—„์ฒญํ•ด์„œ ์ฐพ์•„๋‚ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํƒ€์ž„ ๋งต! ใ…Žใ…Ž 365์ผ์„ ์ดˆ๋กœ ํ™˜์‚ฐํ•ด์„œ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. export const mapTime = timestamp => { const seconds = Math.floor((new Date() - timestamp * 1000) / 1000); // ํ™˜์‚ฐ๋œ ์ดˆ๋ฅผ 365์ผ์„ ์ดˆ๋กœ ํ™˜์‚ฐํ•œ ๊ฒƒ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค~ let interval = Math.floor(seconds / 31536000); if (interval > 1) { return `${interval} years`; } interval = Math.floor(seconds / 2592000); if (interval > 1) { return `${interval} months`; } interva..
* ๋ฉด์ ‘์—์„œ ๋ฐ›์•˜๋˜ ์งˆ๋ฌธ์ธ๋ฐ, ๋‹ต์€ ๊ณ ์‚ฌํ•˜๊ณ  ์งˆ๋ฌธ ์ž์ฒด๋ฅผ ์ดํ•ด ๋ชป ํ•  ์ •๋„์˜€์œผ๋‹ˆ, ์•Œ์ง€ ๋ชปํ–ˆ๋˜ ๊ฐœ๋…์ด์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ฅ Custom Hooks ๋‘ ๊ฐœ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜์—์„œ ๊ฐ™์€ ๋กœ์ง์„ ๊ณต์œ ํ•˜๊ณ ์ž ํ•  ๋•Œ๋Š” ๋˜ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ์™€ Hook ๋˜ํ•œ ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค - ์ด์ƒ ๊ณต์‹ ์ž๋ฃŒ์— ๋‚˜์˜จ ์„ค๋ช…์ธ๋ฐ, ์•„์ง ์ดํ•ดํ•˜๊ธฐ์—๋Š” ๋ถ€์กฑํ•œ ์„ค๋ช… ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ณต๋˜๋Š” ํ›… ํ™œ์šฉ ๋ฉ”์†Œ๋“œ๋“ค์„ ํ•˜๋‚˜๋กœ ์ค„์—ฌ์คŒ์œผ๋กœ์จ ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ๋ณด๊ธฐ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ custom hooks์ž…๋‹ˆ๋‹ค ์ด๋ฆ„์€ use๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. custom hook์€ ๋‹ค๋ฅธ hook์„ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค custom hook์€ ์กฐ๊ฑด๋ถ€ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹ˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค ์—ญ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์ดํ•ดํ•˜๊ธฐ ์ข‹์„ ๊ฑฐ..
useEffect render ๋ Œ๋”(render)๊ฐ€ ํ™”๋ฉด์— ๊ทธ๋ ค์ง€๋Š”(paint) ํ›„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰ paint ๋œ ํ›„์— ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๋ถ€์— DOM์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ๋Š” ํ™”๋ฉด์˜ ๊นœ๋นก์ž„์„ ๋ณด๊ฒŒ ๋œ๋‹ค ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ผ๋ถ€ ์ƒํƒœ๋ฅผ ์ฆ‰์‹œ ๋ฐœ์ƒํ•  ํ•„์š”๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ํŽ˜์ด์ง€์— ์‹œ๊ฐ์ ์œผ๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ๋™๊ธฐํ™” ํ•  ๊ฒฝ์šฐ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋‹ฌ์ƒ์ž๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ฑฐ๋‚˜ ์‚ฌ๋ผ์งˆ ๋•Œ ์ผ๋ถ€ ์ƒํƒœ๋ฅผ ์žฌ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ useLayoutEffect render ๋ Œ๋”๋ง ํ›„ ํ™”๋ฉด์ด ์—…๋ฐ์ดํŠธ ๋˜๊ธฐ ์ „์— ๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰ paint๊ฐ€ ๋˜๊ธฐ ์ „์— ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— DOM์„ ์กฐ์ž‘ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•˜๋”๋ผ๋„ ์‚ฌ์šฉ์ž๋Š” ๊นœ๋นก์ž„์„ ๊ฒฝํ—˜ํ•˜์ง€ ์•Š๋Š”๋‹ค ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ƒํƒœ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋  ๋•Œ ์š”์†Œ๊ฐ€ ๊นœ๋ฐ•์ด๋Š” ๊ฒฝ์šฐ DOM์„..
๐Ÿ‘ฉ‍๐Ÿ’ป Today I Learned ๐Ÿ“š โ—พ ๋ฉด์ ‘ ๋ณด๊ณ  ์˜จ ๋‚ด์šฉ๋“ค์„ ํŠนํžˆ ๋‹ต์„ ์ œ๋Œ€๋กœ ํ•˜์ง€ ๋ชปํ•œ ๋ถ€๋ถ„์€ ์ •๋ฆฌํ•ด์„œ ์ถ”ํ›„์— ์˜ฌ๋ฆด ์˜ˆ์ •์ด๋‹ค. ํ˜ธ๋‹ฌ๋‹ฌ๋‹ฌ๋‹ฌ ๋–จ๋ฆฌ๋Š” ๋‹ค๋ฆฌ, ํ›„๋œ๋œ๋œ ์‹ฌ์žฅ๋ฐ•๋™, ๊ธฐ์ˆ ๋ฉด์ ‘ ๐Ÿ’จ , ์•„๋ฌด ๋ง ๋Œ€์ž”์น˜์˜€๋˜ ๊ฒƒ ๊ฐ™์€ ์ปฌ์ณํ• ๋ฉด์ ‘ ๋ชจ๋ฅด๋Š” ๊ฑด ์•„๋Š”์ฒ™ ๋ง๊ณ , ๋งํ•˜๋”๋ผ๋„ ์ž์‹ ๊ฐ ๋„˜์น˜๋Š” ๋ชจ์Šต์„ ๋ณด์—ฌ์ฃผ๊ณ  ์˜ค์ž๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ ๋“ค์–ด๊ฐ”๋Š”๋ฐ, ์˜ค๋งŒํ•œ ๋ชจ์Šต๋งŒ ๋ณด์ด์ง€ ์•Š์•˜๋‚˜ ์‹ถ๋‹ค. ์ปฌ์ณํ• ์งˆ๋ฌธ์—๋Š” ๋‚ด๊ฐ€ ๋ฌด์Šจ ๋Œ€๋‹ต์„ ํ•œ๊ฑฐ์ง€?๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค ์ •๋„๋กœ.. ๋‹ค ๋๋‚˜๊ณ  ๋‚˜์˜ค๋ฉด์„œ ํ—ˆ๊ณต์— ๋ฐœ๊ธธ์งˆ์„ ์ˆ˜์‹ญ ๋ฒˆ ใ…Ž...๋ฉด์ ‘์ด 20๋ถ„ ์ง€๋‚˜๊ณ  40๋ถ„ ์ง€๋‚˜๊ณ  ํ˜ผ์ด ์ ์  ๋‚ ์•„๊ฐ„ ๋“ฏํ•œ ๋Š๋‚Œ..... (์‹ค๊ฐ๋‚˜๋Š” ๋‚˜์˜ ๋ชจ์Šต์„ ๋‹ด๊ธฐ ์œ„ํ•ด ์งค ์†Œํ™˜) ๋‚˜์˜ ํ—›๋ฐœ์งˆ๊ณผ ๋‹ฌ๋ฆฌ ๋ฉด์ ‘์„ ์ง„ํ–‰ํ•ด์ฃผ์…จ๋˜ ๊ฐœ๋ฐœ์ž๋ถ„๋“ค๊ณผ ์ธ์‚ฌ๋‹ด๋‹น์ž๋ถ„์€ - '๋‚˜'๋ผ๋Š” ์‚ฌ๋žŒ์— ๋Œ€ํ•ด์„œ ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ..
๐Ÿ‘ฉ‍๐Ÿ’ป Today I Learned ๐Ÿ“š โ—พ Flutter vs React Native ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด์„œ React Native์™€ TypeScript๋ฅผ ๊ฐ‘์ž‘์Šค๋Ÿฝ๊ฒŒ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ–ˆ์—ˆ๋Š”๋ฐ, ํ”„๋กœ์ ํŠธ ํšŒ์˜๋ฅผ ๊ฑฐ๋“ญํ•˜๋‹ค๊ฐ€ ํ”„๋ก ํŠธ ์Šคํƒ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๊ฐ€ ๋‚˜์™”๋‹ค. ํ•จ๊ป˜ ํ•˜๋Š” ํŒ€์› ์ค‘์— Flutter๋ฅผ ๋ฐฐ์šธ ์ผ์ด ์ƒ๊ฒจ์„œ ์ ‘ํ–ˆ๋Š”๋ฐ React Native ๋ณด๋‹ค ๋” ๊ดœ์ฐฎ์„์ง€๋„ ๋ชจ๋ฅธ๋‹ค๋Š” ์˜๊ฒฌ์ด ๋‚˜์™”๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ TypeScript๋ฅผ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ๋งˆ์Œ์ด ์ปค์—ˆ๊ธฐ์— ๋ช‡ ๋ฒˆ ๋“ฃ๊ธด ํ–ˆ์ง€๋งŒ ์ž˜ ๋ชจ๋ฅด๋Š” Flutter์— ๋Œ€ํ•ด์„œ ๊ธ‰ํ•˜๊ฒŒ ์•Œ์•„๋ดค๋‹ค. ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋ชจ๋ฐ”์ผ ์•ฑ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹จ์—ฐ ๋– ์˜ค๋ฅด๋Š” ์„ ํƒ์ง€ ๋‘๊ฐœ๊ฐ€ ๋ฐ”๋กœ Flutter๋ž‘ React Native๋‹ค React Native์˜ ์ƒํƒœํ™˜๊ฒฝ์ด ๋” ํฌ๊ณ  ๋Œ€์ค‘์ ์˜€์ง€๋งŒ ์š”์ฆ˜์€ ์‹ฌ์‹ฌ์น˜..
โœ…๋ฌธ์ œ ์ŠคํŒŒ์ด๋“ค์€ ๋งค์ผ ๋‹ค๋ฅธ ์˜ท์„ ์กฐํ•ฉํ•˜์—ฌ ์ž…์–ด ์ž์‹ ์„ ์œ„์žฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜ท์ด ์•„๋ž˜์™€ ๊ฐ™๊ณ  ์˜ค๋Š˜ ์ŠคํŒŒ์ด๊ฐ€ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ, ๊ธด ์ฝ”ํŠธ, ํŒŒ๋ž€์ƒ‰ ํ‹ฐ์…”์ธ ๋ฅผ ์ž…์—ˆ๋‹ค๋ฉด ๋‹ค์Œ๋‚ ์€ ์ฒญ๋ฐ”์ง€๋ฅผ ์ถ”๊ฐ€๋กœ ์ž…๊ฑฐ๋‚˜ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ ๋Œ€์‹  ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค๋ฅผ ์ฐฉ์šฉํ•˜๊ฑฐ๋‚˜ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ข…๋ฅ˜์ด๋ฆ„ ์–ผ๊ตด ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ, ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค ์ƒ์˜ ํŒŒ๋ž€์ƒ‰ ํ‹ฐ์…”์ธ  ํ•˜์˜ ์ฒญ๋ฐ”์ง€ ๊ฒ‰์˜ท ๊ธด ์ฝ”ํŠธ ์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ๋“ค์ด ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด clothes๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ์„œ๋กœ ๋‹ค๋ฅธ ์˜ท์˜ ์กฐํ•ฉ์˜ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ clothes์˜ ๊ฐ ํ–‰์€ [์˜์ƒ์˜ ์ด๋ฆ„, ์˜์ƒ์˜ ์ข…๋ฅ˜]๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ์˜ ์ˆ˜๋Š” 1๊ฐœ ์ด์ƒ 30๊ฐœ ์ดํ•˜์ž…๋‹ˆ๋‹ค. ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์˜์ƒ์€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. clothes์˜..
๐Ÿ‘ฉ‍๐Ÿ’ป Today I Learned ๐Ÿ“š โ—พ ์ฝ”ํ…Œ๊ณต๋ถ€ ์ด์   ๋…ธํŠธ๊ฐ€ ์—†์œผ๋ฉด ์ดํ•ด๋„ ์‰ฝ์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค. ใ…Ž... ๋…ธํŠธ์— ๊ทธ๋ ค๊ฐ€๋ฉด์„œ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ๋„ ์‰ฝ์ง€ ์•Š๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋ญ”๊ฐ€ ์•Œ ๊ฒƒ ๊ฐ™์œผ๋ฉด์„œ๋„ ์•Œ์ญ๋‹ฌ์ญํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ. ๊ทธ๋ž˜๋„ ๋ง‰์—ฐํžˆ ๋‘๋ ค์›Œํ•˜๋Š” ๊ฒƒ๋ณด๋‹จ ๊ฒฉํŒŒํ•˜๋Š” ํŽธ์ด ํ›จ ๋‚ฌ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•˜๋ฉฐ ํ’€์—ˆ๋‹ค. โ—พ ๋…ธ์…˜ ์ด๋ ฅ์„œ ์ˆ˜์ • c#์„ ๊ฐ€๋ฅด์ณ์„œ ์ผ์„ ์‹œํ‚ค๊ฒ ๋‹ค๋Š” ํšŒ์‚ฌ๋ฅผ ๋งŒ๋‚ฌ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž๋ฐ”๋กœ ๋ณด์‹ ๊ฑด๊ฐ€? ๋‹ค์‹œ ๋…ธ์…˜์„ ์ผฐ๊ณ  ์ด๋ ฅ์„œ๋ฅผ ์˜คํ”ˆํ–ˆ๋‹ค. ์ด๋ ฅ์„œ๋Š” ๊ณ ์น˜๊ณ  ๋˜ ๊ณ ์น˜๋Š” ๊ฒƒ์ด์ฃ  ๐Ÿ˜‡ ํ™”์ดํŒ… ํ™”์ดํŒ…! ์ตœ์„ ์„ ๋‹คํ•ด์„œ ๋Œ๋ฆฌ๋Š” ํ–‰๋ณตํšŒ๋กœ ๐Ÿ˜
โœ…๋ฌธ์ œ 124 ๋‚˜๋ผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 124 ๋‚˜๋ผ์—์„œ๋Š” 10์ง„๋ฒ•์ด ์•„๋‹Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž์‹ ๋“ค๋งŒ์˜ ๊ทœ์น™์œผ๋กœ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. 124 ๋‚˜๋ผ์—๋Š” ์ž์—ฐ์ˆ˜๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. 124 ๋‚˜๋ผ์—๋Š” ๋ชจ๋“  ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ 1, 2, 4๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ 124 ๋‚˜๋ผ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ˆซ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. 10์ง„๋ฒ•124 ๋‚˜๋ผ10์ง„๋ฒ•124 ๋‚˜๋ผ 1 1 6 14 2 2 7 21 3 4 8 22 4 11 9 24 5 12 10 41 ์ž์—ฐ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, n์„ 124 ๋‚˜๋ผ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ˆซ์ž๋กœ ๋ฐ”๊พผ ๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ n์€ 500,000,000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ์ž…๋‹ˆ๋‹ค. โœ…์ž…์ถœ๋ ฅ ์˜ˆ 1 1 2 2 3 4 4 11 โœ…์˜์‹์˜ ํ๋ฆ„ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด 1,2,4๊ฐ€ ๋ฐ˜๋ณต์ด ๋œ๋‹ค. ๊ทธ..
โœ…๋ฌธ์ œ ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๋Š”, ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์„ ๊ฐ€์ง€๊ณ  ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๋ฌธ์ž์—ด์—์„œ ๊ฐ™์€ ์•ŒํŒŒ๋ฒณ์ด 2๊ฐœ ๋ถ™์–ด ์žˆ๋Š” ์ง์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ทธ๋‹ค์Œ, ๊ทธ ๋‘˜์„ ์ œ๊ฑฐํ•œ ๋’ค, ์•ž๋’ค๋กœ ๋ฌธ์ž์—ด์„ ์ด์–ด ๋ถ™์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•œ๋‹ค๋ฉด ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด 1์„, ์•„๋‹ ๊ฒฝ์šฐ 0์„ ๋ฆฌํ„ดํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฌธ์ž์—ด S = baabaa ๋ผ๋ฉด b aa baa → bb aa → aa → ์˜ ์ˆœ์„œ๋กœ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.์ œํ•œ์‚ฌํ•ญ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด : 1,000,000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ๋ฌธ์ž์—ด์€ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. โœ…์ž…์ถœ..
๐Ÿ‘ฉ‍๐Ÿ’ป Today I Learned ๐Ÿ“š โ—พ API ์„ค๊ณ„ ํšŒ์˜ ๋งˆ์ง€๋ง‰ api์„ค๊ณ„ ํšŒ์˜๋ฅผ ๋งˆ์ณค๋‹ค. ๊ฐ™์€ ์ฑ„ํŒ…๋ฐฉ์ด์—ฌ๋„ ๊ทธ๋ฃน์ฑ„ํŒ…๋ฐฉ๊ณผ 1:1 ์ฑ„ํŒ…๋ฐฉ์— ๋Œ€ํ•œ ๋‚ด์šฉ๋„ ๋‹ฌ๋ผ์ง€๊ณ  ์œ ์ €๋ฅผ ์‹ ๊ณ ํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ๋„ฃ์œผ๋ฉด์„œ ํšŒ์˜๋Š” ๊ธธ์–ด์ง€๊ณ  ์ƒ๊ฐํ•ด์•ผํ•  ๊ฒƒ๋“ค๋„ ๋งŽ์•˜๋‹ค. ๋‹จ์ˆœํžˆ ์‹ ๊ณ  ๊ธฐ๋Šฅ๋งŒ์„ ๋„ฃ๋Š”๋‹ค๊ณ  ๋์ด ์•„๋‹ˆ๋ผ ๊ธฐ์ค€์„ ์ •ํ•˜๊ณ  ์ดํ›„์— ์–ด๋–ป๊ฒŒ ์œ ์ €๋ฅผ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ๊ฐ€์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋“ค์„ ํ•˜๋ฉด์„œ ๊ฒฐ๊ตญ์€ ์ธ๋ ฅ์„ ๋”ํ•˜๊ฒŒ ๋˜์—ˆ์ง€๋งŒ. ์•ž์œผ๋กœ ๋ฐœ์ „์‹œ์ผœ๋‚˜๊ฐ€๋ฉด ๋˜์ง€ ์•Š๊ฒ ๋ƒ๋ฉฐ ํšŒ์˜๋ฅผ ๋งˆ๋ฌด๋ฆฌํ–ˆ๋‹ค. โ—พ React-Query React Query๋ฅผ ์“ฐ๋Š” ๋ฒ•์„ ๋ฐฐ์› ๋‹ค. ์ฝ”๋“œ๋ฅผ ์ ์œผ๋ฉด์„œ ๋จธ๋ฆฟ์†์œผ๋กœ ์•„~ ํ•˜๋ฉฐ ์ดํ•ด๋ฅผ ํ–ˆ์ง€๋งŒ ๊ฐœ๋…์ ์ธ ๋ถ€๋ถ„์„ ๋‹ค์‹œ ์ •๋ฆฌํ•ด์•ผํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. ๋ฐ์ดํ„ฐ fetch๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ๋ฐ›์•„์˜ค๋Š” ์ƒํ™ฉ์—์„œ ๋งค๋ฒˆ ํŽ˜์ด์ง€๋ฅผ ๋„˜๋‚˜๋“ค ๋•Œ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กœ ๋ฐ›์•˜๋Š”..
๋ฐ(Ming) ๐Ÿฐ
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (14 Page)