Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
Helena Park edited this page May 16, 2026 · 30 revisions

ํ”„๋กœ์ ํŠธ ์„ค์ •

์ด ํ”„๋กœ์ ํŠธ์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์—ฌ๋Š” ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค! ๐ŸŽ‰

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” GitHub์˜ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ(PR) ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ์—ฌ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋จผ์ € ํ”„๋กœ์ ํŠธ๋ฅผ ํฌํฌํ•˜๊ณ  PR์„ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.

๋กœ์ปฌ ์‹คํ–‰ ํ™˜๊ฒฝ ์„ค์ •

  1. Bun ์„ค์น˜ํ•˜๊ธฐ
  2. ํ”„๋กœ์ ํŠธ๋ฅผ ํฌํฌํ•˜๊ณ  PR์„ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ์ฐธ๊ณ ํ•ด์„œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ž์‹ ์˜ ๊ณ„์ •์— ํฌํฌํ•˜๊ณ , ํด๋ก ํ•ฉ๋‹ˆ๋‹ค.
    1. ์ด ๋•Œ ํด๋ก ํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์—…์ŠคํŠธ๋ฆผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ๋™๊ธฐํ™”ํ•˜๋Š” ์„ค์ •์„ ํ•จ๊ป˜ ์ ์šฉํ•˜๋ฉด ๊ธฐ์—ฌ์— ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.
  3. ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:
cd path/to/daleui
# ์˜์กด์„ฑ ์„ค์น˜
bun install
# Storybook ์‹คํ–‰ (๋””์ž์ธ ์‹œ์Šคํ…œ ๊ธฐ์—ฌ ์‹œ)
bun run sb # or bun run storybook
# ๋งˆ์ผ€ํŒ… ์›น์‚ฌ์ดํŠธ ์‹คํ–‰ (๋งˆ์ผ€ํŒ… ์›น์‚ฌ์ดํŠธ ๊ธฐ์—ฌ ์‹œ)
bun run dev

๊ธฐ์ˆ  ์Šคํƒ

