Recommended Posts

Why Vite? JS ๋ชจ๋“ˆํ™”์˜ ์—ญ์‚ฌ, CJS, ESM, Webpack

์š”์ฆ˜ ์ผ ๋•Œ๋ฌธ์— ๊ต‰์žฅํžˆ ๋ฐ”์œ ๋‚˜๋‚ ์„ ๋ณด๋‚ด๊ณ  ์žˆ๋‹ค. ๋ช‡ ์ฃผ ์ „๋ถ€ํ„ฐ ์ฃผ 1ํšŒ์”ฉ ์ฃผ์ œ๋ฅผ ์ •ํ•˜์—ฌ ๊ธฐ์ˆ  ๋ฐœํ‘œ๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค. ๊ธฐ์กด์— ๊ณต๋ถ€ํ•œ ๋ถ€๋ถ„์ธ๋ฐ๋„ ์ œ๋Œ€๋กœ ์„ค๋ช…์„ ํ•  ์ˆ˜ ์—†์—ˆ์„ ๋ฟ๋”๋Ÿฌ ์ž˜๋ชป ์•Œ๊ณ  ์žˆ๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•˜๋‹ค. velog ํฌํ•จ ํ˜„์žฌ ์ด ํ‹ฐ์Šคํ† ๋ฆฌ ๋ธ”๋กœ๊ทธ์— ์˜ฌ๋ ธ๋˜ ๋ถ€๋ถ„๋„ ์žˆ์—ˆ๊ธฐ์— ๋ถ€๋„๋Ÿฌ์›€์„ ๋ฌด๋ฆ…์“ฐ๊ณ  ์žฌ๊ฒŒ์‹œํ•˜๋ ค ํ•œ๋‹ค. ๊ตณ์ด ๊ทธ๋Ÿฌ์ง€ ์•Š์•„๋„ ๋˜๋ฉด์„œ ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋Š” ์ด์œ ๋Š” ์ฒซ ๋ฒˆ์งธ๋กœ ํ•ญ์ƒ ํ‹€๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋‹ค์งํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๊ณ , ๋‘ ๋ฒˆ์งธ๋กœ๋Š” ๊ณผ๊ฑฐ์˜ ๋‚˜๋ณด๋‹ค ํ˜„์žฌ์˜ ๋‚ด๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ํ™•์žฅ๋˜์—ˆ๋‹ค๋Š” ํ™•์‹ ์œผ๋กœ, ์›๋™๋ ฅ์„ ๊ฐ–๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.  https://velog.io/@chocoallergie/F-Lab-%EB%AA%A8%EA%B0%81%EC%BD%94-%EC%B1%8C%EB%A6%B0%EC%A7%80-60%EC%..

2016, Left-pad ์‚ฌ๊ฑด์— ๋Œ€ํ•œ Rich Harris(Rollup)์˜ ๊ธ€๋กœ ์•Œ์•„๋ณด๋Š” ๋ฒˆ๋“ค๋ง์˜ ์ค‘์š”์„ฑ

2024.08.10 - [Development Environment] - Why Vite? JS ๋ชจ๋“ˆํ™”์˜ ์—ญ์‚ฌ, CJS, ESM, Webpack ์–ผ๋งˆ ์ „, Vite๋ฅผ ์จ์•ผ ํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•œ ๊ธ€์„ ์“ฐ๋ฉด์„œ Rollup ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ ‘ํ•˜๊ณ  JavaScript Module์˜ ์—ญ์‚ฌ, ๋ฒˆ๋“ค๋ง์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ธ€์„ ์“ฐ๊ณ  ๋‚˜์„œ ES Modules์™€ CommonJS์˜ ์ฐจ์ด์ ์„ Tree-shaking ๊ด€์ ์œผ๋กœ ์ง‘์ค‘ํ•˜์—ฌ ๋˜ ํฌ์ŠคํŒ…ํ•˜๊ณ  ์‹ถ์–ด ์กŒ์Šต๋‹ˆ๋‹ค. (์ฐจ์ฃผ ๋ชฉ์š”์ผ์— ๋ฐœํ‘œ๋ผ ๋๋‚˜๊ณ  ํฌ์ŠคํŒ…ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.)  ์ œ๊ฐ€ ์›๋ž˜ ์˜ํ™”๋“  ์ฑ…์ด๋“  ์ด๋Ÿฐ ์‹์œผ๋กœ ๋””๊น…์„ ์ข‹์•„ํ•˜๋Š”๋ฐ์š”...(tmi) ๊ทธ๋ž˜์•ผ ๊ฐœ๋…์ด ํ™•์žฅ๋˜๊ณ  ๊ธฐ์–ต๋„ ์ž˜๋‚˜๊ณ .. ๋จธ๋ฆฟ์†์— ์‹œ๊ฐํ™” ๋˜๋Š” ๊ฑธ ์ฆ๊ธฐ๋Š” ๋“ฏํ•ฉ๋‹ˆ๋‹ค.์—ฌํ•˜ํŠผ ๊ณต๋ถ€ ์ค‘ ์ œ ๋ˆˆ์„ ์‚ฌ๋กœ์žก์€ ๊ธ€์ด ์žˆ์—ˆ์Šต๋‹ˆ..

