์ „์ฒด ๊ธ€

๊ฐœ๋ฐœ์ผ์ง€ ๋ฐ ์ •๋ณด ๊ณต์œ 
์ฐธ๊ณ ์‚ฌ์ดํŠธ • Inpa Dev๋‹˜์˜ ํ‹ฐ์Šคํ† ๋ฆฌ git ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•˜์—ฌ ์›๊ฒฉ ์ €์žฅ์†Œ์— ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•ด๋ณด์ž. ์•ž ๊ฒŒ์‹œ๊ธ€์—์„œ git clone์„ ํ†ตํ•ด ๋ฐ›์€ ํด๋”๋ฅผ ๋“ค์–ด๊ฐ€ ํด๋”์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•ด๋ณด์ž. ๐Ÿ” git status ํด๋”์˜ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ํŠธ๋ž˜ํ‚นํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค€๋‹ค. ์ด๋•Œ, ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋œ ํŒŒ์ผ์€ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋‚˜, ์ €์žฅ์†Œ์— ๋“ฑ๋กํ•˜์ง€ ์•Š์„ ํŒŒ์ผ๋“ค์ด๊ณ  ๋…น์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋˜๋Š” ํŒŒ์ผ๋“ค์€ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜์—ˆ๊ณ , ์ €์žฅ์†Œ์— ๋“ฑ๋กํ•  ํŒŒ์ผ๋“ค์ด๋‹ค. $ git status # ์ €์žฅ์†Œ์˜ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•œ๋‹ค. # ์–ด๋–ค ํŒŒ์ผ์ด ์ €์žฅ์†Œ ์•ˆ์— ์žˆ๋Š”์ง€, ์ปค๋ฐ‹์ด ํ•„์š”ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๋Š”์ง€, ํ˜„์žฌ ์ €์žฅ์†Œ์˜ ์–ด๋–ค ๋ธŒ๋žœ์น˜์—์„œ # ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋“ฑ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. $ git status -s # git status์™€ ์œ ์‚ฌํ•˜๋‚˜ ์›Œํ‚น ํŠธ๋ฆฌ์˜ ์ƒํƒœ๋ฅผ ์š”์•ฝํ•ด..
์ฐธ๊ณ ์‚ฌ์ดํŠธ โˆ™ Git - Git ์„œ๋ฒ„ - SSH ๊ณต๊ฐœํ‚ค ๋งŒ๋“ค๊ธฐ ๐Ÿ”‘ SSH ๊ณต๊ฐœํ‚ค ๋กœ์ปฌ์—์„œ ๋ณธ์ธ๋งŒ์˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ๋ผ๋ฉด ์•ž ๊ฒŒ์‹œ๊ธ€ ์ฒ˜๋Ÿผ SSH Key๊ฐ€ ์—†์ด๋„ Git์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์™ธ๋ถ€ Git ์„œ๋ฒ„์˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด SSH ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. ๋งŽ์€ Git ์„œ๋ฒ„๋“ค์€ SSH ๊ณต๊ฐœํ‚ค๋กœ ์ธ์ฆํ•œ๋‹ค. ๋‚ด ์ปดํ“จํ„ฐ๊ฐ€ ์•„๋‹Œ ๋„คํŠธ์›Œํฌ๋กœ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์— ์ „๋‹ฌํ•ด์ฃผ๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š”๊ฒŒ ๋ฐ”๋กœ SSH์ด๋‹ค. ๊ณต๊ฐœํ‚ค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋ชจ๋“  ์šด์˜์ฒด์ œ๊ฐ€ ๋น„์Šทํ•˜๋‹ค. ๐Ÿ”‘ ๊ณต๊ฐœํ‚ค ์ƒ์„ฑ ์‚ฌ์šฉ์ž์˜ SSH ํ‚ค๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ~/.ssh ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅํ•œ๋‹ค. $cd ~/.ssh $ls id_dsa๋˜๋Š” id_rsa๋ผ๋Š” ํŒŒ์ผ์˜ ์ด๋ฆ„์ด ๋ณด์ผ ๊ฒƒ์ด๊ณ  ๊ฐ™์€ ํŒŒ์ผ๋ช…์œผ๋กœ .pub์ด๋ผ๋Š” ํ™•์žฅ์ž๊ฐ€ ๋ถ™์€ ํŒŒ์ผ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ ์ค‘, .pu..
GitHub๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด GitHub์— ์ ‘์†ํ•œ๋‹ค. https://github.com/ GitHub: Let’s build from here GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea... github.com ๐Ÿ’พ Repository ์ƒ์„ฑ ์ขŒ์ธก ์ƒ๋‹จ์— New๋ฅผ ํด๋ฆญํ•˜์—ฌ Repository ์ƒ์„ฑ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ๋‹ค. Owner *: ์ €์žฅ์†Œ์˜ ์†Œ์œ ์ž๋ฅผ ์ง€์ •ํ•œ๋‹ค. ๊ฐœ์ธ์ด ๋  ์ˆ˜๋„ Organization ๊ฐ’..
๐Ÿ› ๏ธ Flutter Flutter๋Š” Google์—์„œ ๊ฐœ๋ฐœํ•˜๊ณ  ์ง€์›ํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ด ์„น์…˜์—์„œ๋Š” Flutter ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ค์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿบ Homebrew ์„ค์น˜ Homebrew๋Š” macOS์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ Terminal์—์„œ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ , ๋Œ€๋ถ€๋ถ„ ๋ณ„๋„์˜ Path ์„ค์ • ์—†์ด ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •์„ ๋„์™€์ค๋‹ˆ๋‹ค. ๐Ÿ”ง Dart ์„ค์น˜ Dart๋Š” Flutter์— ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋ฐœ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. # Dart์˜ ์„ค์น˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. $ brew -v # ์„ค์น˜ ์•ˆ ๋˜์–ด ์žˆ์„ ์‹œ, $ brew install dart ๐Ÿ”จ Xcode ์„ค์น˜ App Store์—์„œ Xcode๋ฅผ ์„ค์น˜ํ•˜์—ฌ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์— ์‚ฌ์šฉ๋  ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ธฐ..
์ฐธ๊ณ  ์‚ฌ์ดํŠธ โˆ™ Dart ๊ณต์‹ ๋ฌธ์„œ - ๋ณ€์ˆ˜ ๋ณ€์ˆ˜ Dart์˜ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. dart-ko.dev ๐ŸŽฏ Null safety ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋‹ค๋ณด๋ฉด ๋Ÿฐํƒ€์ž„์— Null Pointer Exception์„ ๋งŒ๋‚˜๋Š” ๊ฒฝํ—˜์€ ํ”ํ•˜๋‹ค. ๋ฐฐํฌ ์ „ ํ•ด๋‹น ์—๋Ÿฌ๋ฅผ ์žก์•„๋‚ด๋ฉด ์ข‹์ง€๋งŒ, Dart๋Š” null์ด ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์„ ๋ง‰๊ณ ์žˆ๋‹ค. ๋•๋ถ„์— ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋” ์™„๋ฒฝํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ“ฆ ๋ณ€์ˆ˜ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. var name = 'Bob'; name์ด๋ผ๋Š” ๋ณ€์ˆ˜๋Š” 'Bob'์ด๋ผ๋Š” ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” String ๊ฐ์ฒด์˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ํฌํ•จํ•œ๋‹ค. ํƒ€์ž…์ถ”๋ก ์„ ํ†ตํ•ด name์˜ ํƒ€์ž…์€ String์œผ๋กœ ์ถ”๋ก ๋œ๋‹ค. ๋งŒ์•ฝ ๊ฐ์ฒด๊ฐ€ ๋‹จ์ผ ํƒ€์ž…์œผ๋กœ ์ œํ•œ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, Object ํƒ€์ž…์œผ๋กœ ๋ช…์‹œํ•˜๋ฉด ..
์ฐธ๊ณ ์‚ฌ์ดํŠธ • ๋ฆฌ์•กํŠธ ๊ณต์‹ ๋ฌธ์„œ - useContext ๐ŸŒ useContext useContext๋Š” ์ปดํฌ๋„ŒํŠธ์˜ Context๋ฅผ ์ฝ๊ณ  ๊ตฌ๋…ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฆฌ์•กํŠธ Hook์ด๋‹ค. ๋ฆฌ์•กํŠธ์—์„œ ๋ฐ์ดํ„ฐ๊ฐ’์„ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ ํ˜ธ์ถœ ์‹œ, ๋ฐ์ดํ„ฐ prop์„ ๋‹ด๊ณ , ํ•ด๋‹น props๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. useContext๋Š” ํ•ด๋‹น ๊ณผ์ •์— ์ƒ๊ด€์—†์ด useContext๋กœ ๊ฐ์‹ผ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์˜ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ๋Š” recoil์ด ์žˆ๋‹ค. ๐Ÿ“ฆ Parameter useContext ์ปจํ…์ŠคํŠธ๋ฅผ ์ฝ๊ณ  ๊ตฌ๋…ํ•˜๋ ค๋ฉด ์ปดํฌ๋„ŒํŠธ ์ตœ์ƒ์œ„์—์„œ ํ˜ธ์ถœํ•ด์•ผํ•œ๋‹ค. const value = useContext(SomeContext); • SomeContext: ํ•ด๋‹น ์ปจํ…์ŠคํŠธ๋Š” cr..
์ฐธ๊ณ  ์‚ฌ์ดํŠธ • ๋ฆฌ์•กํŠธ ๊ณต์‹ ๋ฌธ์„œ - useCallback • ๋ณ„์ฝ”๋”ฉ๋‹˜์˜ youtube - useCallback ๊ฐ•์˜ ๐Ÿชฃ useCallback useCallback์€ ์žฌ๋ Œ๋”๋ง ์‚ฌ์ด์— ํ•จ์ˆ˜ ์ •์˜๋ฅผ ์บ์‹œํ•  ์ˆ˜ ์žˆ๋Š” React Hook์ด๋‹ค. ๐Ÿ“ข ์ฐธ์กฐ useCallback ์žฌ๋ Œ๋”๋ง ์‚ฌ์ด์— ํ•จ์ˆ˜ ์ •์˜๋ฅผ ์บ์‹œํ•˜๋ ค๋ฉด ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ตœ์ƒ์œ„ ์ˆ˜์ค€์—์„œ ํ˜ธ์ถœํ•˜๋ฉด ๋œ๋‹ค. const cachedFn = useCallback(fn, [dependencies]); ๐Ÿ“ฆ Parameters • fn: ์บ์‹œํ•˜๋ ค๋Š” ํ•จ์ˆ˜์ด๋‹ค. ๋ชจ๋“  ์ธ์ˆ˜๋ฅผ ์ทจํ•˜๊ณ  ๋ชจ๋“  ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. React๋Š” ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์ค‘์— ํ•จ์ˆ˜๋ฅผ ๋‹ค์‹œ ๋ฐ˜ํ™˜ํ•œ๋‹ค(ํ˜ธ์ถœX). ๋‹ค์Œ ๋ Œ๋”๋ง์—์„œ dependencies๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ๋‹ค์‹œ ์ œ๊ณตํ•˜๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ..
์ฐธ๊ณ  ์‚ฌ์ดํŠธ • ๋ฆฌ์•กํŠธ ๊ณต์‹ ๋ฌธ์„œ - useMemo ๐Ÿ“ useMemo useMemo๋Š” ์žฌ๋ Œ๋”๋ง ๊ฐ„ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ *์บ์‹œ(Cache)ํ•  ์ˆ˜ ์žˆ๋Š” React Hook์ด๋‹ค. ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์žฌ๊ณ„์‚ฐ์„ ๊ฑด๋„ˆ๋›ฐ๊ธฐ ์œ„ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. *์บ์‹œ(Cache): ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ ๋ฐ์ดํ„ฐ๋‚˜ ๊ฐ’์„ ๋ฏธ๋ฆฌ ๋ณต์‚ฌํ•ด ๋†“๋Š” ์ž„์‹œ ์žฅ์†Œ๋กœ ๋ฐ์ดํ„ฐ ์ ‘๊ทผํ•˜๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ฑฐ๋‚˜ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๋Š” ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ ์ถœ์ฒ˜: Wikipedia ๋ฐ˜ํ™˜๊ฐ’์„ ์บ์‹ฑํ•˜๋Š” ๊ฒƒ์„ ๋ฉ”๋ชจ์ด์ œ์ด์…˜(memoization)์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ, ์ด๊ฒƒ์ด ์ด Hook์ด ๋ถˆ๋ฆฌ๋Š” ์ด์œ ์ด๋‹ค. ๐Ÿ“ข ์ฐธ์กฐ useMemo ์žฌ๋ Œ๋”๋ง ๊ฐ„์˜ ๊ณ„์‚ฐ์„ ์บ์‹œํ•˜๋ ค๋ฉด ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ตœ์ƒ์œ„ ์ˆ˜์ค€์—์„œ ํ˜ธ์ถœํ•œ๋‹ค. const cachedValue = useMemo(calculateValue, [depende..
ma.caron_g
๐Ÿงช ๋งˆ์นด๋กฑ ๊ฐœ๋ฐœ์‹ค