์ด์Šˆ ๊ด€๋ฆฌ

  • ๋ฌด๋ฃŒ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์ธ ๊นƒํ—ˆ๋ธŒ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ์ด์Šˆ(Jira ํ‹ฐ์ผ“๊ณผ ๊ฐ™์€ ๊ฐœ๋…)๋ฅผ ๊ด€๋ฆฌํ•ด ์ฃผ์„ธ์š”.
  • ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์œ ํ˜•(Type)์„ ๋ฐ˜๋“œ์‹œ ์„ ํƒํ•ด์ฃผ์‹œ๊ณ , ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ ํ›„ ์šฐ์„ ์ˆœ์œ„(Priority)์™€ ์˜ˆ์ƒ ์†Œ์š” ์‹œ๊ฐ„(Est)๋„ ํ•จ๊ป˜ ๋„ฃ์–ด์ฃผ์„ธ์š”.
  • ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์Šคํ”„๋ฆฐํŠธ(Sprint)์™€ ์ƒํƒœ(Status)๋Š” ๋น„์›Œ๋‘์–ด ์ผ๋‹จ ๋ฐฑ๋กœ๊ทธ(Backlog)์— ๋‘๋„๋ก ํ•ด ์ฃผ์„ธ์š”.
  • ์ด์Šˆ๋Š” ํŒ€ ํšŒ์˜ ๋•Œ Grooming, Triage, Planning ๊ณผ์ •์„ ๊ฑฐ์นœ ํ›„์— ์Šคํ”„๋ฆฐํŠธ์— ์ถ”๊ฐ€ํ•ด ์ฃผ์„ธ์š”.
  • ๊ธด๊ธ‰ ์ด์Šˆ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์Šคํ”„๋ฆฐํŠธ์— To Do ์ด์Šˆ๊ฐ€ ์†Œ์ง„๋˜์—ˆ์„ ๋•Œ๋Š” ๋””์Šค์ฝ”๋“œ์—์„œ ์†Œํ†ต ํ›„์— ํ˜„์žฌ ์Šคํ”„๋ฆฐํŠธ์— ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”.
  • ์ž์œจ์ ์ธ ํ˜‘์—…๊ณผ ์ž๋ฐœ์ ์ธ ๊ธฐ์—ฌ๋ฅผ ์œ„ํ•ด ํŠน๋ณ„ํ•œ ์‚ฌ์œ ๊ฐ€ ์—†๋‹ค๋ฉด ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋‹ด๋‹น์ž๋ฅผ ์„ค์ •ํ•˜์ง€ ๋งˆ์„ธ์š”.
  • ์ด์Šˆ ์ƒํƒœ๋Š” ์Šคํ”„๋ฆฐํŠธ์— ์ถ”๊ฐ€๋˜์—ˆ์„ ๋•Œ ๋ถ€ํ„ฐ To Do๋กœ ์„ค์ •ํ•ด์ฃผ์„ธ์š”.
  • ์ž‘์—…์„ ์‹œ์ž‘ํ•˜์‹œ๋ฉด ์ด์Šˆ์˜ ์ƒํƒœ๋ฅผ ๋ฐ˜๋“œ์‹œ In Progress๋กœ ์˜ฎ๊ฒจ์ฃผ์„ธ์š”. (๋งŽ์ด ๊นŒ๋จน๋Š” ๋ถ€๋ถ„์ด๋‹ˆ ๊ผญ ์ง€์ผœ ์ฃผ์„ธ์š”.)
  • ์ด์Šˆ๊ฐ€ ์—ฐ๊ฒฐ๋œ Pull Request๊ฐ€ ๋ณ‘ํ•ฉ๋˜๋ฉด ์ด์Šˆ๋Š” ์ž๋™์œผ๋กœ Done ์ƒํƒœ๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.
  • ๋™์‹œ์— 2๊ฐœ ์ด์ƒ ์ด์Šˆ๋ฅผ ํ• ๋‹นํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•ด์ฃผ์„ธ์š”. WIP๊ฐ€ 2๋ณด๋‹ค ์ปค์ง€๋ฉด ํŒ€์˜ ๋ฆฌ๋ทฐ ๋ถ€๋‹ด์ด ์ปค์ง€๋‹ˆ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.
  • ์„œ๋ธŒ ์ด์Šˆ๋Š” Spike ํ‹ฐ์ผ“์—์„œ ํŒŒ์ƒ๋œ Action ํ‹ฐ์ผ“์— ํ•œํ•ด ์‚ฌ์šฉํ•ด ์ฃผ์„ธ์š”.
  • ์„œ๋ธŒ ์ด์Šˆ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์•„๋„, ์ƒ์œ„ Spike ํ‹ฐ์ผ“(Parent Issue)์€ ์™„๋ฃŒ ์ฒ˜๋ฆฌํ•ด ์ฃผ์„ธ์š”.
  • ์ด์Šˆ๊ฐ€ ์Šคํ”„๋ฆฐํŠธ 1ํšŒ ์ด์ƒ ์ด๊ด€๋  ๊ฒฝ์šฐ spillover label์„ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”.
  • ์ด์Šˆ๊ฐ€ ์Šคํ”„๋ฆฐํŠธ 2ํšŒ ์ด์ƒ ์ด๊ด€๋  ๊ฒฝ์šฐ ๊ณต๋ก ํ™”ํ•˜๊ณ  blocker ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์—ฌ ํ•ด๊ฒฐ ๋ฐฉํ–ฅ์„ ์ •๋ฆฌํ•ด์ฃผ์„ธ์š”.

์ฃผ๊ฐ„ ํšŒ์˜๋ก ์ด์Šˆ ์ž๋™ ์ƒ์„ฑ

์ฃผ๊ฐ„ Sprint ํšŒ์˜๋ก ์ด์Šˆ๋Š” GitHub Actions๋ฅผ ํ†ตํ•ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ด ์ž๋™ํ™”๋Š” ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ Sprint ์ผ์ • ๊ธฐ์ค€์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ํ‰์†Œ์—๋Š” ๋ณ„๋„ Repository Variables ์„ค์ • ์—†์ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋น„์ •๊ทœ ์Šคํ”„๋ฆฐํŠธ๋‚˜ ์‰ฌ์–ด๊ฐ€๋Š” ์ฃผ ๋“ฑ์œผ๋กœ ํŠน์ • ์ฃผ์˜ ํšŒ์˜๋ก ์ด์Šˆ ์ƒ์„ฑ์„ ๊ฑด๋„ˆ๋›ฐ์–ด์•ผ ํ•  ๋•Œ๋งŒ, ์ž๋™ ์‹คํ–‰ ์‹œ๊ฐ„ ์ „์— Repository Variables์— ์•„๋ž˜ ๊ฐ’์„ ์„ค์ •ํ•ด ์ฃผ์„ธ์š”.