Difference between Process and Thread (+ Program)

ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด๊ฐ€ ๋ญ์ฃ ? ์ฐจ์ด์ ๋„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”! ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋‹จ๊ณจ ์งˆ๋ฌธ์œผ๋กœ ์•Œ๋ ค์ง„ ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด์ , ๋ชฐ๋ž๋‹ค! ๋งค๋ฒˆ ์‹ค๋ฌด ์–˜๊ธฐ ํ•˜๋‹ค๊ฐ€ ๊ธฐ์ˆ  ์งˆ๋ฌธ์„ ๋˜์ ธ์ฃผ์‹œ๋Š” ์‚ฌ์ˆ˜๋ถ„๊ป˜ ๊ฐ์‚ฌํ•œ๋‹ค. (๊พธ๋ฒ…) ์ œ๋Œ€๋กœ ๊ณต๋ถ€ํ–ˆ์Œ์„ ์ฆ๋ช…? ํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๋ฆฌ๊ณ  ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด ํฌ์ŠคํŒ…์„ ํ•œ๋‹ค. ๋‚˜์ฒ˜๋Ÿผ ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด๋Š” ๋ถ„๋“ค๊ป˜ ๋„์›€์ด ๋˜๊ธฐ ์œ„ํ•œ ๊ธ€์ด๋‹ค. ๋‚˜๋Š” ์šด์˜์ฒด์ œ OS์™€ ๊ฐ™์€ CS ์ง€์‹์— ์–ด๋ ค์›€์„ ๋Š๋ผ๊ณ  ์žˆ๊ณ  ์ดํ•ด๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•ด์„œ ๊ณฑ์”น์–ด๋ณด์•„์•ผ ํ•œ๋‹ค. ์ตํžˆ๊ธฐ์— ์ข‹์€ ๋ฐฐ๊ฒฝ์„ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์•˜์ง€๋งŒ ๋ถ€์กฑํ•จ์„ ์ฑ„์šฐ๋ ค ์ง€์†์ ์œผ๋กœ ๋…ธ๋ ฅ ์ค‘์ด๋‹ค. ์ด ๊ธ€์„ ๋ณด๊ณ ๋‚˜์„œ ๋ชจ๋“  ๋ถ„๋“ค์ด ํ—ท๊ฐˆ๋ฆฌ๋˜ ๊ฐœ๋…์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค. ์šด์˜์ฒด์ œ๋Š” ํ˜„์žฌ ํ•˜๋“œ์›จ์–ด์˜ ์ƒํƒœ๋Š” ์–ด๋– ํ•œ์ง€, ์—ฌ๋Ÿฌ๋ถ„์˜ ์ฝ”๋“œ๊ฐ€ ์–ด..

Software Engineering 2024.04.04 1

DNS Domain Name System์„ ๊นŠ๊ฒŒ ์•Œ์•„๋ณด์ž

