Skip to content

[FIX] 디자인 시스템 절대 경로 별칭 문제 수정 - #95

Merged
kimminna merged 1 commit into
developfrom
fix/ui/94-design-system-path-alias
Jul 6, 2026
Merged

[FIX] 디자인 시스템 절대 경로 별칭 문제 수정#95
kimminna merged 1 commit into
developfrom
fix/ui/94-design-system-path-alias

Conversation

@kimminna

@kimminna kimminna commented Jul 6, 2026

Copy link
Copy Markdown
Member

ISSUE 🔗

close #94



What is this PR? 🔍

디자인 시스템 패키지 내부에서 사용하던 절대 경로 별칭(@components, @lib, @tokens 등)이 timo-web(Next.js) 빌드에서 모듈 해석 실패를 일으키던 문제를 수정했습니다.

배경

  • 기존 구조: packages/timo-design-system의 컴포넌트들은 서로를 @components/..., @lib 같은 절대 경로 별칭으로 import했고, 이 별칭은 패키지 자체 tsconfig.jsonpaths에만 정의되어 있었습니다. Storybook은 .storybook/main.tsviteFinal에서 동일한 별칭을 vite resolve.alias로 별도 재정의해두어 정상 동작했습니다.
  • 발생 문제: tsconfig.jsonpaths는 TypeScript 타입 검사와 IDE 인텔리센스에만 영향을 주며 실제 번들러의 런타임 모듈 해석에는 관여하지 않습니다. apps/timo-web/next.config.jstranspilePackages: ["@repo/timo-design-system"]로 이 패키지를 소스째로 트랜스파일하는데, Next.js 번들러가 @components/... 같은 지정자를 만나면 .//로 시작하지 않으므로 일반 npm 패키지 이름으로 간주해 node_modules에서 찾다가 실패합니다. Storybook의 alias 설정은 Storybook 자신에게만 적용되고 timo-web과는 공유되지 않기 때문에 이 문제가 드러나지 않고 있었습니다.
  • 해결 방향: 패키지 내부 import를 전부 상대 경로로 전환하고, 더 이상 의미가 없는 tsconfig.jsonpaths를 제거했습니다. 어떤 번들러가 이 패키지를 소스째로 소비하더라도 별도 alias 설정 없이 동작하도록 했습니다.

디자인 시스템 컴포넌트 import

  • 변경 요약: packages/timo-design-system/src/components/index.ts를 포함한 15개 컴포넌트 파일의 @components/..., @lib import를 전부 상대 경로(./, ../)로 전환했습니다.
  • 이유: 절대 경로 별칭은 tsconfig paths와 Storybook의 vite alias에만 존재하고, timo-web의 Next.js 설정에는 대응하는 alias가 없어 빌드가 깨졌습니다.
  • 구현 방식: 각 파일의 import 경로를 실제 파일 시스템 상대 위치로 직접 치환했습니다. 예를 들어 import { cn } from "@lib"``import { cn } from "../../lib"로 변경했습니다. Next.js next.config.js에 webpack/turbopack alias를 추가해 별칭을 유지하는 방법도 검토했으나, 이 패키지를 소비하는 모든 앱(현재 timo-web, 향후 추가될 앱 포함)마다 동일한 alias 설정을 중복해서 유지보수해야 하는 부담이 있어 채택하지 않았습니다.
  • 경계 · 제약: packages/timo-design-system/src/guides/StorybookGuide.mdx에 남아있는 @tokens/color-token import는 Storybook에서만 로드되는 문서용 파일이라 이번 PR 범위에서 제외했습니다.

tsconfig.json

  • 변경 요약: 더 이상 사용되지 않는 compilerOptions.paths(@components, @lib, @tokens, @icons, @styles, @assets, @guides)를 제거했습니다.
  • 이유: 실제 import가 모두 상대 경로로 전환되어 별칭 정의가 불필요해졌고, 남겨두면 다시 절대 경로 별칭을 쓰도록 유도해 동일한 문제가 재발할 수 있습니다.



To Reviewers

디자인 시스템 export/alias 문제와 관련해 별도로 확인된 packages/timo-design-system/package.jsonexports["./styles"]가 실제 스타일이 있는 globals.css가 아닌 빈 components.css를 가리키는 문제는 이번 PR 범위에서 다루지 않았으며, 별도 이슈로 분리할 예정입니다. 이번 PR은 컴포넌트 간 import 해석 문제만 다룹니다.



Screenshot 📷



Test Checklist ✔

  • pnpm turbo run check-types --filter=@repo/timo-design-system --filter=timo-web 통과
  • pnpm turbo run lint --filter=@repo/timo-design-system 통과
  • pnpm turbo run build --filter=timo-web 통과 (수정 전 되돌려서 Module not found 에러로 실패하는 것도 재현 확인)

- tsconfig.json의 paths(@components, @lib, @tokens 등)가 타입 검사에만 적용되고 Next.js 번들러의 런타임 모듈 해석에는 영향을 주지 않아 timo-web 빌드가 깨지는 문제를 수정했습니다
- 컴포넌트 내부 import를 모두 상대 경로로 전환해 어떤 번들러에서도 별도 alias 설정 없이 정상 동작하도록 했습니다
- 더 이상 사용되지 않는 tsconfig.json의 paths 설정을 제거했습니다
@coderabbitai