Variable ์„ค๋ช… ๊ฐ’
SKIP_NEXT_RUN ๋‹ค์Œ ์ž๋™ ํšŒ์˜๋ก ์ด์Šˆ ์ƒ์„ฑ์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. true

๊ฑด๋„ˆ๋›ฐ๊ธฐ ์„ค์ •์ด ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, SKIP_NEXT_RUN ๊ฐ’์„ ๋น„์›Œ๋‘๋ฉด ๋‹ค์Œ ์ž๋™ ์‹คํ–‰๋ถ€ํ„ฐ ๋‹ค์‹œ ํšŒ์˜๋ก ์ด์Šˆ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ˆ˜๋™์œผ๋กœ ํšŒ์˜๋ก ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” GitHub Actions ํƒญ์—์„œ Create Weekly Meeting Issue ์›Œํฌํ”Œ๋กœ๋ฅผ ์„ ํƒํ•œ ๋’ค, Run workflow๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

PR ๊ด€๋ฆฌ

  1. ํ”„๋กœ์ ํŠธ ๋ณด๋“œ์—์„œ To Do ์ƒํƒœ์˜ ํ‹ฐ์ผ“์„ ์„ ํƒํ•˜๊ณ  ๋ณธ์ธ์—๊ฒŒ ํ• ๋‹นํ•ด ์ฃผ์„ธ์š”.
  2. ํ”„๋กœ์ ํŠธ ์„ค์ •
  1. ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ
  • main ๋ธŒ๋žœ์น˜์—์„œ ์ƒˆ๋กœ์šด feature ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ด ์ฃผ์„ธ์š”.
  • ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์—๋Š” -, _ ์™ธ์˜ ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”.
    ์ฐธ๊ณ  ์ด์Šˆ
  1. ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๋ฐ ์ปค๋ฐ‹
  • ๋ธŒ๋žœ์น˜ ๋‚ด์—์„œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ปค๋ฐ‹ํ•ด ์ฃผ์„ธ์š”.
  • ๋ณ€๊ฒฝ์ด ๋ชจ๋‘ ์™„๋ฃŒ๋˜๋ฉด ํฌํฌ๋ฐ›์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ธŒ๋žœ์น˜๋ฅผ ํ‘ธ์‹œํ•ด ์ฃผ์„ธ์š”.
  1. ํ…Œ์ŠคํŠธ ์ž‘์„ฑ
  • ๊ธฐ์—ฌํ•œ ์ฝ”๋“œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.
  1. PR ์ƒ์„ฑ
  • Pull Requests ํŽ˜์ด์ง€์—์„œ ์ƒˆ๋กœ์šด PR์„ ์ƒ์„ฑํ•ด ์ฃผ์„ธ์š”.

  • PR ์ œ๋ชฉ๊ณผ ์„ค๋ช…์€ ๊ฐ€๊ธ‰์  ํ•œ๊ตญ์–ด๋กœ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด์Šˆ ์ œ๋ชฉ๊ณผ ์ผ์น˜ํ•˜๋„๋ก ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.

  • PR์ด ๋“ฑ๋ก๋œ ์ด์Šˆ์™€ ์—ฐ๊ด€๋œ๋‹ค๋ฉด, PR ์ƒ์„ฑ ํ›„ ์˜ค๋ฅธ์ชฝ ์‚ฌ์ด๋“œ๋ฐ” Development ํ•ญ๋ชฉ์—์„œ ํ•ด๋‹น ์ด์Šˆ๋ฅผ ์„ ํƒํ•ด ์—ฐ๊ฒฐํ•ด์ฃผ์„ธ์š”.

    PR ์ด์Šˆ ์—ฐ๊ฒฐ ์˜ˆ์‹œ
  1. PR ๋ฆฌ๋ทฐ ๋ฐ ๋ณ‘ํ•ฉ
  • ์ตœ์†Œ ํ•œ ๋ช… ์ด์ƒ์˜ ๊ด€๋ฆฌ์ž์—๊ฒŒ PR ๊ฒ€ํ† ์™€ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋ฐ›์•„ ์ฃผ์„ธ์š”.
  • ๋ณ€๊ฒฝ ์š”์ฒญ์ด ์žˆ์„ ๊ฒฝ์šฐ, ์ˆ˜์ •์„ ๋ฐ˜์˜ํ•œ ํ›„ ๋‹ค์‹œ ํ‘ธ์‹œํ•˜๊ณ  ๋ฆฌ๋ทฐ๋ฅผ ์š”์ฒญํ•ด ์ฃผ์„ธ์š”.
  • ๋””์ž์ธ ๋ณ€๊ฒฝ์ด ์žˆ์„ ๊ฒฝ์šฐ, PR์— ui ํƒœ๊ทธ๋ฅผ ๋‹ฌ์•„์„œ Chromatic์„ ์‹คํ–‰ํ•ด ์ฃผ์„ธ์š”.
  • UI Review ์ฒดํฌ์—์„œ ํ•ด๋‹น ๋””์ž์ธ์„ ๋‹ด๋‹นํ•œ ๋””์ž์ด๋„ˆ์—๊ฒŒ ๋ฆฌ๋ทฐ๋ฅผ ์š”์ฒญํ•ด ์ฃผ์„ธ์š”. (์ƒ์„ฑ๋œ PR์˜ ํ•˜๋‹จ Merge ๋ถ€๋ถ„์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ) [็”ปๅƒ:image]