DNS๋Š” "DNS ์„œ๋ฒ„์—๊ฒŒ IP์ฃผ์†Œ๋ฅผ ๋ฐ›์•„์˜จ๋‹ค"๋กœ ํ‰์ณ์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ด์ „์— ๊ณต๋ถ€๋ฅผ ํ–ˆ์œผ๋‚˜ ๋„คํŠธ์›Œํฌ์˜ ๊ฒฝ์šฐ ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ํœ˜๋ฐœ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์Šต + ์กฐ๊ธˆ ๋” ๊นŠ๊ฒŒ ์•Œ์•„๋ณด๋ ค ํ•œ๋‹ค! What is DNS? DNS, Domain Name System์€ ํ˜ธ์ŠคํŠธ์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ํ˜ธ์ŠคํŠธ์˜ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๋กœ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ๊ทธ ๋ฐ˜๋Œ€์˜ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค. ํŠน์ • ์ปดํ“จํ„ฐ ๋˜๋Š” ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ๋œ ์ž„์˜์˜ ์žฅ์น˜์˜ ์ฃผ์†Œ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด, ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ˆซ์ž๋กœ ๋œ IP์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค. ์ผ๋ฐ˜์ ์ธ DNS ์กฐํšŒ๋ฅผ ํ•  ๊ฒฝ์šฐ UDP, Zone Transfer(์˜์—ญ ์ „์†ก)์„ ์ˆ˜ํ–‰ํ•  ๊ฒฝ์šฐ ํ˜น์€ 512Byte๋ฅผ ์ดˆ๊ณผํ•˜๋Š” DNS ํŒจํ‚ท์„ ์ „์†กํ•ด์•ผ ํ•  ๊ฒฝ์šฐ TCP๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ”ํžˆ ์ „ํ™”๋ฒˆํ˜ธ๋ถ€์— ๋น„์œ ๋˜๋Š”..

Network 2023.09.24 0

Latest Post

more

์ˆ˜๋™ Docker ๋ฐฐํฌ, ์ด์   STOP โ€” GitHub Actions๋กœ ์ž๋™ํ™”ํ•˜๊ธฐ

์ด๋ฒˆ์— ๊ธฐ์กด Express๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ๋ฅผ NestJS๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ฉด์„œ, Monorepo ๊ตฌ์กฐ๋กœ ์„œ๋น„์Šค๋ฅผ ์žฌ์ •๋น„ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ์„œ๋น„์Šค๊ฐ€ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋‚˜๋‰˜์–ด ์žˆ๋‹ค ๋ณด๋‹ˆ, ๋งค๋ฒˆ ์ˆ˜๋™์œผ๋กœ docker build -> tag -> push ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์•ผ ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ์ด ํด๋”, ์ € ํด๋” ์˜ค๊ฐ€๋ฉฐ ์ˆ˜๋™ ๋ฐฐํฌํ•˜๋Š” ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด๋‚˜ ๋น„ํšจ์œจ์ ์œผ๋กœ ๋Š๊ปด์กŒ๋‹ค. ์‚ฌ์‹ค ์ด์ „์— ์ž๋™ํ™”ํ•˜๊ณ  ์‹ถ๊ธฐ๋„ ํ–ˆ์ง€๋งŒ ๋Ÿฌ๋‹์ปค๋ธŒ๊ฐ€ ์žˆ์„ ๊ฑฐ๋ž€ ์ƒ๊ฐ์— ๋ง์„ค์ธ ์ ๋„ ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘, Github Actions๋ฅผ ํ™œ์šฉํ•ด ํ•ด๋‹น ๊ณผ์ •์„ ์ž๋™ํ™”ํ•œ ์ผ€์ด์Šค๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๊ณ , ์ง์ ‘ ํ…Œ์ŠคํŠธํ•ด๋ณธ ๊ฒฐ๊ณผ ์˜ˆ์ƒ๋ณด๋‹ค ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ด์ „์— ๋น„ํ•ด ํ›จ์”ฌ ํŽธํ•ด์กŒ๋‹ค.. ๋น„์Šทํ•œ ๊ณ ๋ฏผ์„ ํ•˜๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ผ๋Š” ๋งˆ์Œ์œผ๋กœ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ..

pnpm์€ ์™œ Lifecycle module์„ v10์—์„œ ์ฐจ๋‹จํ–ˆ์„๊นŒ?

