Skip to content

Latest commit

Β 

History

History
141 lines (99 loc) Β· 4.8 KB

File metadata and controls

141 lines (99 loc) Β· 4.8 KB

μ—μ΄μ „νŠΈ 개발 κ·œμΉ™

이 λ¬Έμ„œλŠ” AI μ—μ΄μ „νŠΈκ°€ resume λͺ¨λ…Έλ ˆν¬μ—μ„œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ³  κΈ°μ—¬ν•  λ•Œ 따라야 ν•˜λŠ” κ·œμΉ™κ³Ό κ°€μ΄λ“œλΌμΈμ„ μ •μ˜ν•©λ‹ˆλ‹€.

λͺ©μ°¨


ν”„λ‘œμ νŠΈ κ°œμš”

resume λŠ” hmart.app 으둜 λ°°ν¬λ˜λŠ” hmmhmmhm 의 포트폴리였·이λ ₯μ„œ μ‚¬μ΄νŠΈμ΄μž, λ‹€λ₯Έ μ‚¬μš©μžκ°€ fork ν•΄μ„œ μ“Έ 수 μžˆλŠ” 곡개 ν…œν”Œλ¦Ώμž…λ‹ˆλ‹€. Astro + Preact + Turborepo ꡬ쑰이며, 7개의 astro-* λͺ¨λ“ˆ νŒ¨ν‚€μ§€λ₯Ό ν•¨κ»˜ κ΄€λ¦¬ν•©λ‹ˆλ‹€.

  • apps/resume β€” μ‹€μ œ μ‚¬μ΄νŠΈ μ§„μž…μ  (Astro μ•±)
  • packages/astro-i18n β€” λ‹€κ΅­μ–΄ 처리 λͺ¨λ“ˆ
  • packages/astro-icon β€” μ•„μ΄μ½˜ μ»΄ν¬λ„ŒνŠΈ
  • packages/astro-lint β€” 곡톡 린트 μ„€μ •
  • packages/astro-preact β€” Preact 톡합 μ–΄λŒ‘ν„°
  • packages/astro-pwa β€” PWA 헬퍼
  • packages/astro-tailwind β€” Tailwind 톡합
  • packages/sitemap-generator β€” μ‚¬μ΄νŠΈλ§΅ 생성기

μ½”λ“œ μž‘μ„± κ·œμΉ™

파일 크기 μ œν•œ

λͺ¨λ“  μ½”λ“œ νŒŒμΌμ€ 450쀄 μ΄ν•˜λ‘œ μž‘μ„±λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

  • μ΅œλŒ€ 쀄 수: 450쀄
  • ꢌμž₯ 쀄 수: 300-400쀄
  • 초과 μ‹œ 쑰치: 파일이 450쀄을 μ΄ˆκ³Όν•˜λ©΄ κΈ°λŠ₯λ³„λ‘œ λΆ„λ¦¬ν•˜μ—¬ λͺ¨λ“ˆν™”
  • μ˜ˆμ™Έ: μžλ™ 생성 파일(예: λΉŒλ“œ μ‚°μΆœλ¬Ό, lockfile) 은 μ˜ˆμ™Έλ‘œ λ‘˜ 수 있음

μ½”λ“œ ν’ˆμ§ˆ

  • λͺ…ν™•μ„±: μ½”λ“œλŠ” λͺ…ν™•ν•˜κ³  μ΄ν•΄ν•˜κΈ° μ‰½κ²Œ μž‘μ„±
  • μž¬μ‚¬μš©μ„±: 쀑볡 μ½”λ“œλ₯Ό μ΅œμ†Œν™”ν•˜κ³  곡톡 λ‘œμ§μ€ ν•¨μˆ˜λ‘œ μΆ”μΆœ
  • νƒ€μž… μ•ˆμ •μ„±: TypeScript 의 νƒ€μž… μ‹œμŠ€ν…œμ„ 적극 ν™œμš© (strict λͺ¨λ“œ μœ μ§€)
  • μ—λŸ¬ 핸듀링: λͺ¨λ“  비동기 μž‘μ—…κ³Ό μ™ΈλΆ€ API ν˜ΈμΆœμ— μ μ ˆν•œ μ—λŸ¬ 처리 κ΅¬ν˜„
  • fork μΉœν™”μ„±: μ™ΈλΆ€ μ‚¬μš©μžκ°€ fork ν›„ 자기 μ •λ³΄λ‘œ μ‰½κ²Œ ꡐ체할 수 있게, 개인 데이터(이름·경λ ₯·링크) λŠ” ν•œ 곳에 λͺ¨μ•„ λ‘‘λ‹ˆλ‹€.

컀밋 κ·œμΉ™

컀밋 λΉˆλ„

  • 주기적인 컀밋: 논리적인 μž‘μ—… λ‹¨μœ„λ§ˆλ‹€ 컀밋
  • μž‘μ€ λ‹¨μœ„: ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ κΈ°λŠ₯μ΄λ‚˜ μˆ˜μ •μ‚¬ν•­λ§Œ 포함
  • μ™„μ„±λœ μ½”λ“œ: λΉŒλ“œ μ‹€νŒ¨λ‚˜ λŸ°νƒ€μž„ μ—λŸ¬κ°€ μ—†λŠ” μƒνƒœμ—μ„œλ§Œ 컀밋

컀밋 λ©”μ‹œμ§€ ν˜•μ‹ (Conventional Commits)