UI Review: ์ž‘์—… ๋‚ด์—ญ์„ ๋””์ž์ธ ๋‹ด๋‹น์ž์—๊ฒŒ ํ™•์ธ ์š”์ฒญํ•˜๋Š” ์ž‘์—…

[็”ปๅƒ:image]

UI Tests: ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ์˜๋„์น˜ ์•Š์€ UI ๋ณ€ํ™”๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š์•˜๋Š”์ง€, Chromatic ์Šค๋ƒ…์ƒท์„ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•˜๋ฉฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ํ™•์ธํ•˜๋Š” ์ž‘์—…

  • ์ตœ์†Œ 1๊ฐœ์˜ ์Šน์ธ์„ ๋ฐ›์€ ํ›„ main ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ•ด ์ฃผ์„ธ์š”.
  • ์ดํ›„ ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ํ†ตํ•ด ๊ธฐ์—ฌํ•œ ๋‚ด์šฉ์ด ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ ์ž‘์„ฑ ๋ฐ ๊ฒ€ํ† 

  • PR ๋ณ‘ํ•ฉ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ตœ์†Œ 1๋ช…์˜ ๋™๋ฃŒ ๊ฐœ๋ฐœ์ž๋กœ๋ถ€ํ„ฐ ์Šน์ธ์„ ๋ฐ›์•„์•ผ ํ•˜์ง€๋งŒ, ํ’ˆ์งˆ ํ–ฅ์ƒ์„ ์œ„ํ•ด์„œ ๊ธด๊ธ‰ ๊ฑด์ด ์•„๋‹ˆ๋ผ๋ฉด 2๊ฐœ์˜ ์Šน์ธ์„ ๋ฐ›๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.
  • [Proposed] "Resolve conversation" ๋ฒ„ํŠผ์€ ์ฝ”๋“œ ๊ฒ€ํ† ์ž๊ฐ€ ํ”ผ๋“œ๋ฐฑ์ด ๋ณธ์ธ์ด ์˜๋„ํ•œ ๋Œ€๋กœ ์กฐ์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ฐจ์›์—์„œ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. ์ฝ”๋“œ ์ž‘์„ฑ์ž๊ฐ€ ์ž„์˜๋กœ Resolved ํ‘œ์‹œํ•  ์‹œ ์˜คํ•ด๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜์กด์„ฑ

  • ํ•ญ์ƒ ์˜์กด์„ฑ์„ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋„๋ก Dependabot์„ ์ฝ”๋“œ ์ €์žฅ์†Œ์— ์„ค์ •ํ•ด๋†“์•˜์Šต๋‹ˆ๋‹ค.
  • Dependabot์ด ์˜ฌ๋ฆฐ PR์„ ๋Šฆ์ง€ ์•Š๊ฒŒ ๊ฒ€ํ†  ๋ฐ ๋ณ‘ํ•ฉํ•˜๊ณ  ์ƒˆ๋กœ์šด ๋ฒ„์ „์ด ์ผ์œผํ‚ค๋Š” breaking changes๋ฅผ ๋Œ€์‘ํ•˜๋Š” ์ž‘์—…์€ ํŒ€ ๊ฐœ๋ฐœ์ž ๋ชจ๋‘์˜ ๊ณต๋™ ์ฑ…์ž„์ž…๋‹ˆ๋‹ค.
  • Dependabot์ด ์˜ฌ๋ฆฐ PR์„ ๋ฐ˜๋“œ์‹œ PR ์ฝ”๋ฉ˜ํŠธ๋ฅผ ํ†ตํ•ด์„œ Dependabot์—๊ฒŒ ์›ํ•˜์‹œ๋Š” ์ž‘์—…์„ ์‹œ์ผœ์ฃผ์„ธ์š”. ์ง์ ‘ ์ˆ˜์ •ํ•˜์‹œ๋ฉด Dependabot์€ ํ•ด๋‹น PR์„ ๋” ์ด์ƒ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•ด์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ’ˆ์งˆ ๊ฒ€์‚ฌ