pnpm๋ฅผ v10์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ ๋’ค bcrypt ๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ๋ฌธ์ œ์˜ ์›์ธ์„ ํŒŒ์•…ํ•˜๋Š” ๊ณผ์ •์—์„œ v10๋ถ€ํ„ฐ Lifecycle module์„ ๋นŒ๋“œ์‹œ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋‚˜๋Š” ์•ž์œผ๋กœ pnpm v10์„ ์จ์•ผ๋งŒ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ pnpm v10์„ ์•ˆ์ •์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค. 1๏ธโƒฃ ์—๋Ÿฌ๊ฐ€ ๋‚œ ์ด์œ ์˜ ํ•ต์‹ฌ, v10 ๋ณ€๊ฒฝ์‚ฌํ•ญ2๏ธโƒฃ Lifecycle module์— ๋Œ€ํ•œ ์ •์˜3๏ธโƒฃ ๋ฐ”๋€ ์ด์œ ๋Š”?4๏ธโƒฃ Lifecycle module์ด ํฌํ•จ๋˜๊ฒŒ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•!pnpm v10 ๋ณ€๊ฒฝ์‚ฌํ•ญ [Bug]~new pnpm v10 version has conflicts with bcrypt 5.1.1 ยท Issue #9042 ยท pnpm/pnpmVerify la..

Docker Compose V2์—์„œ .env๋ฅผ ๋ชป ์ฐพ๋Š”๋‹ค๋ฉด?

์ž‘๋…„, ์‹ค๋ฌด์—์„œ docker๋ฅผ ์ ‘ํ•˜๊ณ  docker-copmose.yml ํŒŒ์ผ์„ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋‹ค. ๋‹น์‹œ์—” ๋‹น์—ฐํ•˜๋“ฏ docker-compose up ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์–ด๋Š ๋‚ ์—”๊ฐ€๋ถ€ํ„ฐ docker compose๋ช…๋ น์–ด๊ฐ€ ๋ฐ”๋€Œ์—ˆ๋‹ค๋Š” ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค.ํ™•์ธํ•ด ๋ณด๋‹ˆ Docker ์—…๋ฐ์ดํŠธ๊ฐ€ ์•„๋‹Œ Docker compose ๋ฒ„์ „์ด V1 โ‡’ V2๋กœ ์—…๋ฐ์ดํŠธ๋œ ์‚ฌํ•ญ์ด์—ˆ๋‹ค. ๋ญ ๊ทธ๋ฆฌ ํฐ ์ด์Šˆ๊ฐ€ ์—†์„ ๊ฑฐ๋ผ ์ƒ๊ฐํ•˜๊ณ  ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋„ ๊ทธ๋ ‡๊ฒŒ ์ž˜ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ๋ฌธ์ œ๋Š” ์ถ”ํ›„์— ์ผ์–ด๋‚˜๊ฒŒ ๋˜๋Š”๋ฐโ€ฆ ์ž‘๋…„์— ๋งˆ๋ฌด๋ฆฌํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณ ๋„ํ™”ํ•ด๋ณด๋Š” ๊ณผ์ •์—์„œ docker ์ด๋ฏธ์ง€ ๋ฒ„์ „๋„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ณผ์ •์ด ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋„ํ†ต ์„œ๋ฒ„๊ฐ€ ์—ด๋ฆฌ์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค. ์ด์ƒํ•˜๋‹ค ์ƒ๊ฐํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•ด๋ณด๋‹ˆ .envํŒŒ์ผ์„ ์•„์˜ˆ ์ธ์‹ํ•˜์ง€ ๋ชป..

Context API๋กœ Props Drilling ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ•ด๊ฒฐํ•˜๊ธฐ

