Dev_TIMI

์Šค๋‚ต๊นƒ ๐Ÿช - ํ˜‘์—…ํŽธ #1: GitHub์—์„œ ๋ฆฌ๋ทฐ์–ด ์š”์ฒญํ•˜๋Š” ๋ฒ•๊ณผ ํšจ๊ณผ์ ์ธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์š”์ฒญ ๊ฐ€์ด๋“œ

by its_TIMI

๐Ÿ”น GitHub์—์„œ ๋ฆฌ๋ทฐ์–ด ์š”์ฒญํ•˜๋Š” ๋ฒ•๊ณผ ํšจ๊ณผ์ ์ธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์š”์ฒญ ๊ฐ€์ด๋“œ ๐Ÿš€

1๏ธโƒฃ ๋ฆฌ๋ทฐ์–ด ์š”์ฒญ์ด ์ค‘์š”ํ•œ ์ด์œ 

GitHub์—์„œ PR(Pull Request)์„ ์ƒ์„ฑํ•œ ํ›„ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์€ ํŒ€ ํ˜‘์—…์˜ ํ•„์ˆ˜ ๊ณผ์ •์ด๋‹ค.

๋ฆฌ๋ทฐ์–ด์˜ ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ด ์ฝ”๋“œ ํ’ˆ์งˆ์„ ๊ฐœ์„ ํ•˜๊ณ , ๋ฒ„๊ทธ๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด, ํšจ๊ณผ์ ์œผ๋กœ ๋ฆฌ๋ทฐ์–ด๋ฅผ ์š”์ฒญํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ผ๊นŒ?

๋‹จ์ˆœํžˆ “๋ฆฌ๋ทฐ ์š”์ฒญ” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ๋๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์š”์ฒญํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ์ฝ”๋“œ ๋ฆฌ๋ทฐ์˜ ์งˆ์ด ๋‹ฌ๋ผ์ง„๋‹ค.

 

์ด ๊ธ€์—์„œ๋Š” GitHub์—์„œ ๋ฆฌ๋ทฐ์–ด๋ฅผ ์š”์ฒญํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ, ํšจ๊ณผ์ ์ธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์š”์ฒญ ๊ฐ€์ด๋“œ๋ฅผ ์ •๋ฆฌํ•œ๋‹ค.


2๏ธโƒฃ GitHub์—์„œ ๋ฆฌ๋ทฐ์–ด ์š”์ฒญํ•˜๋Š” ๋ฐฉ๋ฒ•

(1) PR ์ƒ์„ฑ ํ›„ ๋ฆฌ๋ทฐ์–ด ์ง€์ •

GitHub์—์„œ PR์„ ์ƒ์„ฑํ•œ ํ›„, ๋ฆฌ๋ทฐ์–ด๋ฅผ ์ง์ ‘ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

โœ… ๋ฆฌ๋ทฐ์–ด ์ง€์ • ๋ฐฉ๋ฒ•

1. PR์„ ์ƒ์„ฑํ•œ ํ›„, ์˜ค๋ฅธ์ชฝ ์‚ฌ์ด๋“œ๋ฐ”์—์„œ "Reviewers" ์„น์…˜์„ ์ฐพ๋Š”๋‹ค.

2. ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์„ ํŒ€์›(๋˜๋Š” ํŒ€ ์ „์ฒด)์„ ์„ ํƒํ•˜์—ฌ ์ถ”๊ฐ€ํ•œ๋‹ค.

3. "Request review" ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋ฆฌ๋ทฐ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.

 

โœ… ๋ฆฌ๋ทฐ์–ด๊ฐ€ ์ง€์ •๋˜๋ฉด, ํ•ด๋‹น ํŒ€์›์—๊ฒŒ GitHub ์•Œ๋ฆผ์ด ์ „์†ก๋œ๋‹ค.


(2) PR ์š”์ฒญ ์‹œ ๋ฆฌ๋ทฐ์–ด ์ž๋™ ๋ฐฐ์ • (CODEOWNERS ํ™œ์šฉ)

ํŒ€ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํŠน์ • ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ํŒ€์›์ด ์ •ํ•ด์ ธ ์žˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค.

์ด ๊ฒฝ์šฐ, GitHub์˜ CODEOWNERS ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋ฉด PR ์ƒ์„ฑ ์‹œ ์ž๋™์œผ๋กœ ๋ฆฌ๋ทฐ์–ด๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ“Œ CODEOWNERS ์„ค์ • ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ ๊ธ€์—์„œ ์ž์„ธํžˆ ๋‹ค๋ฃฌ๋‹ค.

