# ๐ŸŒฟ Git ๋ธŒ๋žœ์น˜ ์ „๋žต ๋ฐ ๋ฌธ์ œ๋ณ„ ํ•ด๋‹ต ๊ฐ€์ด๋“œ ๋งค๋‰ด์–ผ ๋ณธ ๋ฌธ์„œ๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋ฌธ์ œ๋ณ„(๊ธฐ๋Šฅ๋ณ„) ํ•ด๋‹ต ๋ธŒ๋žœ์น˜ ๊ตฌ์„ฑ, ์˜์กด ๊ด€๊ณ„ ํ๋ฆ„ ๋ฐ ๋‹จ๊ณ„๋ณ„ Git ์ž‘์—… ์ ˆ์ฐจ๋ฅผ ์•ˆ๋‚ดํ•˜๋Š” ๋งค๋‰ด์–ผ์ž…๋‹ˆ๋‹ค. --- ## 1. ๋ธŒ๋žœ์น˜ ์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š” - **`master` ๋ธŒ๋žœ์น˜**: 00๋ฒˆ๋ถ€ํ„ฐ 07๋ฒˆ๊นŒ์ง€ ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„ ๋ฐ ๊ฒ€์ฆ ์™„๋ฃŒ๋œ **์ตœ์ข… ์™„์„ฑํ˜•(Final Release)** ๋ธŒ๋žœ์น˜์ž…๋‹ˆ๋‹ค. - **`feature/*` ๋ธŒ๋žœ์น˜**: ์ดˆ๊ธฐ ํ™˜๊ฒฝ(`feature/00-init`)๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๊ฐ ๊ธฐ๋Šฅ์ด ํ•˜๋‚˜์”ฉ ๋ˆ„์ ๋˜์–ด ์ถ”๊ฐ€๋˜๋Š” **๋‹จ๊ณ„๋ณ„ ํ•ด๋‹ต ๋ธŒ๋žœ์น˜(Step-by-Step Solutions)**์ž…๋‹ˆ๋‹ค. ```text [feature/00-init] : ์ดˆ๊ธฐ ๋ฒ ์ด์Šค ๋ฐ ๊ธฐ๋ณธ ๊ณตํ†ต ํ™˜๊ฒฝ โ”‚ โ–ผ [feature/01-search] : 00 + 01. ๋ชฉ๋ก ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ โ”‚ โ–ผ [feature/02-prev-next] : 01 + 02. ์ƒ์„ธ๊ธ€ ์ด์ „๊ธ€/๋‹ค์Œ๊ธ€ ํƒ์ƒ‰ โ”‚ โ–ผ [feature/03-preview-popup] : 02 + 03. ๋ชฉ๋ก์—์„œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํŒ์—… โ”‚ โ–ผ [feature/04-multi-delete] : 03 + 04. ๋ชฉ๋ก์—์„œ ๋‹ค์ค‘ ์‚ญ์ œ โ”‚ โ–ผ [feature/05-login] : 04 + 05. ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ โ”‚ โ–ผ [feature/06-user-management] : 05 + 06. ํšŒ์› ๊ด€๋ฆฌ ๊ธฐ๋Šฅ โ”‚ โ–ผ [feature/07-message] : 06 + 07. ์ชฝ์ง€ ๊ธฐ๋Šฅ (์™„์„ฑ ๋‹จ๊ณ„) โ”‚ โ–ผ [master] : ์ตœ์ข… ๋ณ‘ํ•ฉ ๋ฐ ์™„๊ฒฐ ์ƒํƒœ ``` --- ## 2. ๊ฐ ๋ธŒ๋žœ์น˜๋ณ„ ์ƒ์„ธ ์ •์˜ | ๋ธŒ๋žœ์น˜๋ช… | Base ๋ธŒ๋žœ์น˜ | ์ฃผ์š” ๊ตฌํ˜„ ๋‚ด์šฉ | | :--- | :--- | :--- | | `feature/00-init` | `master` | ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ์„ค์ •, ๊ณตํ†ต DAO, ๊ธฐ๋ณธ ๊ฒŒ์‹œํŒ ๋ผˆ๋Œ€ | | `feature/01-search` | `feature/00-init` | 01. ๊ฒ€์ƒ‰ ์กฐ๊ฑด(์ œ๋ชฉ/๋‚ด์šฉ ๋“ฑ) ์„ ํƒ ๋ฐ ํ‚ค์›Œ๋“œ ๋ชฉ๋ก ๊ฒ€์ƒ‰ | | `feature/02-prev-next` | `feature/01-search` | 02. ๊ฒŒ์‹œ๊ธ€ ์ƒ์„ธ ์กฐํšŒ ์‹œ ์ด์ „๊ธ€/๋‹ค์Œ๊ธ€ ๋ฒˆํ˜ธ ๋ฐ ์ œ๋ชฉ ์ด๋™ | | `feature/03-preview-popup` | `feature/02-prev-next` | 03. ๋ชฉ๋ก์—์„œ ๋ ˆ์ด์–ด ํŒ์—…/๋ชจ๋‹ฌ์„ ํ†ตํ•œ ๋ณธ๋ฌธ ๋‚ด์šฉ ๋ฏธ๋ฆฌ๋ณด๊ธฐ | | `feature/04-multi-delete` | `feature/03-preview-popup` | 04. ๋ชฉ๋ก ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ฒŒ์‹œ๊ธ€ ๋‹ค์ค‘(์ผ๊ด„) ์‚ญ์ œ | | `feature/05-login` | `feature/04-multi-delete` | 05. ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ, ์ธํ„ฐ์…‰ํ„ฐ ๊ธฐ๋ฐ˜ ์„ธ์…˜ ์ธ์ฆ ์ฒ˜๋ฆฌ | | `feature/06-user-management` | `feature/05-login` | 06. ํšŒ์›๊ฐ€์ž…, ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ, ๊ถŒํ•œ ๋ฐ ๊ณ„์ • ๊ด€๋ฆฌ | | `feature/07-message` | `feature/06-user-management` | 07. ํšŒ์› ๊ฐ„ ์ชฝ์ง€ ๋ฐœ์†ก, ์ˆ˜์‹ ํ•จ/๋ฐœ์‹ ํ•จ ์กฐํšŒ | --- ## 3. ๋‹จ๊ณ„๋ณ„ ๋ธŒ๋žœ์น˜ ์ž‘์—… ๋ช…๋ น์–ด ๊ฐ€์ด๋“œ ### 3.1. ๋ฒ ์ด์Šค ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ๋‹ค์Œ ๋‹จ๊ณ„ ์ž‘์—… ์ด์ „ ๋‹จ๊ณ„ ๋ธŒ๋žœ์น˜์—์„œ ๋‹ค์Œ ๋‹จ๊ณ„ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์—ฐ์†์ ์ธ ๋ˆ„์  ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ```bash # ์˜ˆ์‹œ: 00-init ํ™˜๊ฒฝ์—์„œ 01-search ๋ธŒ๋žœ์น˜ ํŒŒ์ƒ git checkout feature/00-init git checkout -b feature/01-search # ์ž‘์—… ๋ฐ ํ…Œ์ŠคํŠธ ์ง„ํ–‰ ํ›„ ์ปค๋ฐ‹ git add . git commit -m "01. ๋ชฉ๋ก ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„" # ์›๊ฒฉ ์ €์žฅ์†Œ ํ‘ธ์‹œ git push -u origin feature/01-search ``` ### 3.2. ๋‹ค์Œ ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜๋กœ ๊ณ„์† ์ฒด์ธ ์ž‘์—… ์‹œ ```bash # ์˜ˆ์‹œ: 01-search ๋ธŒ๋žœ์น˜์—์„œ 02-prev-next ๋ธŒ๋žœ์น˜ ํŒŒ์ƒ git checkout feature/01-search git checkout -b feature/02-prev-next # ์ž‘์—… ๋ฐ ์ปค๋ฐ‹ git add . git commit -m "02. ์ƒ์„ธ๊ธ€ ์ด์ „๊ธ€/๋‹ค์Œ๊ธ€ ํƒ์ƒ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„" # ์›๊ฒฉ ํ‘ธ์‹œ git push -u origin feature/02-prev-next ``` --- ## 4. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๊ทœ์น™ - ๋ชจ๋“  Git ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋Š” **ํ•œ๊ตญ์–ด**๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. - ์˜ˆ์‹œ: - `01. ๋ชฉ๋ก ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„` - `02. ์ƒ์„ธ๊ธ€ ์ด์ „๊ธ€ ๋‹ค์Œ๊ธ€ SQL ์ฟผ๋ฆฌ ๋ฐ UI ์ถ”๊ฐ€` - `05. ๋กœ๊ทธ์ธ ์ธํ„ฐ์…‰ํ„ฐ ๋ฐ ์„ธ์…˜ ์ฒ˜๋ฆฌ ์ถ”๊ฐ€`