์ž‘๋…„์— React deep dive ์Šคํ„ฐ๋””๋ฅผ ํ–ˆ์—ˆ๋‹ค. ๋‹น์‹œ context API๋ฅผ Props drilling์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์˜์กด์„ฑ ์ฃผ์ž… ๋„๊ตฌ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฑธ ๋ฐฐ์› ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค๋ฌด์—์„œ props drilling์ด ๊นŠ์–ด์งˆ์ˆ˜๋ก ๋ณต์žกํ•ด์กŒ๊ณ  ๋ฌด์ž‘์ • ์ „์—ญ์ƒํƒœ๋กœ ๋„˜๊ฒจ๋ฒ„๋ฆฌ๋Š” ๋ฐฉ์‹์„ ํƒํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ์ตœ๊ทผ ํ† ์Šค FF ๋ ˆํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋…ผ์˜๋˜๋Š” ๊ฒƒ๋“ค์„ ๋ณด๋ฉฐ ๋‹ค์‹œ๊ธˆ Context API์˜ ๋ณธ์งˆ์„ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ์ด๋ ‡๊ฒŒ ๊ธ€์„ ์“ฐ๊ฒŒ ๋˜์—ˆ๋‹ค. Props DrillingReact๋Š” ๋ถ€๋ชจ โ‡’ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋ฃจ์–ด์ง„ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.๋ถ€๋ชจ๊ฐ€ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ž์‹์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด props๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค. ์œ„์™€ ๊ฐ™์€ ๊ตฌ์กฐ์—์„œ A โ‡’ D ๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋ ค๋ฉด ์ค‘๊ฐ„์— ์žˆ๋Š” ๋ชจ๋“  ์ปดํฌ..

React 2025.02.12 0

ํ•œ ๋‹ฌ๊ฐ„ ์ฝ”๋“œํŠธ๋ฆฌ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ์ดˆ ๋‹ค์ ธ๋ณธ ํ›„๊ธฐ ๐Ÿ’ช

๊ฐœ์ธ์ ์œผ๋กœ ์Šค์Šค๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์ข€ ์•ฝํ•˜๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋งŽ์ด ๋“ค๊ณ  ์žˆ๋˜ ์ฐธ์ด์—ˆ๋Š”๋ฐ ์ฝ”๋“œํŠธ๋ฆฌ๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.์ด๋•Œ๊นŒ์ง€ ์จ๋ณธ ๊ฑด ๋ฐฑ์ค€, ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ๋ ˆ๋ฒจ ์ˆœ์œผ๋กœ ๊ทธ๋ƒฅ ์ฐ๋จน ์ •๋„ ํ•ด๋ณธ ๊ฒƒ ๊ฐ™๋‹ค.๋ถ€๋„๋Ÿฝ์ง€๋งŒ ์ œ๋Œ€๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ฅผ ํ•œ ์ ์€ ์—†๋‹ค. ๊พธ์ค€ํžˆ ํ•ด์•ผ ๋˜๋Š” ๊ฑธ ์•Œ๊ณ  ์žˆ๊ธฐ์— ๋ฃจํ‹ด ์žก๊ธฐ๊ฐ€ ์–ด๋ ค์› ๋‹ค ์ฝ”๋“œํŠธ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ๋Š”๋ฐ ๊ธฐ์ดˆ๋ฅผ ์•„์˜ˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์ ธ๋ณด๊ณ  ์‹ถ์–ด์„œ Level 1๋ถ€ํ„ฐ ๊ทธ๋ƒฅ ๋ƒ…๋‹ค~ ์‹œ์ž‘ํ–ˆ๋‹ค.ํ•œ ๋‹ฌ ๋™์•ˆ ์ด์šฉํ•ด ๋ณธ ์ฝ”๋“œํŠธ๋ฆฌ์˜ ์žฅ์ ๋“ค์„ ์ ์–ด๋ณด๊ณ , ๊ฐœ์„ ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋Š” ๋ฐฉํ–ฅ๋„ ๋งํ•ด๋ณด๊ฒ ๋‹ค. ๊ธฐ๋ณธ๊ฐœ๋…์— ๋Œ€ํ•ด ์•Œ๋ ค์ฃผ๊ณ  ๋ฐฉํ–ฅ ์ œ์‹œ๋ฅผ ํ•ด์ฃผ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ์ดˆ๋ฅผ ๋‹ค์ง€๋ ค๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ํ™•์‹คํžˆ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ๋ณด๋‹ค ๋ฌธ์ œ์˜ ๊ธฐ์ดˆ๋ฅผ ํ™•์‹คํžˆ ์ž˜ ๋‹ค์ ธ์ฃผ๋Š” ๊ฒŒ ๋Š๊ปด์กŒ๋‹ค. ํƒ€ ํ”Œ๋žซํผ์˜ ๊ฒฝ์šฐ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋‹ค๋Š” ์ „์ œํ•˜์— ์‹œ์ž‘์„ ..

2025 2025.02.02 1

Best