main ๋ธŒ๋žœ์น˜์— ํ’ˆ์งˆ ๊ธฐ์ค€์— ๋ฏธ๋‹ฌํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์œ ์ž…์ด ๋˜์ง€ ์•Š๋„๋ก PR์„ ์˜ฌ๋ฆฌ์‹œ๋ฉด ์ž๋™์œผ๋กœ ํ’ˆ์งˆ ๊ฒ€์‚ฌ๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์‹คํŒจํ•  ๊ฒฝ์šฐ ๋ณ‘ํ•ฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ’ˆ์งˆ ๊ฒ€์‚ฌ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์ง์ ‘ ์ง„ํ–‰ํ•˜์‹ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Formatting

Prettier๋ฅผ ํ†ตํ•ด์„œ ์ผ๊ด€์ ์ธ ์ฝ”๋“œ ํฌ๋ฉงํŒ…์„ ์œ ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. VSCode ์‚ฌ์šฉ์ž ๋ถ„๋“ค์€ Prettier ์ต์Šคํ…์…˜์„ ์“ฐ์‹œ๋ฉด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ์ž๋™์œผ๋กœ ์ฝ”๋“œ๋ฅผ ํฌ๋ฉงํŒ…ํ•  ์ˆ˜ ์žˆ์–ด์„œ ํŽธํ•˜๋‹ˆ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

Prettier options ๋Š” ๊ธฐ๋ณธ ์„ค์ •๊ฐ’์œผ๋กœ ํ•ด์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Linting

ESLint๋ฅผ ํ†ตํ•ด์„œ ์ž ์žฌ์ ์ธ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ  ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๋”ฐ๋ฅด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฐํŒ… ๊ทœ์น™์„ ์œ„๋ฐ˜ํ•˜๊ณ  ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

# ์ „์ฒด ๊ฒ€์‚ฌ
bun run lint
# ํŠน์ • ํŒŒ์ผ ๊ฒ€์‚ฌ
bun run lint src/components/TextInput/TextInput.tsx

Type Checking

TypeScript๋ฅผ ํ†ตํ•ด์„œ ์ •์  ํƒ€์ž… ๊ฒ€์‚ฌ๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํƒ€์ž… ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

bunx tsc

npm ํŒจํ‚ค์ง€ ๋ฐฐํฌ ๊ณผ์ •

