header-img
Info :
Document 37
์Šคํฌ๋žฉ :: ์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋žจ์€ ์ •๋ง๋กœ ์‚ฌ๋ผ์งˆ๊นŒ?
2024.05.10
https://yozm.wishket.com/magazine/detail/2569/ ์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋žจ์€ ์ •๋ง๋กœ ์‚ฌ๋ผ์งˆ๊นŒ? | ์š”์ฆ˜IT๋ฐ์Šคํฌํ†ฑ ์•ฑ ํ˜น์€ ์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋žจ์€ ๊ณผ๊ฑฐ C์–ธ์–ด ๊ธฐ๋ฐ˜์ธ Win32 API์—์„œ๋ถ€ํ„ฐ ์ถœ๋ฐœํ–ˆ๊ณ  GUI ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ์žˆ์–ด ๊ฑฐ์˜ ํ•„์ˆ˜์ ์ธ ๋งค์ฒด์˜€๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์‚ฌ๋ž‘์„ ๋ฐ›์•˜์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ตœ๊ทผ์—๋Š” ์›น ์•ฑyozm.wishket.com  ์Šค๋งˆํŠธ ํŒฉํ† ๋ฆฌ ๊ด€๋ จ ๊ฐœ๋ฐœ์—์„œ ๋น ์งˆ ์ˆ˜ ์—†๋Š” C#.๊ทธ๋ฆฌ๊ณ  ์›น์•ฑ๋ถ. ๊ณผ์—ฐ ๊ทธ ๋Œ€๊ฒฐ์€ ๋ˆ„๊ฐ€ ์ด๊ธธ์ง€์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์จ๋†“์€ ๊ธ€. ๊ฐœ์ธ์ ์œผ๋กœ ํ˜„์žฅ ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์€ ์•„์ง๊นŒ์ง€๋Š” ์›น์œผ๋กœ ๋Œ€์ฒด๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ ๊ฐ™๊ณ ,์›น์•ฑ์€ ๊ด€๋ฆฌ์ง ์šฉ๋„๋กœ ๋ฆฌํฌํŠธ ์ œ์‹œํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ๋งŒ ๊ฐ€๋Šฅํ•  ๋“ฏ? ์›น์•ฑ์ด ์–ด๋–ป๊ฒŒ ๋ฐœ์ „ํ•˜๋Š๋ƒ์— ๋”ฐ๋ฅธ ์ด์•ผ๊ธฐ๊ฒ ์ง€๋งŒ.
์Šคํฌ๋žฉ :: ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ์ง๊ตฐ, ๋ฐ์ดํ„ฐ ์• ๋„๋ฆฌํ‹ฑ์Šค ์—”์ง€๋‹ˆ์–ด๋ž€?
2024.05.03
์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ์ง๊ตฐ, ๋ฐ์ดํ„ฐ ์• ๋„๋ฆฌํ‹ฑ์Šค ์—”์ง€๋‹ˆ์–ด๋ž€? | ์š”์ฆ˜IT‘์• ๋„๋ฆฌํ‹ฑ์Šค ์—”์ง€๋‹ˆ์–ด’, ํ˜น์€ ‘๋ถ„์„ ์—”์ง€๋‹ˆ์–ด’๋ผ๊ณ  ๋“ค์–ด๋ณด์…จ๋‚˜์š”? ๋ฏธ๊ตญ์—์„œ๋Š” ๋Œ€๋žต 3~4๋…„ ์ „๋ถ€ํ„ฐ ํ™”์ œ๊ฐ€ ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ , ํ•œ๊ตญ์—์„œ๋Š” ์ž‘๋…„๋ถ€ํ„ฐ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ฃผ๋ชฉ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•ดyozm.wishket.com ๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ด€๋ จ ์—…๋ฌด์— ๊ด€์‹ฌ์ด ์ƒ๊ธฐ๋Š” ์š”์ฆ˜!  ์šฐ๋ฆฌ ํšŒ์‚ฌ์—์„œ๋„ ์ด๋Ÿฐ ์—…๋ฌด๋ฅผ ํ•˜๊ณ  ์žˆ์œผ๋‹ˆ..๋ฐฐ์šธ ๊ธฐํšŒ๊ฐ€ ์žˆ์œผ๋ฉด ์™์™ ๋ฐฐ์›Œ๋ด์•ผ๊ฒ ๋‹ค..!
[์Šคํฌ๋žฉ] ๊นจ์ง„ ์œ ๋ฆฌ์ฐฝ์˜ ๋ฒ•์น™
2024.04.25
๊นจ์ง„ ์œ ๋ฆฌ์ฐฝ์˜ ๋ฒ•์น™Engineering Blog by Dale Seowww.daleseo.com  ๊นจ์ง„ ์œ ๋ฆฌ์ฐฝ์˜ ๋ฒ•์น™(Broken Windows Theory)- ๊นจ์ง„ ์œ ๋ฆฌ์ฐฝ์„ ๋ฐฉ์น˜ํ•˜๋ฉด ๊ทธ ์ง€์ ์„ ์ค‘์‹ฌ์œผ๋กœ ๋ฒ”์ฃ„๊ฐ€ ํ™•์‚ฐ๋œ๋‹ค๋Š” ์‚ฌํšŒํ•™ ์ด๋ก  ํ˜น์‹œ ์ง€๊ธˆ ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ์—์„œ ์—ฌ๊ธฐ์ €๊ธฐ์— ๋นจ๊ฐ„ ๋…ธ๋ž€ ๋ฐ‘์ค„์ด ๊ทธ์–ด์ ธ ์žˆ๋Š”๋ฐ, ๊ท€์ฐฎ์•„์„œ ๋ฐฉ์น˜ํ•˜๊ณ  ๊ณ„์‹œ์ง€๋Š” ์•Š์œผ์‹ ๊ฐ€์š”? ์•…์ทจ๊ฐ€ ์ง„๋™ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ฆฌํŽ™ํ† ๋ง(refactoring)ํ•˜์ง€ ์•Š๊ณ  ๊ทธ ์ฃผ๋ณ€์— ๋” ๋ƒ„์ƒˆ๋‚˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ง๋ถ™์ด๊ณ  ๊ณ„์‹œ์ง€๋Š” ์•Š์œผ์‹ ๊ฐ€์š”? ์„œ๋ฒ„๋ฅผ ๋„์šฐ๋ฉด ํ„ฐ๋ฏธ๋„์— ๊ฐ–๊ฐ€์ง€ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋“ค์ด ๋‚˜์˜ค๋Š”๋ฐ, ์–ด์ฐŒ๋๋“  ์„œ๋ฒ„๊ฐ€ ๋Œ์•„๊ฐ€๋‹ˆ ๋ฌด์‹œํ•˜๊ณ  ์žˆ์ง€ ์•Š์œผ์‹ ๊ฐ€์š”? ์›น์‚ฌ์ดํŠธ๋ฅผ ์—ด๋ฉด ๋ธŒ๋ผ์šฐ์ € ์ฝ˜์†”์— ์˜ค๋ฅ˜๊ฐ€ ๊ฐ€๋“ํ•œ๋ฐ, ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ๋ชจ๋ฅด๊ฒ ์ง€ ํ•˜๊ณ  ๊ฐ™์ด ๋ชจ๋ฅธ ์ฒ™ํ•˜๊ณ  ๊ณ„์‹œ์ง€๋Š” ์•Š์œผ์‹ ๊ฐ€์š”? ์ง€๊ธˆ ๋ฐ”๋กœ ์žก์ง€..
list_img
๊ฐœ๋ฐœ์ž :: ์—ฐ์ฐจ ๋ณ„ ๊ณต๋ถ€ ๋ฐฉ๋ฒ•
2024.02.13
๊ณต๋ถ€๋ž€ '๋จธ๋ฆฌ ์†์— ์ง€์‹์„ ์‘ค์…”๋„ฃ๋Š” ํ–‰์œ„'๊ฐ€ ์•„๋‹ˆ๋ผ '์„ธ์ƒ์˜ ํ•ด์ƒ๋„๋ฅผ ์˜ฌ๋ฆฌ๋Š” ํ–‰์œ„'๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋‰ด์Šค์˜ ๋ฐฐ๊ฒฝ์Œ์•…์— ๋ถˆ๊ณผํ–ˆ๋˜ ๋‹›์ผ€์ด ํ‰๊ท  ์ฃผ๊ฐ€๊ฐ€ ์˜๋ฏธ๋ฅผ ์ง€๋‹Œ ์ˆซ์ž๊ฐ€ ๋˜๊ฑฐ๋‚˜ ์™ธ๊ตญ์ธ ๊ด€๊ด‘๊ฐ์˜ ๋Œ€ํ™”๋ฅผ ์•Œ์•„๋“ค์„ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๊ฑฐ๋‚˜ ๋‹จ์ˆœํ•œ ๊ฐ€๋กœ์ˆ˜๊ฐ€ '๊ฐœํ™” ์‹œ๊ธฐ๋ฅผ ๋งž์ดํ•œ ๋ฐฐ๋กฑ๋‚˜๋ฌด'๊ฐ€ ๋˜๊ธฐ๋„ ํ•œ๋‹ค. ์ด 'ํ•ด์ƒ๋„ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ'์„ ์ฆ๊ธฐ๋Š” ์‚ฌ๋žŒ์€ ๊ฐ•ํ•˜๋‹ค. ์ฐธ๊ณ  ๊ธ€ ๊ทธ๋Œ€๋“ค, ์–ด๋–ป๊ฒŒ ๊ณต๋ถ€ํ•  ๊ฒƒ์ธ๊ฐ€ ๊ทธ๋Œ€๋“ค, ์–ด๋–ป๊ฒŒ ๊ณต๋ถ€ํ•  ๊ฒƒ์ธ๊ฐ€. (์ฃผ๋‹ˆ์–ด, ์ค‘๋‹ˆ์–ด, ์‹œ๋‹ˆ์–ด์˜ ๊ณต๋ถ€๋ฐฉ๋ฒ•์€ ๊ฐ™์•„์•ผ ํ• ๊นŒ?) charsyam@naver.com docs.google.com
list_img
[์Šคํฌ๋žฉ] ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค ๋งŒ๋“ค์ง€ ๋งˆ์„ธ์š”, ์–ด์ฐจํ”ผ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
2024.01.26
์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค ๋งŒ๋“ค์ง€ ๋งˆ์„ธ์š”, ์–ด์ฐจํ”ผ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค | ์š”์ฆ˜IT ์ปค๋ฎค๋‹ˆํ‹ฐ ์ „์„ฑ์‹œ๋Œ€๋ผ ํ•  ์ •๋„๋กœ ์—…์ข…๊ณผ ๋ถ„์•ผ๋ฅผ ๋ง‰๋ก ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๋“ฑ์žฅํ•˜๊ณ  ์žˆ๋‹ค. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์„ฑ๊ณตํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋ฒ•์น™, ์ปค๋ฎค๋‹ˆํ‹ฐ ๋นŒ๋”ฉ ๋ฐฉ๋ฒ•๋ก ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•œ๋‹ค. ์ •๋ง์ผ๊นŒ? ์ปค๋ฎค yozm.wishket.com ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹ถ์–ดํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋ดค์œผ๋ฉด ํ•˜๋Š” ๋ฐ์ดํ„ฐ์ ์ธ ์ ‘๊ทผ์œผ๋กœ ํ†ต์ฐฐ๋ ฅ์„ ์ฃผ๋Š” ๊ธ€. ์š”์ฆ˜์—๋Š” ์ด๋Ÿฐ ๋ฐ์ดํ„ฐ์ ์ธ ๊ด€์ ์— ๋ˆˆ์ด ๊ฐ€๋Š”๋ฐ . . ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉด ์ข‹์„์ง€ ๊ณ ๋ฏผ์ด๋‹ค.
ChatOps๋ฅผ ํ†ตํ•œ ์—…๋ฌด ์ž๋™ํ™”(feat. Slack Hubot) 2
2023.11.16
ChatOps๋ฅผ ํ†ตํ•œ ์—…๋ฌด ์ž๋™ํ™”(feat. Slack Hubot) ๋“ค์–ด๊ฐ€๋ฉฐ ์•ˆ๋…•ํ•˜์„ธ์š”. LINE NEXT DevOps ํŒ€์—์„œ ๋ธ”๋ก์ฒด์ธ ํ”Œ๋žซํผ๊ณผ DOSI, GAME DOSI์˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์šด์˜ ๋ฐ ์ธํ”„๋ผ๋ฅผ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋Š” ์ด๋™์›์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ LINE ... techblog.lycorp.co.jp LINE ์—์„œ slack ๊ณผ ์—ฐ๋™ํ•œ ์—…๋ฌด์šฉ ์ฑ—๋ด‡ ๊ฐœ๋ฐœ?ํ•˜์—ฌ ํ™œ์šฉํ•œ ์˜ˆ์‹œ. devops ๋ถ€์„œ ์—…๋ฌด์™€ ์—ฐ๊ด€. ๋ฐฐํฌ์™€ ๊ด€๋ จ๋œ ๋ถ€๋ถ„์„ ์ผ๋ถ€ ์ž๋™ํ™” ์‹œํ‚จ ์ผ€์ด์Šค ์ผ€์ด์Šค ์Šคํ„ฐ๋””. ๊ธฐํƒ€ ๋‹ค์–‘ํ•œ ๋„๊ตฌ์™€ ์—ฐ๊ณ„๊ฐ€ ์†์‰ฌ์šด hubot์„ ์‘์šฉํ•œ ์ผ€์ด์Šค. ์ด ๋ชจ๋ธ์˜ To be ๋ฐฐํฌ ์š”์ฒญ์„ Jira์™€ ์—ฐ๊ณ„ํ•ด ์ผ๊ฐ ๊ด€๋ฆฌ ๋ฐฐํฌ ๊ณต์ง€์™€ ๋ฐฐํฌ ์•Œ๋ฆผ์„ ์ฑ„ํŒ…์œผ๋กœ ์ „๋‹ฌ ์„œ๋น„์Šค ์•ˆ์ • ์ง€ํ‘œ ์ž๋™ํ™” ๋ชจ๋‹ˆํ„ฐ๋ง ์–ธ์ œ, ์–ด๋””์„œ๋‚˜ ์†์‰ฝ๊ฒŒ ๋ฐฐํฌ ๋ฐ ๋กค๋ฐฑ ์–ด๋–ค ์ผ์€ ์‚ฌ๋žŒ..
์ปค์Šคํ…€ํ•œ ๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ 'i18next' (React-i18next)
2023.11.01
ํšŒ์‚ฌ์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ํ•ด์™ธ ๋ฒ•์ธ์ด ์กด์žฌํ•˜๊ณ  ์žˆ์–ด, ๋‹ค๊ตญ์–ด ์ง€์›์ด ํ•„์š”ํ•˜๋‹ค. ์›นํŽ˜์ด์ง€์˜ ๊ฒฝ์šฐ chrome ๋“ฑ ์ธํ„ฐ๋„ท ๋ธŒ๋ผ์šฐ์ € ๋‚ด ๋ฒˆ์—ญ์œผ๋กœ๋„ ์ง€์›์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ํšŒ์‚ฌ์—์„œ๋Š” ์‚ฌ์ „์ ์œผ๋กœ ๋ฒˆ์—ญํ•˜๊ธฐ ๋ณด๋‹ค๋Š”, ๊ฐ ๋‚˜๋ผ์—์„œ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋‹จ์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ์ผ€์ด์Šค๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋œ๋‹ค. โ€‹ ์ด๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด i18next. i18next๋ž€? Javascript๋กœ ์ž‘์„ฑ๋œ ๊ตญ์ œํ™” ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์—ฌ๋Ÿฌ ๊ตญ๊ฐ€์˜ ์–ธ์–ด๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ๋Š” react-i18next, next-i18next, next-translation ์ด๋ ‡๊ฒŒ 3๊ฐ€์ง€. ๊ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์žฅ๋‹จ์ ๊ณผ ํŠน์„ฑ์ด ์กด์žฌํ•˜๋ฏ€๋กœ ์•Œ์•„๋ณด๊ณ  ์ฑ„ํƒํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. โ€‹ ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ react-i18next ๋ฅผ ์ฑ„ํƒํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ.. ์ •ํ™•ํžˆ๋Š” ์ฑ„ํƒ ๋‹นํ–ˆ๋‹ค. ๊ณ ๋กœ..
list_img
์‰ฌ์šด ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ "Recoil" 2
2023.11.01
ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ ๊ถŒํ•œ ๊ด€๋ฆฌ๋ฅผ recoil ๋กœ ๋‹ค๋ฃจ๊ณ  ์žˆ๋‹ค. โ€‹ Rocoil ์ด๋ž€? ํŽ˜์ด์Šค๋ถ์—์„œ ๋ฐœํ‘œํ•œ React ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. usestate ๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ๋ณต์žกํ•˜๊ฒŒ ๋  ์‹œ, props drilling์ด ์ผ์–ด๋‚˜๊ฒŒ ๋˜๋Š”๋ฐ, Recoil์€ ์ด๋Ÿฌํ•œ ํ–‰์œ„๋ฅผ ๋ฐฉ์ง€ํ•˜๊ฒŒ ํ•ด์ค€๋‹ค. โ€‹ Recoil์˜ ๊ฒฝ์šฐ. React ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹Œ, ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์•„๋ž˜์˜ ๋งํฌ์—์„œ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค. Recoil A state management library for React. recoiljs.org Recoil ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ฃผ์š”ํ•œ ๊ฐœ๋…์œผ๋กœ๋Š” Atom ๊ณผ selector๊ฐ€ ์žˆ๋‹ค. โ€‹ Recoil ์—์„œ ํ•˜๋‚˜์˜ ์ „์—ญ ์ƒํƒœ๋ฅผ Atom ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, Atom ..
list_img
useref์—์„œ ์ƒ์† ๊ฐœ๋…์ด ๋ถ™์€ "ForwardRef"์™€ "useImperativeHandle" 2
2023.11.01
๋ณดํ†ต useRef ๊นŒ์ง€๋Š” ํ”ํžˆ๋“ค ์•ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ, ๋งŒ์•ฝ ๋‚ด๊ฐ€ ์–ด๋–ค ๊ณณ์—์„œ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ์ผ๊ด„๋กœ ์ •์˜ํ•ด๋‘๊ณ , ๋ถ€๋ชจ ๋‹จ์—์„œ ๊บผ๋‚ด์–ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํ˜•ํƒœ์˜ ๋กœ์ง์„ ์ง ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ์ด๋•Œ๋„ ref๋ฅผ ๋‹ค๋ฃจ๋Š” case๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด? โ€‹ ์ •๋‹ต์€ ForwardRef ์ด๋‹ค. ๋ถ€๋ชจ์—์„œ ์ž์‹์˜ ref ์š”์†Œ๋“ค์„ ๋‹ค๋ฃจ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ๋ฒ•. โ€‹ ๋˜, ์ž์‹๋‹จ์— ์žˆ๋Š” function ์„ ๋ถ€๋ชจ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด? (๋ณดํ†ต์€ ๋ถ€๋ชจ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋งž์ง€๋งŒ, ๋ฌด์ž‘์ • ๊ทธ๋ ‡๊ฒŒ ๋กœ์ง์„ ์งœ๋ฒ„๋ฆฌ๋ฉด ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ ๋“ค์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ์ตœ์ƒ์œ„, ์ƒ์œ„ ๋กœ์ง์ด ๋น„๋Œ€ํ•ด์ง์„ ๋ง‰์„ ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค.) โ€‹ ์ •๋‹ต์€ useImperativeHandle ์ด๋‹ค. ์ž์‹์˜ ๋ฌธ๋ฒ•์ด๋‚˜ ๋ณ€์ˆ˜๋ฅผ ๋ถ€๋ชจ ๋‹จ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฌธ๋ฒ•. โ€‹ ์šฐ์„ .. forwardRef ๋ถ€ํ„ฐ... ..
DOM ์กฐ์ž‘์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” "useRef" 2
2023.11.01
์ปดํฌ๋„ŒํŠธ์˜ ์†์„ฑ ๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜๋„ ์žˆ๊ณ , value๋‚˜ style ๊ฐ’ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ๋ฐ”๊ฟ”์ค„ ์ˆ˜๋„ ์žˆ๋Š”. DOM์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ref. ๋ Œ๋”๋ง์— ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฐ’์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ref. ์— ๋Œ€ํ•˜์—ฌ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. โ€‹ ref ๋Š” ๋น„๊ต์  ๊ฐ„๋‹จํ•œ ๊ฐœ๋…์ด๋ฏ€๋กœ forwardRef ์™€ useImperativeHandle ๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•œ ๋„์•ฝ ๋‹จ๊ณ„์ฒ˜๋Ÿผ ๊ฐ€๋ณ๊ฒŒ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜๊ฒ ์Œ. โ€‹ ๋ง๋ถ™ํžˆ๋Š” ๋ง.. ๋ชจ ๋ถ€์žฅ์˜ "Ref ๋Š” React ์ƒ๋ช…์ฃผ๊ธฐ์™€ ์–ด์šธ๋ฆฌ์ง€ ์•Š๋Š” ๋ฌธ๋ฒ•์œผ๋กœ React ์ƒ์—์„œ๋„ ์ง€์–‘ํ•ด์•ผ ํ•œ๋‹ค"๋Š” ๋ฐœ์–ธ์— ๋Œ€ํ•˜์—ฌ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. Ref ๋ฅผ ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ์„ ์–ธํ•˜๊ณ , ๋‹ค๋ฅธ ๋ฌธ๋ฒ•์œผ๋กœ ๋Œ€์ฒด๊ฐ€ ๊ฐ€๋Šฅํ•œ๋ฐ๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ฌด์ง€์„ฑ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ œ. (์ด๊ฒƒ์€ ๋‹ค๋ฅธ ๋ฌธ๋ฒ•๋„ ๋™์ผํ•˜๋‹ค. ๊ฐ์ž๊ฐ€ ๊ฐ€์ง€๋Š” ๊ณ ์œ ์˜ ํŠน์„ฑ์„..
์ดˆ๊ธฐ ๋ Œ๋”๋ง ๋ฐ ๋ณ€์ˆ˜ ๋ณ€ํ™˜์— ๋”ฐ๋ฅธ ๊ธฐ๋Šฅ์„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•œ "useEffect"
2023.11.01
UseEffect ๋ž€. ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง ๋  ๋•Œ๋งˆ๋‹ค ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” Hook์ž„. โ€‹ ๊ธฐ์กด์—๋Š” ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ. useEffect๋ฅผ ์“ฐ๋ฉด ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ side effect ๋ฅผ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ผ์ดํ”„์‚ฌ์ดํด hook(componentDidMount, componentDidUpdate, componentWillUnMount)์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” useEffect. ์‚ฌ์šฉ ๋ฐฉ๋ฒ• import { useEffect } from 'react'; function useeffecttest() { // ์‚ฌ์šฉ๋ฒ• 1. ์ข…์†์„ฑ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—†์Œ. useEffect(() => { DoSomething(); }); // ์‚ฌ์šฉ๋ฒ• 2. ๋นˆ ์ข…์†์„ฑ ๋งค๊ฐœ๋ณ€์ˆ˜ ..
list_img
๋™์ ์ธ ๊ฐ’์„ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜, useState 2
2023.11.01
๋ฆฌ์•กํŠธ 16.8 ๋ฒ„์ „ ์ด์ „์—์„œ๋Š” ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜๊ฐ€ ์—†์—ˆ์Œ. (์ปจ๋ฒ„ํŒ… ํ•˜๋Š” ์‚ฌ๋žŒ๋„ ๋ณด์•˜๋‹ค..) ํ•˜์ง€๋งŒ 16.8 ๋ฒ„์ „ ๋ถ€ํ„ฐ Hooks ๋ผ๋Š” ๊ธฐ๋Šฅ์ด ๋„์ž…๋˜๋ฉฐ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.! โ€‹ โ€ป Hook : ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ React state (๋ฆฌ์•กํŠธ์—์„œ ์•„์ฃผ ์ค‘์š”ํ•œ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜) ์™€ ์ƒ๋ช…์ฃผ๊ธฐ ๊ธฐ๋Šฅ(lifecycle features)์„ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜. โ€ป ์ƒํƒœ๊ด€๋ฆฌ(State Management) : ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•. ์—ฌ๋Ÿฌ component ๊ฐ„์— ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๊ณผ ์ด๋ฒคํŠธ ํ†ต์‹ ์„ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ. โ€‹ ๋ฆฌ์•กํŠธ๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด usestate ๋ฅผ ์ ์ ˆํ•œ ์œ„์น˜์—์„œ ์„ ์–ธํ•˜๊ณ , ์ž˜ ๋‚ด๋ ค์ฃผ๊ณ (์ƒ์†) ๊ผฌ์ด์ง€ ์•Š๋„๋ก ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๊ณ ์˜ค๊ธ‰ ์Šคํ‚ฌ..