<type>: <μ„€λͺ…>
  • feat β€” μ‹ κ·œ κΈ°λŠ₯ / fix β€” 버그 μˆ˜μ • / docs β€” λ¬Έμ„œ / chore β€” λΉŒλ“œΒ·μ˜μ‘΄μ„± / refactor β€” ꡬ쑰 κ°œμ„  / style β€” μŠ€νƒ€μΌ / test β€” ν…ŒμŠ€νŠΈ

μ˜ˆμ‹œ

feat(astro-i18n): add fallback locale resolution
fix(resume): correct OG image dimensions
chore: bump astro to 5.x

λ³΄μ•ˆ 및 κ°œμΈμ •λ³΄

  • λΉ„λ°€ν‚€Β·ν† ν°Β·μžκ²©μ¦λͺ…을 μ½”λ“œΒ·ν…ŒμŠ€νŠΈΒ·λ¬Έμ„œμ— ν¬ν•¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • 이λ ₯μ„œ λ³Έλ¬Έ(이름, κ²½λ ₯ 일자, μ—°λ½μ²˜, νšŒμ‚¬λͺ…) 은 자율 λ³€κ²½ κΈˆμ§€ β€” μ‚¬λžŒλ§Œ κ°±μ‹ ν•©λ‹ˆλ‹€.
  • fork μ‚¬μš©μžκ°€ 식별 κ°€λŠ₯ν•œ 정보λ₯Ό μ‰½κ²Œ ꡐ체할 수 있게, λ°μ΄ν„°λŠ” λΆ„λ¦¬λœ yaml/json 으둜 λ‘λŠ” νŒ¨ν„΄μ„ μœ μ§€ν•©λ‹ˆλ‹€.

파일 ꡬ쑰

resume/
β”œβ”€β”€ apps/
β”‚   └── resume/            (Astro μ•±)
β”‚       β”œβ”€β”€ src/
β”‚       β”œβ”€β”€ public/
β”‚       └── astro.config.*
β”œβ”€β”€ packages/
β”‚   └── <astro-*>/
β”‚       β”œβ”€β”€ src/
β”‚       β”œβ”€β”€ package.json
β”‚       └── README.md
β”œβ”€β”€ package.json           (root, workspaces μ •μ˜)
β”œβ”€β”€ pnpm-workspace.yaml
β”œβ”€β”€ turbo.json
└── AGENTS.md / CLAUDE.md

μ½”λ“œ μŠ€νƒ€μΌ

  • 포맀터: prettier (pnpm format)
  • λ¦°ν„°: turbo μœ„μž„ (pnpm lint)
  • νƒ€μž… 체크: pnpm check-types
  • λΉŒλ“œ: pnpm build β€” 의쑴 κ·Έλž˜ν”„μ— 따라 turbo κ°€ μΊμ‹œΒ·λ³‘λ ¬ μ‹€ν–‰

PR 제좜 μ „ μœ„ 4개λ₯Ό λͺ¨λ‘ ν†΅κ³Όμ‹œν‚΅λ‹ˆλ‹€.


λ¬Έμ„œν™”

  • μ˜μ–΄ README.md λ₯Ό μš°μ„  μœ μ§€, ν•œκ΅­μ–΄ README_KR.md λŠ” 보쑰둜 따라 κ°‘λ‹ˆλ‹€.
  • fork μ‚¬μš©μžλ₯Ό μœ„ν•œ μ…‹μ—… κ°€μ΄λ“œ(개인 정보 ꡐ체 μœ„μΉ˜, λΉŒλ“œΒ·λ°°ν¬ 절차) λ₯Ό README 에 λͺ…μ‹œν•©λ‹ˆλ‹€.
  • μ‹ κ·œ νŒ¨ν‚€μ§€ μΆ”κ°€ μ‹œ root README.md 의 νŒ¨ν‚€μ§€ λͺ©λ‘λ„ κ°±μ‹ ν•©λ‹ˆλ‹€.

ν…ŒμŠ€νŠΈ

  • 각 astro-* νŒ¨ν‚€μ§€λŠ” λ‹¨μœ„ ν…ŒμŠ€νŠΈκ°€ κ°€λŠ₯ν•œ λΆ€λΆ„(예: i18n ν‚€ λ§€ν•‘, μ‚¬μ΄νŠΈλ§΅ 생성기) 에 ν•œν•΄ ν…ŒμŠ€νŠΈλ₯Ό λ™λ΄‰ν•©λ‹ˆλ‹€.
  • Astro μ•± 자체의 μ‹œκ° νšŒκ·€λŠ” μˆ˜λ™ 확인을 μš°μ„ ν•©λ‹ˆλ‹€.

배포

  • apps/resume λŠ” GitHub Actions (deploy-resume.yml) 둜 hmart.app 에 μžλ™ λ°°ν¬λ©λ‹ˆλ‹€.
  • μ˜μ‘΄μ„± PR λ¨Έμ§€ ν›„ deploy preview κΉŒμ§€ ν™•μΈν•˜κ³ μ„œ main λ¨Έμ§€λ₯Ό μ§„ν–‰ν•©λ‹ˆλ‹€.
  • μ™ΈλΆ€ μ‚¬μš©μžκ°€ fork ν•΄μ„œ μ“°λŠ” ν…œν”Œλ¦Ώμ΄λΌ breaking change λŠ” minor μ—μ„œλ„ μ‹ μ€‘νžˆ κ²°μ •ν•©λ‹ˆλ‹€.