ποΈ iamhoonse-ecosystem
π κ°μ
iamhoonse-ecosystem
μ μ μ κ°μΈ ν¬νΈν΄λ¦¬μ€, λ¬Έμ μ¬μ΄νΈ, ν¨ν€μ§ λ±μ λ°°ν¬νλ λμμ,
λ³ΈμΈ μμ μ μμ
λ¬Όμ 곡κ°ν¨μΌλ‘μ¨ λ€λ₯Έ μ¬λλ€μ΄ μμ λ‘κ² μ½λλ₯Ό μ°Έκ³ νκ±°λ μ¬μ©ν μ μλλ‘ λ§λ λͺ¨λ
Έλ ν¬ νλ‘μ νΈμμ.
ποΈ μ£Όμ μΈλΆ ν¨ν€μ§/λꡬ μμ‘΄μ±
μ΄ ν νλ¦Ώμ κ°λ° νκ²½ ꡬμ±κ³Ό λΉλ νλ‘μΈμ€λ₯Ό κ°μννκΈ° μν΄ μ¬λ¬ μΈλΆ ν¨ν€μ§μ λꡬμ μμ‘΄νκ³ μμ΄μ. μλλ μ£Όμ μμ‘΄μ± λͺ©λ‘μ΄μμ:
μΉ΄ν κ³ λ¦¬ | ν¨ν€μ§/λꡬ μ΄λ¦ λ° μ€λͺ |
---|---|
ν¨ν€μ§ λ§€λμ | pnpm |
λͺ¨λ Έλ ν¬ κ΄λ¦¬ | turborepo (turbo) |
μΈμ΄/νΈλμ€νμΌλ¬ | typescript |
ν¬λ§·ν° | prettier |
컀λ°/ν | husky, @commitlint/cli, @commitlint/config-conventional |
λ¦°ν° | eslint |
ν μ€ν | vitest, @testing-library/react, @testing-library/dom, @testing-library/jest-dom, @testing-library/user-event, jsdom |
λΉλ/λ²λ€λ¬ | next, @vitejs/plugin-react, vite-tsconfig-paths |
UI νλ μμν¬ | react, react-dom |
E2E/μ±λ₯ν μ€νΈ | playwright, lighthouse, lighthouse-ci |
λ²μ λ | changesets |
λ¬Έμν | nextra, mdx |
π κ΅¬μ± μμ κ° κ΄κ³λ
μ΄ ν νλ¦Ώμ μ¬λ¬ μ±κ³Ό ν¨ν€μ§λ‘ ꡬμ±λΌ μμ΄μ. κ° μ±κ³Ό ν¨ν€μ§ κ°μ κ΄κ³λ μλμ λ€μ΄μ΄κ·Έλ¨μ μ°Έκ³ ν΄ μ£ΌμΈμ.
π‘ μ°Έκ³ : μ΄ λ€μ΄μ΄κ·Έλ¨μ Mermaidβλ₯Ό μ¬μ©ν΄μ κ·Έλ Έμ΄μ. μ΄ λꡬλ ν μ€νΈ κΈ°λ°μΌλ‘ λ€μ΄μ΄κ·Έλ¨μ 그릴 μ μκ² ν΄μ€μ. μλμ μ½λλ₯Ό 볡μ¬ν΄μ Mermaid Live Editorβμ λΆμ¬λ£μΌλ©΄ λ€μ΄μ΄κ·Έλ¨μ μκ°μ μΌλ‘ νμΈν μ μμ΄μ.
π¦ κ΅¬μ± μμ
π₯οΈ Apps
μ΄ μΉμ μ λ€μν μ ν리μΌμ΄μ μ ν¬ν¨νκ³ μμ΄μ. κ° μ±μ νΉμ λͺ©μ μ μν΄ μ€κ³λμμΌλ©°, Next.jsμ κ°μ μ΅μ κΈ°μ μ€νμ νμ©νκ³ μμ΄μ.
μ΄λ¦ | λ°°ν¬ νκ²½ | λ°°ν¬ URL | μ€λͺ |
---|---|---|---|
Docs | GitHub Pagesβ | https://iamhoonse-dev.github.io/iamhoonse-ecosystem/koβ | Next.js λ° Nextraλ₯Ό μ¬μ©ν λ¬Έμ μ¬μ΄νΈμμ. μ΄ λͺ¨λ Έλ ν¬μ λν λ¬Έμλ₯Ό μ 곡ν΄μ. |
Web | Next.js κΈ°λ°μ μΉ μ ν리μΌμ΄μ μ΄μμ. | ||
Frontend Workshop | AWS Amplifyβ | https://storybook.iamhoonse.devβ | μ»΄ν¬λνΈ κ°λ°μ΄λ ν μ€νΈλ₯Ό μν Storybook νκ²½μ΄μμ. |
Portfolio | AWS Amplifyβ | https://portfolio.iamhoonse.devβ | κ°μΈ ν¬νΈν΄λ¦¬μ€ λ° μκ°λ₯Ό μν Next.js κΈ°λ° μ±μ΄μμ. |
π¦ Packages
μ΄ μΉμ μ μ¬μ¬μ© κ°λ₯ν ν¨ν€μ§ λͺ¨μμ ν¬ν¨νκ³ μμ΄μ. κ° ν¨ν€μ§λ νΉμ κΈ°λ₯μ μ 곡νλ©°, λͺ¨λ Έλ ν¬ κ΅¬μ‘°μμ λ 립μ μΌλ‘ κ΄λ¦¬λΌμ. λν, μ΄κ³³μ μλ ν¨ν€μ§λ€ μ€ μΌλΆλ npmβμ λ°°ν¬λ μ μλλ‘ μ€μ λμ΄ μμ΄μ.
π§© Shared
μ΄ μΉμ
μ νλ‘μ νΈ μ λ°μμ μ¬μ¬μ© κ°λ₯ν λ΄λΆ ν¨ν€μ§λ₯Ό ν¬ν¨νκ³ μμ΄μ. shared
λλ ν 리μ μλ ν¨ν€μ§λ€μ npmμ λ°°ν¬λμ§ μκ³ , λ΄λΆμ μΌλ‘λ§ μ¬μ©λΌμ.
μ΄λ¦ | μ€λͺ |
---|---|
Helpers | νλ‘μ νΈ μ λ°μμ μ¬μ¬μ© κ°λ₯ν μ νΈλ¦¬ν° ν¨μμ κ³΅ν΅ λ‘μ§μ μ 곡νλ λ΄λΆ ν¨ν€μ§μμ. |
π οΈ Tools
μ΄ μΉμ μ κ°λ° λ° ν μ€νΈλ₯Ό μ§μνλ λꡬλ€μ ν¬ν¨νκ³ μμ΄μ. κ° λꡬλ νΉμ μμ μ μλννκ±°λ κ°μννλ λ° λμμ μ€μ.
μ΄λ¦ | μ€λͺ |
---|---|
Playwright Web | Playwright κΈ°λ°μ μΉ ν μ€νΈ λꡬμμ. |
CLI | λͺ λ Ήμ€ μμ μ μλννκ³ νλ‘μ νΈ κ΄λ¦¬ λ° κ°λ°μ μ§μνκΈ° μν λꡬμμ. |
Lighthouse CI | μΉ μ ν리μΌμ΄μ μ μ±λ₯, μ κ·Όμ±, SEO λ±μ μλμΌλ‘ μΈ‘μ νκ³ κ΄λ¦¬νκΈ° μν λꡬμμ. |
βοΈ Configs
μ΄ μΉμ μ νλ‘μ νΈ μ λ°μμ μ¬μ©λλ κ³΅ν΅ μ€μ νμΌλ€μ ν¬ν¨νκ³ μμ΄μ. ESLint, TypeScript, Vitestμ κ°μ λꡬλ€μ μ€μ μ΄ ν¬ν¨λΌμ.
μ΄λ¦ | μ€λͺ |
---|---|
ESLint Config | ESLint μ€μ μ μν κ³΅ν΅ κ΅¬μ±μ΄μμ. |
Playwright Config | Playwright ν μ€νΈ μ€μ μ΄μμ. |
TypeScript Config | TypeScript μ€μ μ μν κ³΅ν΅ κ΅¬μ±μ΄μμ. |
Vitest Config | Vitest ν μ€νΈ μ€μ μ μν κ³΅ν΅ κ΅¬μ±μ΄μμ. |
π Workflows
μ΄ νλ‘μ νΈλ λ€μκ³Ό κ°μ GitHub Actions Workflowλ₯Ό ν¬ν¨νκ³ μμ΄μ:
π§ͺ Test
test.yml
νμΌμ μ μλμ΄ μμΌλ©°, νλ‘μ νΈμ μ£Όμ ν
μ€νΈ(μ λ, E2E, Lighthouse, Storybook λ±)λ₯Ό ν΅ν©μ μΌλ‘ μ€νν΄μ.
μ΄ Workflowλ λ€μκ³Ό κ°μ ν
μ€νΈλ₯Ό ν¬ν¨ν΄μ:
(π³λ GitHub Actionsμμ Docker 컨ν
μ΄λλ₯Ό μ¬μ©ν΄μ μ€νλλ ν
μ€νΈλ₯Ό μλ―Έν΄μ)
- unit test
- π³ e2e test
- π³ lighthouse test
- π³ storybook test
π Release
release.yml
νμΌμ μ μλμ΄ μμΌλ©°, Changesetsλ₯Ό κΈ°λ°μΌλ‘ ν¨ν€μ§ λ°°ν¬λ₯Ό μλνν΄μ.
- μ΄ Workflowλ Changesets λ΄μ μ¬μ©ν΄μ PRμ μμ±νκ³ , λ³κ²½ μ¬νμ μλμΌλ‘ μΆμ ν΄μ.
- PRμ μΉμΈνλ©΄, λ³κ²½λ ν¨ν€μ§μ λ²μ μ΄ μ
λ°μ΄νΈλκ³ ,
CHANGELOG.md
νμΌμ΄ μμ±λΌμ. - κ·Έλ¦¬κ³ μΉμΈλ PRμ΄ λ³ν©λλ©΄μ μ€νλλ Workflowμ μν΄,
NPM_TOKEN
μ μ¬μ©νμ¬ npmμ ν¨ν€μ§κ° λ°°ν¬λΌμ.
π Publish GitHub Pages
publish-github-pages.yml
νμΌμ μ μλμ΄ μμΌλ©°, docs
μ±μ GitHub Pagesμ λ°°ν¬ν΄μ.
- μ΄ Workflowλ
docs
μ±μ λΉλλ₯Ό μννκ³ , λΉλλ κ²°κ³Όλ¬Όμ GitHub Pagesμ λ°°ν¬ν΄μ. - GitHub Pages λ‘μ λ°°ν¬λ₯Ό μν΄μλ λ ν¬μ§ν 리μ Settings μμ Pagesλ₯Ό νμ±νν΄μΌ ν΄μ.
- λ°°ν¬λ λ¬Έμλ https://USER_ID.github.io/PROJECT_NAMEβ νμμ URLλ‘ μ κ·Όν μ μμ΄μ.
π λΌμ΄μ μ€
μ΄ νλ‘μ νΈλ κ°μΈ ν¬νΈν΄λ¦¬μ€, λ¬Έμ μ¬μ΄νΈ, ν¨ν€μ§ λ± λ³ΈμΈ μμ μ κ²°κ³Όλ¬Όμ 곡κ°νκ³ , λ€λ₯Έ μ¬λμ΄ μμ λ‘κ² μ½λλ₯Ό μ°Έκ³ νκ±°λ μ¬μ©ν μ μλλ‘ MIT λΌμ΄μ μ€ νμ λ°°ν¬νκ³ μμ΄μ.