๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Etc

(15)
[ Dev Tools ] ๊ฐœ๋ฐœ ํˆด ์ถ”์ฒœ. Lazy Git ์˜ค๋Š˜์€ ํšŒ์‚ฌ ๋™๋ฃŒ๋ถ„์ด ์ถ”์ฒœํ•ด ์ค€ ๊ฐœ๋ฐœ ํˆด, Lazy Git์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. Lazygit์€ ์ด๋ฆ„์ฒ˜๋Ÿผ, git์„ ๋”์šฑ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋„๊ตฌ์ด๋‹ค. CLI๋ฅผ ์ด์šฉํ•˜์—ฌ git์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ณด๋‹ค ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์กŒ๋Š”๋ฐ, ๋Œ€ํ‘œ์ ์ธ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Stage Individual Lines ( ์Šคํ…Œ์ด์ง€ ๊ฐœ๋ณ„ ์„ ํƒ ๊ธฐ๋Šฅ ) ์ŠคํŽ˜์ด์Šค๋ฅผ ๋ˆŒ๋Ÿฌ ์„ ํƒํ•œ ๋ผ์ธ์„ ์Šคํ…Œ์ด์ง• ํ•˜๊ฑฐ๋‚˜, v๋ฅผ ๋ˆŒ๋Ÿฌ ๋ผ์ธ ๋ฒ”์œ„ ์„ ํƒ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ a๋ฅผ ๋ˆŒ๋Ÿฌ ํ˜„์žฌ hank ์ „์ฒด ์„ ํƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. Interactive Rebase ( ์–‘๋ฐฉํ–ฅ ๋ฆฌ๋ฒ ์ด์Šค ) i๋ฅผ ๋ˆ„๋ฅด๋ฉด ์–‘๋ฐฉํ–ฅ์˜ ๋ฆฌ๋ฒ ์ด์Šค๊ฐ€ ์‹œ์ž‘๋œ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์Šค์ฟผ์‹œ(s), fixup(f), drop(d), edit(e), move up(ctrl..
[Docker] Docker ์™€ CI CD <01> ์ด๋ผ๋Š” ์ธํ”„๋Ÿฐ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ ๋ณต์Šต ๋ฐ ์ •๋ฆฌ๋ฅผ ์œ„ํ•œ ํฌ์ŠคํŒ…. ๋„์ปค๋ž€ ๋ฌด์—‡์ผ๊นŒ? ๋„์ปค๋ž€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์ƒ์„ฑ, ๋ฐฐํฌ, ์‹คํ–‰์„ ๋” ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ ๋„๊ตฌ์ด๋ฉฐ, ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ & ์ƒํƒœ๊ณ„์ด๋‹ค. ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์šด๋ฐ›๋Š” ๊ณผ์ •์„ ์—„์ฒญ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ทธ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ข…์†์„ฑ์„ ํ•˜๋‚˜์˜ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ฌถ์–ด ํ™˜๊ฒฝ์„ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ , ์–ด๋””์„œ๋“  ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด, ๊ฐ๊ฐ ๋กœ์ปฌ์˜ ์„œ๋ฒ„, ํŒจํ‚ค์ง€๋ฒ„์ „, ์šด์˜์ฒด์ œ ๋“ฑ๋“ฑ์— ๋”ฐ๋ผ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์—๋Ÿฌ๋ฅผ ์—†์•ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ž€ ๋ฌด์—‡์ผ๊นŒ? ์ปจํ…Œ์ด๋„ˆ์˜ ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋…์€, ์šฐ๋ฆฌ๊ฐ€ ์„ ๋ฐ•์ด๋‚˜ ์ฐจ๋Ÿ‰, ๊ธฐ์ฐจ๋“ฑ์˜ ์šด์†ก์ˆ˜๋‹จ์œผ๋กœ ์ง์„ ์˜ฎ๊ธธ ๋•Œ, ์—ฌ๋Ÿฌ๊ฐ€์ง€..
[ TS ] TypeScript 5.4 ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์•Œ์•„๋ณด๊ธฐ. 2024๋…„ 1์›” 24์ผ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ 5.4 ๋ฒ ํƒ€ ๋ฒ„์ „ ๋ฐœํ‘œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด ํฌ์ŠคํŒ…์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ๋ฅผ ๋ณด๊ณ  ๊ณต๋ถ€ํ•˜๊ณ ์ž ํŒŒํŒŒ๊ณ ์™€ ํ•จ๊ป˜ ๋ฒˆ์—ญํ•˜๋ฉฐ ์˜ฎ๊ธด ๊ธ€์ด๋‹ค. (โ€ป์˜ค์—ญ ์ฃผ์˜) ์šฐ์„  TypeScript 5.4 beta ๋ฒ„์ „์€ ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. npm install -D typescript@beta TypeScript 5.4์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์†Œ๊ฐœํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 1. Preserved Narrowing in Clousures Following Last Assignments ๋งˆ์ง€๋ง‰ ํ• ๋‹น ํ›„ ํด๋กœ์ ธ์—์„œ ๋ฒ”์œ„๊ฐ€ ์ข์•„์ง€๋„๋ก ํƒ€์ž…์„ ์œ ์ง€(๋ณด์กด)ํ•˜๋‹ค. 2. NoInfer Utility Type NoInfer ์œ ํ‹ธ๋ฆฌํ‹ฐ ํƒ€์ž… 3. Object.groupBy and Map.groupBy O..
[ Safari ] ์•„์ดํฐ์˜ ์‚ฌํŒŒ๋ฆฌ ๋ชจ๋ฐ”์ผ ์›น ๋””๋ฒ„๊น… ํ•˜๋Š” ๋ฐฉ๋ฒ• ์•„์ดํฐ์œผ๋กœ ๋ชจ๋ฐ”์ผ ์‚ฌํŒŒ๋ฆฌ ์›น์˜ ๋””๋ฒ„๊น…์„ ๋งฅ๋ถ์„ ์ด์šฉํ•˜์—ฌ ํ•˜๋Š” ๋ฐฉ๋ฒ•. 1. ์•„์ดํฐ์˜ ์„ค์ •์•ฑ์„ ์—ฐ๋‹ค. 2. ์„ค์ •์˜ Safari - ๊ณ ๊ธ‰์—์„œ ์›น ์†์„ฑ ์„ค์ •์„ ํ™œ์„ฑํ™” ํ•œ๋‹ค. 3. ์ผ€์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งฅ๋ถ์— ์—ฐ๊ฒฐํ•œ๋‹ค. 4. ๋งฅ๋ถ์—์„œ ์‚ฌํŒŒ๋ฆฌ๋ฅผ ์—ด๊ณ  ๋ฉ”๋‰ด ํƒญ์—์„œ ๊ฐœ๋ฐœ์ž์šฉ ํƒญ์„ ํ™•์ธํ•œ๋‹ค. 5. ๋งฅ๋ถ ์‚ฌํŒŒ๋ฆฌ์˜ ํ™˜๊ฒฝ์„ค์ • - ๊ณ ๊ธ‰ - ๋ฉ”๋‰ด ๋ง‰๋Œ€์—์„œ ๊ฐœ๋ฐœ์ž์šฉ ๋ฉ”๋‰ด ๋ณด๊ธฐ๋ฅผ ํ™œ์„ฑํ™” ํ•œ๋‹ค. 6. ๋งฅ๋ถ ์‚ฌํŒŒ๋ฆฌ์˜ ๊ฐœ๋ฐœ์ž์šฉ ํƒญ์—์„œ iPhone์„ ์„ ํƒํ•œ๋‹ค. 7. ์•„์ดํฐ์˜ ์‚ฌํŒŒ๋ฆฌ ์›นํŽ˜์ด์ง€๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉฐ, ๋งฅ๋ถ ์‚ฌํŒŒ๋ฆฌ๋กœ ๊ฐœ๋ฐœ์ž์šฉ ์ฝ˜์†”์„ ํ†ตํ•ด ๋””๋ฒ„๊น…์„ ํ•œ๋‹ค.
[ ์ฑ… ์ถ”์ฒœ ] ์ดํŽ™ํ‹ฐ๋ธŒ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์˜ฌํ•ด 1์›” ๋ง๋ถ€ํ„ฐ ์–ผ๋งˆ ์ „๊นŒ์ง€ ์ง„ํ–‰ํ–ˆ๋˜ Learning React(๋Ÿฌ๋‹ ๋ฆฌ์•กํŠธ) ์ฑ… ์Šคํ„ฐ๋”” ํŒ€๊ณผ ๋Ÿฌ๋‹ ๋ฆฌ์•กํŠธ ์ฑ… ์Šคํ„ฐ๋””๋ฅผ ๋งˆ์น˜๊ณ , 3์›”๋ถ€ํ„ฐ ์ƒˆ๋กญ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ๋ผ๋Š” ์ฑ…์„ ์Šคํ„ฐ๋”” ์‹œ์ž‘ ์ „์— ๋ฏธ๋ฆฌ ํ›‘์–ด๋ณด์•˜๋‹ค. ํƒ€์ž… ์Šคํฌ๋ฆฝํŠธ๋Š” ๋‚ด๊ฐ€ ์‹ค๋ฌด์—์„œ๋„ ์ž์ฃผ ์“ฐ๊ณ , ์Šคํ„ฐ๋””์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ๋„ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ, ๊ฐ•์˜๋ฅผ ๋“ค์€ ๊ฒƒ ๋นผ๊ณ ๋Š” ๊นŠ๊ฒŒ ๊ณต๋ถ€ํ•œ ๊ธฐ์–ต์ด ์—†์–ด์„œ ๊ต‰์žฅํžˆ ์ข‹์€ ๊ธฐํšŒ๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์•„์„œ, ์ฑ… ์Šคํ„ฐ๋””๊ฐ€ ๊ธฐ๋‹ค๋ ค์ง„๋‹ค. ์ฑ…์˜ ๋ชฉ์ฐจ๋ฅผ ๊ฐ„๋‹จํžˆ ์†Œ๊ฐœํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์•˜๋‹ค. 1์žฅ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์•Œ์•„๋ณด๊ธฐ 2์žฅ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ํƒ€์ž… ์‹œ์Šคํ…œ 3์žฅ ํƒ€์ž… ์ถ”๋ก  4์žฅ ํƒ€์ž… ์„ค๊ณ„ 5์žฅ any ๋‹ค๋ฃจ๊ธฐ 6์žฅ ํƒ€์ž… ์„ ์–ธ๊ณผ @types 7์žฅ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ 8์žฅ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์‚ฌ์‹ค ํšŒ์‚ฌ๋ฅผ ๋‹ค๋‹ˆ๋ฉด์„œ ๋งค์ฃผ ์ •ํ•ด์ง„ ๋ถ„๋Ÿ‰์˜ ์ฑ…์„ ์ฝ๊ณ  ๋‚ด์šฉ ..
[ ์ฑ… ์ถ”์ฒœ ] Learning React ์ž‘๋…„์— ํ–ˆ๋˜ JavaScript Deep Dive ์ฑ… ์Šคํ„ฐ๋”” ํŒ€๊ณผ ํ•จ๊ป˜ 2023๋…„์€ Frontend ์—ฐ์† ์ฑ… ์Šคํ„ฐ๋””๋ฅผ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. 2023๋…„ 1์›” ~ 2์›” ๊นŒ์ง€๋Š” Learning React(๋Ÿฌ๋‹ ๋ฆฌ์•กํŠธ)๋ผ๋Š” ์ฑ…์„ ๊ณต๋ถ€ํ•˜๊ธฐ๋กœ ํ–ˆ๋Š”๋ฐ, ์ด๋ฒˆ ๊ธฐํšŒ์— ์ฒ˜์Œ ์•Œ๊ฒŒ ๋˜์–ด ์ฑ…์„ ์ฝ์–ด๋ณด๋‹ˆ ๋น ๋ฅด๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋„์„œ๋กœ ๊ตฌ๋งคํ•˜์—ฌ ์ฝ๋Š”๋‹ค๋Š” ๊ฒƒ์ด ์กฐ๊ธˆ ๋ณ„๋กœ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๋‚˜์—๊ฒŒ๋„ ๊ดœ์ฐฎ๊ฒŒ ๋Š๊ปด์ง€๋Š” ์ฑ…์ด์—ˆ๋‹ค. 2022๋…„ 3์›” 20์ผ์— 2ํŒ 2์‡„๊ฐ€ ๋ฐœํ–‰๋œ ์ฑ…์ธ๋ฐ, ์ตœ์‹  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ•ต์‹ฌ ์„ค๋ช…๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๋ฉฐ, ๋ฆฌ์•กํŠธ์˜ ์ตœ์‹  ๊ธฐ์ˆ ๋“ค๋„ ์†Œ๊ฐœํ•œ๋‹ค. ์ฑ…์˜ ๋ชฉ๋ก์„ ๊ฐ„๋‹จํžˆ ์†Œ๊ฐœํ•ด๋ณด๋ฉด 1. ๋ฆฌ์•กํŠธ ์†Œ๊ฐœ 2. ๋ฆฌ์•กํŠธ๋ฅผ ์œ„ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ 3. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ™œ์šฉํ•œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ 4...
[ AWS ] S3 ๊ฐ์ฒด ์‚ญ์ œ์— ๋Œ€ํ•œ ๋Œ€์ฒ˜ ๋ฐฉ๋ฒ• ํ˜„์žฌ ํšŒ์‚ฌ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด AWS S3๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ํ‰ํ™”๋กœ์šด ์ˆ˜์š”์ผ ์˜คํ›„ 4์‹œ 16๋ถ„. ๊ฐœ๋ฐœํŒ€์˜ ์‹ ์ž… ๊ฐœ๋ฐœ์ž๋ถ„์ด AWS CLI๋ฅผ ํ†ตํ•ด S3์— ์ €์žฅ๋œ ๊ฐ์ฒด๋“ค์„ ์ผ๊ด„ ์‚ญ์ œ ํ•ด๋ฒ„๋ ธ๋‹ค. aws s3 sync s3://Repo์ด๋ฆ„ --delete --no-progress --exclude '.*' ์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์‚ญ์ œ ํ•˜๋ ค๋Š” ํด๋”๊ฐ€ ์•„๋‹Œ ์ „์ฒด ์˜์—ญ์— ๋Œ€ํ•œ ์‚ญ์ œ ๋ช…๋ น์„ ๋‚ ๋ ค๋ฒ„๋ ธ๋‹ค๊ณ  ํ•œ๋‹ค. ๋ณธ์ธ์ด ์‚ญ์ œํ•˜๋ ค๋Š” ํด๋”๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋‹ค๋ฅธ ํด๋”๋“ค๊นŒ์ง€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‚ญ์ œ๋˜๋Š” ๊ฒƒ์„ ๋ณด๋ฉด์„œ ๋ญ”๊ฐ€ ์ž˜๋ชป๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์€ ๊ทธ๋Š” ๊ธ‰ํ•˜๊ฒŒ ํ•ด๋‹น ๋ช…๋ น์„ ์ •์ง€์‹œ์ผฐ๊ณ , ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋“ค์ด ์ด๋ฆ„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์‚ญ์ œ๋˜์—ˆ๋‹ค. ์ด 6๊ฐœ์˜ ํด๋”๊ฐ€ ์‚ญ์ œ๋˜์—ˆ๊ณ , ๋‹นํ™ฉํ•˜์—ฌ ์Šค์Šค๋กœ ํ•ด๊ฒฐํ•ด ๋ณด๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•˜์˜€๊ณ , ๊ฐœ๋ฐœํŒ€ ์ „์ฒด..
[ Xcode ] iOS DerivedData ๋นŒ๋“œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ DerivedData ์‚ญ์ œ ๋ฐฉ๋ฒ•! Flutter๋‚˜ React-Native๋ฅผ ์ด์šฉํ•ด์„œ iOS ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ์ด์šฉํ•˜๊ฑฐ๋‚˜ ๋””๋ฐ”์ด์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๋นŒ๋“œ๋ฅผ ํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ๊ฐ€๋” ๋งˆ์ฃผํ•˜๊ฒŒ ๋˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”๋ฐ, ๋ฐ”๋กœ DerivedData ์— ๋Œ€ํ•œ ์˜ค๋ฅ˜์ด๋‹ค. ๊ทธ๋Ÿด ๋•Œ ๋‚ด๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ DerivedData ๋ฅผ ์‚ญ์ œํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. 1. Xcode์˜ ๋ฉ”๋‰ด์—์„œ Xcode - Preferences... ์„ ํƒ 2. Preferences... ์˜ Loacations ์„ ํƒ โ–ธ DerivedData ์˜ ๊ฒฝ๋กœ์—์„œ ์ž‘์€ ํ™”์‚ดํ‘œ ๋ฒ„ํŠผ ํด๋ฆญ. 3. DerivedData ํด๋” ์‚ญ์ œ ! ์ด๋ ‡๊ฒŒ ํ•˜๊ณ  ๋‹ค์‹œ ๋นŒ๋“œํ•ด๋ณด๋ฉด DerivedData ๊ด€๋ จ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค -! ๐Ÿ‘