์ˆ˜๋™ Docker ๋ฐฐํฌ, ์ด์   STOP โ€” GitHub Actions๋กœ ์ž๋™ํ™”ํ•˜๊ธฐ

์ด๋ฒˆ์— ๊ธฐ์กด Express๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ๋ฅผ NestJS๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ฉด์„œ, Monorepo ๊ตฌ์กฐ๋กœ ์„œ๋น„์Šค๋ฅผ ์žฌ์ •๋น„ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ์„œ๋น„์Šค๊ฐ€ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋‚˜๋‰˜์–ด ์žˆ๋‹ค ๋ณด๋‹ˆ, ๋งค๋ฒˆ ์ˆ˜๋™์œผ๋กœ docker build -> tag -> push ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์•ผ ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ์ด ํด๋”, ์ € ํด๋” ์˜ค๊ฐ€๋ฉฐ ์ˆ˜๋™ ๋ฐฐํฌํ•˜๋Š” ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด๋‚˜ ๋น„ํšจ์œจ์ ์œผ๋กœ ๋Š๊ปด์กŒ๋‹ค. ์‚ฌ์‹ค ์ด์ „์— ์ž๋™ํ™”ํ•˜๊ณ  ์‹ถ๊ธฐ๋„ ํ–ˆ์ง€๋งŒ ๋Ÿฌ๋‹์ปค๋ธŒ๊ฐ€ ์žˆ์„ ๊ฑฐ๋ž€ ์ƒ๊ฐ์— ๋ง์„ค์ธ ์ ๋„ ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘, Github Actions๋ฅผ ํ™œ์šฉํ•ด ํ•ด๋‹น ๊ณผ์ •์„ ์ž๋™ํ™”ํ•œ ์ผ€์ด์Šค๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๊ณ , ์ง์ ‘ ํ…Œ์ŠคํŠธํ•ด๋ณธ ๊ฒฐ๊ณผ ์˜ˆ์ƒ๋ณด๋‹ค ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ด์ „์— ๋น„ํ•ด ํ›จ์”ฌ ํŽธํ•ด์กŒ๋‹ค.. ๋น„์Šทํ•œ ๊ณ ๋ฏผ์„ ํ•˜๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ผ๋Š” ๋งˆ์Œ์œผ๋กœ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ..

ํ•œ ๋‹ฌ๊ฐ„ ์ฝ”๋“œํŠธ๋ฆฌ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ์ดˆ ๋‹ค์ ธ๋ณธ ํ›„๊ธฐ ๐Ÿ’ช

๊ฐœ์ธ์ ์œผ๋กœ ์Šค์Šค๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์ข€ ์•ฝํ•˜๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋งŽ์ด ๋“ค๊ณ  ์žˆ๋˜ ์ฐธ์ด์—ˆ๋Š”๋ฐ ์ฝ”๋“œํŠธ๋ฆฌ๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.์ด๋•Œ๊นŒ์ง€ ์จ๋ณธ ๊ฑด ๋ฐฑ์ค€, ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ๋ ˆ๋ฒจ ์ˆœ์œผ๋กœ ๊ทธ๋ƒฅ ์ฐ๋จน ์ •๋„ ํ•ด๋ณธ ๊ฒƒ ๊ฐ™๋‹ค.๋ถ€๋„๋Ÿฝ์ง€๋งŒ ์ œ๋Œ€๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ฅผ ํ•œ ์ ์€ ์—†๋‹ค. ๊พธ์ค€ํžˆ ํ•ด์•ผ ๋˜๋Š” ๊ฑธ ์•Œ๊ณ  ์žˆ๊ธฐ์— ๋ฃจํ‹ด ์žก๊ธฐ๊ฐ€ ์–ด๋ ค์› ๋‹ค ์ฝ”๋“œํŠธ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ๋Š”๋ฐ ๊ธฐ์ดˆ๋ฅผ ์•„์˜ˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์ ธ๋ณด๊ณ  ์‹ถ์–ด์„œ Level 1๋ถ€ํ„ฐ ๊ทธ๋ƒฅ ๋ƒ…๋‹ค~ ์‹œ์ž‘ํ–ˆ๋‹ค.ํ•œ ๋‹ฌ ๋™์•ˆ ์ด์šฉํ•ด ๋ณธ ์ฝ”๋“œํŠธ๋ฆฌ์˜ ์žฅ์ ๋“ค์„ ์ ์–ด๋ณด๊ณ , ๊ฐœ์„ ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋Š” ๋ฐฉํ–ฅ๋„ ๋งํ•ด๋ณด๊ฒ ๋‹ค. ๊ธฐ๋ณธ๊ฐœ๋…์— ๋Œ€ํ•ด ์•Œ๋ ค์ฃผ๊ณ  ๋ฐฉํ–ฅ ์ œ์‹œ๋ฅผ ํ•ด์ฃผ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ์ดˆ๋ฅผ ๋‹ค์ง€๋ ค๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ํ™•์‹คํžˆ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ๋ณด๋‹ค ๋ฌธ์ œ์˜ ๊ธฐ์ดˆ๋ฅผ ํ™•์‹คํžˆ ์ž˜ ๋‹ค์ ธ์ฃผ๋Š” ๊ฒŒ ๋Š๊ปด์กŒ๋‹ค. ํƒ€ ํ”Œ๋žซํผ์˜ ๊ฒฝ์šฐ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋‹ค๋Š” ์ „์ œํ•˜์— ์‹œ์ž‘์„ ..