๐Ÿ‘‰ GitHub PR ์ƒ์„ฑ ์‹œ ๋ฆฌ๋ทฐ์–ด ์ž๋™ ์ง€์ •ํ•˜๋Š” ๋ฒ• (ํ˜‘์—…ํŽธ #2)

 

โœ… ์ด ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋ฉด ๋ฆฌ๋ทฐ์–ด๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.


3๏ธโƒฃ ํšจ๊ณผ์ ์ธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์š”์ฒญ ๊ฐ€์ด๋“œ

(1) PR ์ œ๋ชฉ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๊ธฐ

PR ์ œ๋ชฉ๋งŒ ๋ณด๊ณ ๋„ “์–ด๋–ค ๋ณ€๊ฒฝ์ด ์žˆ์—ˆ๋Š”์ง€” ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

 

๐Ÿšซ “Fix bug”, “Update code” (X)

โœ… “Fix: ๋กœ๊ทธ์ธ ์‹œ NullPointerException ๋ฐœ์ƒ ๋ฌธ์ œ ํ•ด๊ฒฐ” (O)


(2) PR ๋ณธ๋ฌธ์—์„œ ํ•ต์‹ฌ ๋‚ด์šฉ ์ „๋‹ฌํ•˜๊ธฐ

์ข‹์€ PR ์„ค๋ช…์€ ๋‹ค์Œ ๋‚ด์šฉ์„ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค.

 

โœ… ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์š”์•ฝ: ์ฝ”๋“œ์—์„œ ๋ฌด์—‡์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”๊ฐ€?

โœ… ์ด์Šˆ ๋ฒˆํ˜ธ ์—ฐ๋™: ์–ด๋–ค ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ PR์ธ๊ฐ€? (ex. Closes #123)

โœ… ๋ฆฌ๋ทฐ์–ด๊ฐ€ ์ง‘์ค‘ํ•ด์•ผ ํ•  ๋ถ€๋ถ„: ํŠน์ • ๋กœ์ง์ด๋‚˜ ๋…ผ๋ฆฌ ๊ตฌ์กฐ๊ฐ€ ์ ์ ˆํ•œ์ง€ ๋ฆฌ๋ทฐํ•ด๋‹ฌ๋ผ๊ณ  ์š”์ฒญ

โœ… ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•: ๋กœ์ปฌ์—์„œ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์„ค๋ช… (ex. npm start ํ›„ ํŠน์ • ํŽ˜์ด์ง€ ํ™•์ธ ๋“ฑ)

 

๐Ÿ“Œ PR ์„ค๋ช… ์˜ˆ์‹œ

## ๐Ÿ“ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์š”์•ฝ
- ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์—์„œ ๋ฐœ์ƒํ•˜๋˜ NullPointerException ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.

## ๐Ÿ›  ํ•ด๊ฒฐํ•œ ์ด์Šˆ
- Closes #123

## ๐Ÿ” ๋ฆฌ๋ทฐ ์š”์ฒญ ์‚ฌํ•ญ
- `LoginService.java`์˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋กœ์ง์ด ์ ์ ˆํ•œ์ง€ ํ™•์ธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
- ์ถ”๊ฐ€์ ์ธ ์˜ˆ์™ธ ์ผ€์ด์Šค๊ฐ€ ์žˆ์„์ง€ ๋ฆฌ๋ทฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

## ๐Ÿงช ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•
1. ๋กœ์ปฌ์—์„œ `npm start` ์‹คํ–‰ ํ›„, ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ์ ‘์†
2. `ID: test@test.com`, `PW: test123`๋กœ ๋กœ๊ทธ์ธ ์‹œ๋„
3. ๋กœ๊ทธ์ธ ์„ฑ๊ณต ์—ฌ๋ถ€ ํ™•์ธ

โœ… ๋ฆฌ๋ทฐ์–ด๊ฐ€ ๋ณ€๊ฒฝ๋œ ์ฝ”๋“œ์˜ ์˜๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.


(3) ๋ฆฌ๋ทฐ์–ด์—๊ฒŒ ๋ช…ํ™•ํ•œ ํ”ผ๋“œ๋ฐฑ ์š”์ฒญํ•˜๊ธฐ

๋ฆฌ๋ทฐ์–ด๊ฐ€ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต๋‹ค.

๋”ฐ๋ผ์„œ “์ด ๋ถ€๋ถ„์„ ์ค‘์ ์ ์œผ๋กœ ๋ด์ฃผ์„ธ์š”!” ํ•˜๋Š” ์š”์ฒญ์ด ์žˆ๋‹ค๋ฉด ๋”์šฑ ํšจ๊ณผ์ ์ธ ๋ฆฌ๋ทฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๐Ÿ“Œ ๋ฆฌ๋ทฐ ์š”์ฒญ ์‹œ ๋ช…ํ™•ํ•œ ๊ฐ€์ด๋“œ ์ œ๊ณต ์˜ˆ์‹œ

 

โœ… “์ด ๊ธฐ๋Šฅ์—์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ํ–ˆ๋Š”์ง€ ๋ด์ฃผ์„ธ์š”!”

โœ… “์ด SQL ์ฟผ๋ฆฌ์˜ ์„ฑ๋Šฅ์ด ๊ดœ์ฐฎ์„์ง€ ํ™•์ธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค!”

โœ… “์ด ์ฝ”๋“œ์—์„œ ๋” ์ข‹์€ ๋„ค์ด๋ฐ์ด ์žˆ์„๊นŒ์š”?”


4๏ธโƒฃ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์š”์ฒญ ํ›„ ์ข‹์€ ํ”ผ๋“œ๋ฐฑ ๋ฐ›๊ธฐ

 

โœ… ์ข‹์€ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์š”์ฒญ์„ ์œ„ํ•œ ํŒ

 

1๏ธโƒฃ ์ž‘์€ ๋‹จ์œ„๋กœ PR์„ ์ƒ์„ฑ: PR ํฌ๊ธฐ๊ฐ€ ํด์ˆ˜๋ก ๋ฆฌ๋ทฐํ•˜๊ธฐ ์–ด๋ ค์›€

2๏ธโƒฃ ์˜๋„๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์„ค๋ช…: ์ฝ”๋“œ ๋ณ€๊ฒฝ์˜ ์ด์œ ๋ฅผ ๋ช…ํ™•ํžˆ ์ž‘์„ฑ

3๏ธโƒฃ ํ…Œ์ŠคํŠธ๋ฅผ ์ถฉ๋ถ„ํžˆ ๊ฑฐ์นœ ํ›„ PR ์š”์ฒญ: ๊ธฐ๋ณธ์ ์ธ ํ…Œ์ŠคํŠธ๊ฐ€ ๋๋‚œ ์ฝ”๋“œ๋งŒ PR ์š”์ฒญ

๐Ÿ’ก ์ข‹์€ PR ์š”์ฒญ์€ ๋ฆฌ๋ทฐ์–ด์˜ ํ”ผ๋“œ๋ฐฑ์„ ๋น ๋ฅด๊ฒŒ ๋ฐ›๊ณ , ํ˜‘์—…์„ ์›ํ™œํ•˜๊ฒŒ ํ•˜๋Š” ์ค‘์š”ํ•œ ์š”์†Œ์ด๋‹ค.

๐Ÿ“Œ ๊ฒฐ๋ก 

  • GitHub์—์„œ ๋ฆฌ๋ทฐ์–ด๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ธฐ๋Šฅ์€ ํ˜‘์—…์„ ์›ํ™œํ•˜๊ฒŒ ์ง„ํ–‰ํ•˜๋Š” ํ•„์ˆ˜ ์š”์†Œ์ด๋‹ค.
  • ๋‹จ์ˆœํžˆ ๋ฆฌ๋ทฐ์–ด๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํšจ๊ณผ์ ์ธ PR ์ž‘์„ฑ๊ณผ ๋ฆฌ๋ทฐ ์š”์ฒญ ๋ฐฉ์‹์ด ํ•„์š”ํ•˜๋‹ค.
  • PR ํ…œํ”Œ๋ฆฟ, ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์š”์ฒญ ๊ฐ€์ด๋“œ, ๋ช…ํ™•ํ•œ ํ”ผ๋“œ๋ฐฑ ์š”์ฒญ์„ ํ†ตํ•ด ๋ฆฌ๋ทฐ์˜ ํ’ˆ์งˆ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ”ฅ ํšจ๊ณผ์ ์ธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์š”์ฒญ์€ ํŒ€ ์ „์ฒด์˜ ์ฝ”๋“œ ํ’ˆ์งˆ์„ ๋†’์ด๋Š” ์ค‘์š”ํ•œ ๊ณผ์ •์ด๋‹ค!

GitHub์˜ ๋ฆฌ๋ทฐ์–ด ์š”์ฒญ ๊ธฐ๋Šฅ์„ ์ž˜ ํ™œ์šฉํ•˜์—ฌ, ํ˜‘์—…์„ ๋” ์›ํ™œํ•˜๊ฒŒ ์ง„ํ–‰ํ•ด ๋ณด์ž. ๐Ÿš€

๋ฐ˜์‘ํ˜•

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

Dev_TIMI

its_TIMI

ํ™œ๋™ํ•˜๊ธฐ