Skip to content

Monorepo Architecture

SeungJin Choi edited this page Jun 25, 2023 · 6 revisions

Monorepo ꡬ성 방식

monorepo J Design System은 λͺ¨λ…Έλ ˆν¬ λ°©μ‹μœΌλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” μ—¬λŸ¬ 개의 독립적인 UI μ»΄ν¬λ„ŒνŠΈκ°€ λ™μΌν•œ μ €μž₯μ†Œλ₯Ό μ‚¬μš©ν•œλ‹€λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. 이 방식을 μ±„νƒν•œ μ΄μœ λŠ” νŒ¨ν‚€μ§€ 간에 κ³΅ν†΅μœΌλ‘œ μ‚¬μš©ν•˜λŠ” μ½”λ“œμ™€ 각 μ»΄ν¬λ„ŒνŠΈ νŒ¨ν‚€μ§€λ§ˆλ‹€ ν”„λ‘œμ νŠΈ ν™˜κ²½μ„ 일관성 있게 μœ μ§€ν•  수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€. λͺ¨λ…Έλ ˆν¬λ₯Ό λ„μž…ν•˜λ©° λ””μžμΈ μ‹œμŠ€ν…œ κ°œλ°œμ—μ„œ, UI μ»΄ν¬λ„ŒνŠΈλΌλŠ” λ™μΌν•œ 도메인 개발 μ•„λž˜ μ˜μ‘΄μ„± λ³€ν™”λ₯Ό μ‰½κ²Œ νŒŒμ•…ν•  수 μžˆμ—ˆκ³  λ™μΌν•œ DevOpsλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Yarn Workspaces

yarn workspacesλŠ” yarnμ—μ„œ μ œκ³΅ν•΄μ£ΌλŠ” ν•˜μœ„ νŒ¨ν‚€μ§€λ“€μ— λŒ€ν•œ μ˜μ‘΄μ„± 관리 κΈ°λŠ₯ μž…λ‹ˆλ‹€. 이λ₯Ό μ΄μš©ν•΄μ„œ λͺ¨λ…Έλ ˆν¬ ꡬ쑰λ₯Ό ꡬ좕할 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. foreach, listλ“± ν•˜μœ„ νŒ¨ν‚€μ§€ 접근에 λŒ€ν•œ 효율적인 λͺ…령어도 μ œκ³΅ν•΄μ£Όκ³  μžˆμŠ΅λ‹ˆλ‹€.

Configure

μ΅œμƒμœ„ package.json에 μ•„λž˜μ™€ 같이 ν•˜μœ„ νŒ¨ν‚€μ§€ 경둜λ₯Ό μ„€μ •ν•˜κ³ , νŽΈμ˜μƒ 각 νŒ¨ν‚€μ§€λ“€μ„ λ³„κ°œλ‘œ μ„€μΉ˜ν•  수 μžˆλ„λ‘ μ§€μ›ν•˜κ³ μž ν•˜κΈ° λ•Œλ¬Έμ— private μ˜΅μ…˜μ€ μ„€μ •ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

{
    "name": "jdesignlab",
    "packageManager": "yarn@3.3.1",
    "workspaces": [
        "packages/*"
    ]

}

μ΅œμ’…μ μœΌλ‘œ μ•„λž˜μ™€ 같이 νŒ¨ν‚€μ§€ ꡬ쑰λ₯Ό κ΅¬μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 각 νŒ¨ν‚€μ§€λ§ˆλ‹€ κ³΅ν†΅μ μœΌλ‘œ ν•„μš”ν•œ stroybook, jest, tsconfig ꡬ성 νŒŒμΌμ€ μ΅œμƒμœ„μ— μœ„μΉ˜μ‹œν‚€κ³ , ν•˜μœ„ μ»΄ν¬λ„ŒνŠΈμ—μ„œ ν™•μž₯ν•˜μ—¬ μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

πŸ“‚JDesignSystem
β”œβ”€β”€ packages
β”œβ”€β”€ storybook-static
β”œβ”€β”€ README.md
β”œβ”€β”€ jest.config.ts
β”œβ”€β”€ package.json
|     β”œβ”€β”€ box
|     β”œβ”€β”€ button
|     β”œβ”€β”€ card
|     β”œβ”€β”€ checkbox
|     β”œβ”€β”€ drawer
|     β”œβ”€β”€ dropdown
|     β”œβ”€β”€ flex
|     β”œβ”€β”€ icons
|     β”œβ”€β”€ input
|     β”œβ”€β”€ j-provider
|     β”œβ”€β”€ modal
|     β”œβ”€β”€ popover
|     β”œβ”€β”€ radio
|     β”œβ”€β”€ react
|     β”œβ”€β”€ react-utils
|     β”œβ”€β”€ select
|     β”œβ”€β”€ stack
|     β”œβ”€β”€ tabs
|     β”œβ”€β”€ test
|     β”œβ”€β”€ text
|     β”œβ”€β”€ textarea
|     β”œβ”€β”€ theme
|     β”œβ”€β”€ tooltip
|     └── utils
β”œβ”€β”€ setup-jest.ts
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ tsupconfig.ts
└── yarn.lock

Clone this wiki locally