monorepo

  • 실제 화면에서 쓰는 패턴을 기준으로 UI 컴포넌트 고르기

    UI 라이브러리를 만들면서 컴포넌트의 범위부터 정해야 했다. 살펴본 daisyUI 목록에는 68개가 있었고, shadcn의 목록은 더 길었다. 위에서 아래로 읽으면 전부 필요해 보인다. Rating도 언젠가 쓸 자리가 있어 보이고 Carousel도 없으면 아쉬워 보인다. 그런데 이 사이트는 화면이 다섯 개다. 68개 중…

  • 로컬에서는 빠른 빌드가 CI에서는 느린 이유: Turborepo 원격 캐시

    모노레포에 Turborepo를 붙인 뒤 로컬에서는 두 번째 빌드가 확실히 빨라졌다. 같은 코드를 다시 빌드하면 cache hit이 뜨고 금방 끝났다. 그런데 CI에서는 매번 처음부터 빌드했다. 빌드할 코드가 바뀌지 않은 커밋에서도 마찬가지였다. 로컬에 저장된 캐시를 CI에서도 쓰려면 원격 캐시가 필요하다. 빌드 결과를…

    로컬에서는 빠른 빌드가 CI에서는 느린 이유: Turborepo 원격 캐시
  • pnpm workspaces로 빈 폴더에서 모노레포 시작하기

    앞선 글 turbo.json 을 지우면 모노레포가 안 돌아갈까 에서 “요즘 흔한 조합”으로 pnpm workspaces + Turborepo + Changesets를 꼽았다. 도구를 골랐어도 빈 폴더에서 무엇부터 설정해야 하는지는 알기 어렵다. pnpm dlx create-turbo@latest를 돌리면 파일이 한 벌 쏟아지기는 한다. 쏟아진 파일이 왜…

    pnpm workspaces로 빈 폴더에서 모노레포 시작하기
  • 모노레포에 turbo.json이 필요한 이유

    모노레포 저장소를 복제하면 최상위에 apps/와 packages/가 보인다. 루트 package.json에는 워크스페이스 설정이 있고, 그 옆에는 turbo.json이 놓여 있다. 여러 앱을 한 저장소에 모은다는 것은 알겠는데, turbo.json은 왜 필요할까? 워크스페이스와 Turborepo는 서로 다른 역할을 맡는다. 워크스페이스는 패키지를 연결하고, Turborepo는 작업의 실행 순서와…

    모노레포에 turbo.json이 필요한 이유
  • Turborepo와 Changesets로 모노레포 빌드부터 릴리즈까지

    pnpm workspaces 로 빈 폴더에서 모노레포 시작하기에서는 워크스페이스를 만들고 앱에서 공용 패키지를 불러오는 데까지 진행했다. 패키지가 늘어나자 빌드할 때 바뀌지 않은 것까지 다시 만드는 문제가 생겼다. 워크스페이스는 설치와 연결을 관리하지만, 무엇을 다시 빌드할지는 정해 주지 않는다. 빌드의 실행 순서와 캐시는…

    Turborepo와 Changesets로 모노레포 빌드부터 릴리즈까지