flowchart TD
 RELEASE_PR["1. GitHub UI > Actions์—์„œ<br/>Release PR ์ƒ์„ฑ<br/>(๊ฐœ๋ฐœ์ž)"]
 TAG["3. ์ž๋™์œผ๋กœ ํƒœ๊ทธ & GitHub Release Draft ์ƒ์„ฑ๋จ<br/>(GitHub Action)"]
 PUBLISH["4. npm publish ์‹คํ–‰<br/>(GitHub Action)"]
 RELEASE_PR --> |"2. Release PR Approve & Merge<br/>(๊ฐœ๋ฐœ์ž)"| TAG
 TAG --> PUBLISH
Loading
  1. Release PR ์ƒ์„ฑ: GitHub UI์—์„œ Actionsํƒญ > ์ขŒ์ธก ์‚ฌ์ด๋“œ๋ฐ” Workflow ๋ชฉ๋ก ์ค‘, 'Release PR โฌ†๏ธ' ํด๋ฆญ > Run workflow ํด๋ฆญ > Branch๋Š” main, Version bump type์€ patch/minor/major ์ค‘ ์„ ํƒ > 'Run workflow'๋ฒ„ํŠผ ํด๋ฆญ
[็”ปๅƒ:image]
[็”ปๅƒ:image]
  • patch: ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ–ˆ์„ ๋•Œ
    • ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์—†์ด ์˜คํƒ€๋ฅผ ๊ณ ์น˜๊ฑฐ๋‚˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋Š” ๋“ฑ ์‚ฌ์†Œํ•œ ์ˆ˜์ •์ผ ๋•Œ
  • minor: ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์„ ๋•Œ
    • ์ƒˆ๋กœ์šด ์ปดํฌ๋„ŒํŠธ๋‚˜ ํ•จ์ˆ˜๊ฐ€ ์ƒ๊ฒผ์ง€๋งŒ, ๊ธฐ์กด ๊ธฐ๋Šฅ๋„ ๊ทธ๋Œ€๋กœ ์“ธ ์ˆ˜ ์žˆ์„ ๋•Œ
  • major: ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” API ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ƒ๊ฒผ์„ ๋•Œ (์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜ ์•ˆ ๋จ)
    • ๊ธฐ๋Šฅ์ด ์™„์ „ํžˆ ๋ฐ”๋€Œ๊ฑฐ๋‚˜ ์‚ญ์ œ๋˜์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ๊ณ ์ณ์•ผ ํ•  ๋•Œ (Breaking Changes)


2. ์ƒ์„ฑ๋œ Release PR Approve & Merge
[็”ปๅƒ:image]

  1. Release PR์ด Merge๋˜๋ฉด ์ž๋™์œผ๋กœ ํƒœ๊ทธ & GitHub Release Draft ์ƒ์„ฑ๋จ

  1. GitHub์˜ Code ํƒญ ํด๋ฆญ > ํ™”๋ฉด ์˜ค๋ฅธ์ชฝ ์ค‘๊ฐ„๋ถ€๋ถ„์˜ Release ๋ถ€๋ถ„ ํด๋ฆญ
[็”ปๅƒ:image]

-> ์ƒ์„ฑ๋œ Release Draft์˜ Edit๋ชจ๋“œ > Release notes ๋“ฑ ์ˆ˜์ • ํ›„ 'Publish release'๋ฒ„ํŠผ ํด๋ฆญ

  1. npm์‚ฌ์ดํŠธ์—์„œ ๋ฒ„์ „ update ํ™•์ธ
[็”ปๅƒ:image]

๊ธฐ์—ฌ ์ „ ํ™•์ธ์‚ฌํ•ญ

์ฝ”๋“œ ์Šคํƒ€์ผ, ๋„ค์ด๋ฐ ๊ทœ์น™, PR ์ž‘์„ฑ ๊ทœ์น™ ๋“ฑ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋จผ์ € ์ปจ๋ฒค์…˜ ๋ฌธ์„œ๋ฅผ ์ฝ์–ด์ฃผ์„ธ์š”.

Clone this wiki locally

AltStyle ใซใ‚ˆใฃใฆๅค‰ๆ›ใ•ใ‚ŒใŸใƒšใƒผใ‚ธ (->ใ‚ชใƒชใ‚ธใƒŠใƒซ) /