coderabbitai Bot commented Jul 6, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@kimminna, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 37 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: c1c23dae-6041-446f-a351-bf7f41ae079b

📥 Commits

Reviewing files that changed from the base of the PR and between 1774226 and a9400f2.

📒 Files selected for processing (29)
  • packages/timo-design-system/src/components/badge/today-badge/TodayBadge.stories.tsx
  • packages/timo-design-system/src/components/badge/today-badge/TodayBadge.tsx
  • packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.stories.tsx
  • packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx
  • packages/timo-design-system/src/components/button/create-button/CreateButton.tsx
  • packages/timo-design-system/src/components/button/delete-button/DeleteButton.stories.tsx
  • packages/timo-design-system/src/components/button/delete-button/DeleteButton.tsx
  • packages/timo-design-system/src/components/button/play-button/PlayButton.stories.tsx
  • packages/timo-design-system/src/components/button/play-button/PlayButton.tsx
  • packages/timo-design-system/src/components/button/tab-button/TabButton.stories.tsx
  • packages/timo-design-system/src/components/button/tab-button/TabButton.tsx
  • packages/timo-design-system/src/components/checkbox/Checkbox.tsx
  • packages/timo-design-system/src/components/dropdown-view/DropdownView.stories.tsx
  • packages/timo-design-system/src/components/dropdown-view/DropdownView.tsx
  • packages/timo-design-system/src/components/index.ts
  • packages/timo-design-system/src/components/layout/dropdown/Dropdown.stories.tsx
  • packages/timo-design-system/src/components/layout/dropdown/Dropdown.tsx
  • packages/timo-design-system/src/components/priority/priority-icon/PriorityIcon.tsx
  • packages/timo-design-system/src/components/priority/priority-selector/PrioritySelector.tsx
  • packages/timo-design-system/src/components/tag/tag-icon/TagIcon.stories.tsx
  • packages/timo-design-system/src/components/tag/tag-selector/TagSelector.stories.tsx
  • packages/timo-design-system/src/components/tag/tag-selector/TagSelector.tsx
  • packages/timo-design-system/src/components/toggle-panel/TogglePanel.stories.tsx
  • packages/timo-design-system/src/components/toggle-panel/TogglePanel.tsx
  • packages/timo-design-system/src/components/tokens/color/Color.stories.tsx
  • packages/timo-design-system/src/components/tokens/color/Color.tsx
  • packages/timo-design-system/src/components/tokens/typography/Typography.stories.tsx
  • packages/timo-design-system/src/components/tokens/typography/Typography.tsx
  • packages/timo-design-system/tsconfig.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/ui/94-design-system-path-alias

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@vercel

vercel Bot commented Jul 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
timo Ready Ready Preview, Comment Jul 6, 2026 8:51am

@github-actions github-actions Bot added the ⌚ Timo-Design-system Timo 디자인 시스템 label Jul 6, 2026
@github-actions github-actions Bot added 🐛 Bug 기능이 정상적으로 작동하지 않는 문제 수정 ♦️ 민아 민아상 labels Jul 6, 2026
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown

Storybook Preview

항목 링크
Storybook 열기
Chromatic 빌드 확인

마지막 업데이트: 2026-07-06 08:53 UTC

@yumin-kim2 yumin-kim2 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

당신은 천재야,

@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown

Timo Performance Report

Bundle Size — timo-web
라우트 크기 First Load JS
/ 0 B 🟡 205.49 kB
/focus 0 B 🟡 205.49 kB
/home 0 B 🟡 205.49 kB
/login 0 B 🟡 205.49 kB
/onboarding 0 B 🟡 205.49 kB
/settings 0 B 🟡 205.49 kB
/settings/account 0 B 🟡 205.49 kB
/settings/policy 0 B 🟡 205.49 kB
/statistics 0 B 🟡 205.49 kB
/today 0 B 🟡 205.49 kB

공유 번들: 205.49 kB
🟢 < 200kB  |  🟡 < 350kB  |  🔴 ≥ 350kB (First Load JS · gzip)

Lighthouse — timo-web

⚠️ Lighthouse 결과를 가져오지 못했습니다.

Image Optimization — timo-web

public/ 디렉토리에 이미지가 없습니다.

측정 커밋: 3eccc1a

@kimminna
kimminna merged commit 543a18b into develop Jul 6, 2026
23 checks passed
@kimminna
kimminna deleted the fix/ui/94-design-system-path-alias branch July 6, 2026 08:55
@kimminna kimminna mentioned this pull request Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⌚ Timo-Design-system Timo 디자인 시스템 ♦️ 민아 민아상 🐛 Bug 기능이 정상적으로 작동하지 않는 문제 수정

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FIX] 디자인 시스템 절대 경로 별칭(@components, @lib 등)이 timo-web 빌드에서 모듈 해석 실패를 유발

3 participants