2025 2025.02.02 1
Recap 2024, ์–ด๋Š ๊ฒƒ ํ•˜๋‚˜ ๋†“์น˜์ง€ ์•Š์œผ๋ ค ๋…ธ๋ ฅํ•œ ํ•œ ํ•ด

์˜ฌํ•ด๋„ 2025๋…„ 1์›” 1์ผ์— ํšŒ๊ณ ๋ฅผ ํฌ์ŠคํŒ…ํ•ด ๋ณธ๋‹ค. ์ด๋ฒˆ์— ์ˆซ์ž๋กœ ๋‚˜์˜ 2024๋…„์„ ์–ด๋Š ์ •๋„ ์ •๋ฆฌํ•ด ๋ณด์•˜๋Š”๋ฐ ๋ถ€๋‹จํžˆ ๋ฌด์—‡ ํ•˜๋‚˜ ๋†“์น˜์ง€ ์•Š๊ณ  ์ž˜ ์‚ด์•˜๊ตฌ๋‚˜ ํ–ˆ๋‹ค. ์•ž์œผ๋กœ๋„ ์ด๋Ÿฐ ์‹์œผ๋กœ ๋งŒ๋“ค์–ด๋ณผ๊นŒ ํ•œ๋‹ค.2024๋…„ Keyword : ์—ฌ์ „ํžˆ ์ฒ˜์Œ์ธ ๊ฒƒ์ด ๋งŽ๋‹ค์ทจ์—… ๐Ÿ’ผ์ž‘๋…„ 1์›” 1์ผ์—๋Š” ๋‚ด๊ฐ€ ๊ณง ์ทจ์—…ํ• ์ง€ ๋ชจ๋ฅด๊ณ  ํ•˜๋ฐ˜๊ธฐ๊นŒ์ง€ ์ทจ์—… ์ค€๋น„๋ฅผ ํ•  ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ–ˆ๋‹ค. 1์›” ์ดˆ๊นŒ์ง€ ์ฝ”ํ…Œ์™€ ๋ฉด์ ‘์„ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ 1์›” 17์ผ, ๊ฐœ๋ฐœ์ž ์ง๋ฌด๋กœ ์ฒซ ์ถœ๊ทผ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ธ์ˆ˜์ธ๊ณ„๋ฐ›๊ณ  ๊ธฐ์ˆ  ์Šคํƒ๊ณผ ์ปจ๋ฒค์…˜ ํ˜‘์˜๋„ ํ•˜๊ณ .. ๋“ฑ๋“ฑ ์‹ค๋ฌด์—์„œ React๋ฅผ ์ฒ˜์Œ ์จ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉ๋  Zustand์™€ React ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ์— ์ดˆ์ ์„ ๋งž์ถฐ์„œ ๊ณต๋ถ€ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ž…์‚ฌํ•œ ์ง€ 7์ผ ๋งŒ์— ์Šคํ‚ค์žฅ์œผ๋กœ ์›Œํฌ์ƒต๋„ ๋‹ค๋…€์™”๋‹ค! 1๋…„ ๋™์•ˆ Fronten..

2025 2025.01.01 20