Skip to content

chan9yu/turborepo-practice

Repository files navigation

Turborepo Monorepo

๐Ÿ“ฆ Turborepo practice repository


Turborepo ๋ž€?

Vercel์ด ์ธ์ˆ˜ํ•œ Turborepo๋Š” JavaScript์™€ TypeScript ์ฝ”๋“œ ๋ฒ ์ด์Šค์˜ ๋ชจ๋…ธ๋ ˆํฌ๋ฅผ ์œ„ํ•œ ๊ณ ์„ฑ๋Šฅ ๋นŒ๋“œ ์‹œ์Šคํ…œ ๋„๊ตฌ

Vercel๊ณผ AWS, Miro, PayPal, Discord, LINE+์˜ Universal Video Player ๋“ฑ
์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ์—์„œ ํ”„๋กœ๋•์…˜ ๋‹จ๊ณ„๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ง€๊ธˆ๋„ ํ™œ๋ฐœํ•˜๊ฒŒ ๊ฐœ๋ฐœ์ด ์ง„ํ–‰๋˜๊ณ  ์žˆ๋‹ค.


Turborepo ํŠน์ง•

  • ๊ผญ ๋ชจ๋…ธ๋ ˆํฌ์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
  • ๋ชจ๋…ธ๋ ˆํฌ์˜ ๊ฒฝ์šฐ์—๋Š” npm yarn classic yarn berry pnpm์˜ ์›Œํฌ์ŠคํŽ˜์ด์Šค์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ pnpm๋ฅผ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ ํ˜น์€ ๊ฐ ์›Œํฌ์ŠคํŽ˜์ด์Šค์— turbo.json ์ด๋ผ๋Š” ํŒŒ์ผ์„ ์ด์šฉํ•ด ์บ์‹ฑ๊ณผ ํƒœ์Šคํฌ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์„ ์„ค์ •ํ•œ๋‹ค.

Turborepo ์žฅ์ 

  • ์‚ฌ์šฉ์ž๊ฐ€ ๋นŒ๋“œํ•œ ๋‚ด์šฉ์„ ๊ธฐ์–ตํ•˜๊ณ  ์ด๋ฏธ ๊ณ„์‚ฐํ•œ ๋‚ด์šฉ์€ ๊ฑด๋„ˆ๋›ฐ๊ฒŒ๋œ๋‹ค.
    ์ฆ‰, ํƒœ์Šคํฌ ์„ค์ • ๋งŒ์œผ๋กœ ๊ธฐ๋ณธ๊ฐ’์ด ์บ์‹ฑํ•œ๋‹ค๋ผ๋Š” ๋œป์ด๋‹ค.
  • Turborepo๋Š” ํƒ€์Œ์Šคํƒฌํ”„๊ฐ€ ์•„๋‹Œ ํŒŒ์ผ ๋‚ด์šฉ์„ ๋ณด๊ณ  ๋นŒ๋“œํ•ด์•ผ ํ•  ๋‚ด์šฉ์„ ํŒŒ์•…ํ•œ๋‹ค.
  • ์‰ฌ๊ณ  ์žˆ๋Š” CPU๋ฅผ ๋‚ญ๋น„ํ•˜์ง€ ์•Š๊ณ , ๋ชจ๋“  ์ฝ”์–ด๋ฅผ ์ตœ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์„œ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์›๊ฒฉ ๋นŒ๋“œ ์บ์‹œ๋ฅผ ํŒ€์› ๋ฐ CI/CD์™€ ๊ณต์œ ํ•˜์—ฌ ๋นŒ๋“œ ์†๋„๋ฅผ ๋”์šฑ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.
  • ์ž‘์—… ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•œ ๋‹ค์Œ Turborepo๊ฐ€ ๋นŒ๋“œํ•  ํ•ญ๋ชฉ๊ณผ ์‹œ๊ธฐ๋ฅผ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

Turborepo ์ฃผ์š” ๊ธฐ๋Šฅ

Running Tasks

...

...

turbo run build
turbo run build --filter=shared
turbo run lint test build

# ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ƒ์„ฑ
turbo gen workspace
# ์˜ˆ์‹œ
pnpm exec turbo gen workspace --name my-utils


turbo login
turbo link