๋ชฉ์ฐจ
1. ์ต์ข ์ฝ๋
1.1. ๋ฒ์
1.1.1. [ ver1 ] 20231016(์) : ๋ฐํ
https://github.com/ohsukyoung/salad_jo_ver1
1.1.2. [ํ์ฌ์ต์ข ๋ฒ์ ] [ ver2 ] 20231022(์ผ) : ํผ๋๋ฐฑ ์์ ๋ฐ ๋ฆฌํํ ๋ง
https://github.com/ohsukyoung/salad_jo_ver2
GitHub - ohsukyoung/salad_jo_ver2
Contribute to ohsukyoung/salad_jo_ver2 development by creating an account on GitHub.
github.com
1.2. ๋ฒ์ ๋ณ ์ฝ๋ ์๋ด
๋ฒ์ ํ๊ธฐ | ๋ ์ง | ๊ตฌ๋ถ |
ver1 | 2023.10.16(์) | ์ต์ด์์ฑ - NEW(์ต์ด) ์ํ๋ ๋๋ก ๋ง๋ค์ด ๋จน๋ ์๋ฌ๋ ํค์ค์คํฌ |
ver2 | 2023.10.22(์ผ) | ๊ด๋ฆฌ์>์ฌ๊ณ ๊ด๋ฆฌ ๊ธฐ๋ฅ ์ ๊ณต - FEATURE(๊ธฐ๋ฅ) ๊ด๋ฆฌ์ > ์ฌ๊ณ ๊ด๋ฆฌ ใด ๊ธฐ์กด ๊ธฐํ ๋ฒ์ ์ ๋กค๋ฐฑํ์ฌ ๋๋ฉ๋ด๋ก ๊ธฐ๋ฅ ์ ๊ณต ๊ด๋ฆฌ์>ํ๋งค๊ด๋ฆฌ ์์ธ์์ ์ผ๋ก ๊ธฐ๋ฅ๋ณ๊ฒฝ ๋ฐ ํ๋งค๊ด๋ฆฌ ์ฌ์ฉ์ ์ฐ๋ - CHANGED(๋ณ๊ฒฝ) ๊ด๋ฆฌ์ > ํ๋งค๊ด๋ฆฌ ใด ๊ธฐ์กด ๊ธฐํ๊ณผ ์ฑํฌ๋ฅผ ๋ง์ถ๊ธฐ ์ํด ํ๋งค๊ด๋ฆฌ์ ๊ธฐ๋ฅ์ ์ฌ๊ณ ๊ด๋ฆฌ, ์ฌ์ฅ์ถ์ฒ > ์์ธ ์์ ์ ํฌํจ ๊ด๋ฆฌ์ ์ฌ๋ฃ์ ์ฌ์ฅ์ถ์ฒ ์ฐ๋ - FIXED(์์ ) ๊ด๋ฆฌ์> ์ฌ์ฅ์ถ์ฒ ใด ์ฌ๋ฃ๋ฆฌ์คํธ ์์ ์ ์ฌ์ฅ์ถ์ฒ ๊ฐ์ ์ฐ๋ ๋ ์ ์๋๋ก ์์ |
1.3. ๊ตฌํ ์์
1.3.1. ๋ฒ์ 1 ์์
1.3.2. ๋ฒ์ 2 ์์
2. ํ๋ก์ ํธ ๊ฐ์
2.1. ํ๋ก์ ํธ ์๊ฐ ๋ฐ ์งํ๊ณผ์
- ํ๋ก์ ํธ ์๊ฐ
- ๊ธฐ๊ฐ: 2023.09.25 ~ 2023.10.16
- ์กฐ๊ฑด: Vending Machine / ์ธ์ด์ฌ์ฉ์ Java๋ง์ผ๋ก, DB ์ฌ์ฉX
- ์ฃผ์ : ์๋ฌ๋ ๋งค์ฅ ํค์ค์คํฌ
- ํ๋ก์ ํธ ์งํ๊ณผ์
NO | Content | Start (* End ์์ ๊ฒฝ์ฐ ํ๋ฃจ ์งํ) |
End |
1. ์์ | - ์ญํ ๋ถ๋ฐฐ | 2023-09-25 | |
2. ๊ธฐํ | - ์ฃผ์ ์ ์ - ํ๋ก์ฐ ์ฐจํธ ์ค๊ณ - ๊ธฐํ์ ์์ฑ - ํํธ๋ถ๋ฐฐ |
2023-09-25 | 10-02 |
3. ๊ธฐ๋ฅ ๊ตฌํ | - ๊ฐ ํํธ ๊ตฌํ ํ ํผ๋๋ฐฑ - ํผ๋๋ฐฑ ์์ |
2023-10-04 | 10-09 |
4. ๊ธฐ๋ฅ ํตํฉ | - ๊ธฐ๋ฅ ํตํฉ ์ค ๊ฐ ํํธ ๋ถ์กฑํ ๊ธฐ๋ฅ ์์ | 2023-10-10 | 10-12 |
5. ํ๋กํ ํ์ | - ๊ธฐ๋ฅ ํตํฉ ์ค ์ค๋ฅ ์ถ์ถ ๋ฐ ํด๊ฒฐ | 2023-10-13 | |
6. ๊ฒํ & ์์ | - ์ฝ๋ ์ต์ข
์์ - ์ต์ข ๋ณด๊ณ ์ ์์ฑ - ppt ๋ฐํ ์ค๋น |
2023-10-13 | 10-15 |
7. ๋ฐํ(ver1) | - ๋ฐํ & QnA & ํผ๋๋ฐฑ | 2023-10-16 | |
8. ๋ณด์(ver2) | - ver1 ์์ ๋ฐ ๋ณด์ | 2023-10-19 | 10.22 |
2.2. ํ๋ก์ ํธ ๊ธฐํ
- ์ฃผ์ ์ ์ ์ด์
- ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ๋์ ๋ชจ๋ธ
ใด ์ฝ๋ก๋ ์ดํ๋ก ํผ๋ฐฅ์ธ์์ด ๋์๊ณ , ์๋ฌ๋ ์ฐพ๋ ์๋น์๊ฐ ๋ง์์ง - ์๋ํ๊ณ ์ถ์ ๊ธฐ๋ฅ์ ํฌ๊ดํ ์ ์๋ ์ฃผ์ (ex. ๋ฉ๋ด์ ํ, ๊ฒฐ์ฌ, ํ์/๋นํ์ ๋ฑ)
- ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ๋์ ๋ชจ๋ธ
- ๋ชฉ์
- ์ฌ์ฉ์๊ฐ ์ฆ์ ์นผ๋ก๋ฆฌ๋ฅผ ํ์ธํ๋ฉฐ ์์ ์ด ์ํ๋ ์๋ฌ๋๋ฅผ ์กฐํฉํ์ฌ ๊ตฌ๋งค๊ฐ ๊ฐ๋ฅํ๋๋ก ํ๊ณ ์ ํ์ด ์ด๋ ค์ด ์ฌ์ฉ์์ ๊ฒฝ์ฐ ๊ด๋ฆฌ์๊ฐ ์ถ์ฒํ๋ ์กฐํฉ์ ์ด์ฉํ๋ ํค์ค์คํฌ ๊ตฌํ
- ๊ด๋ฆฌ์๊ฐ ์ฌ๋ฃ๊ด๋ฆฌ, ์ถ์ฒ์กฐํฉ ๊ด๋ฆฌ, ํ์๊ด๋ฆฌ, ๋งค์ถ๊ด๋ฆฌ ๋ฅผ ํตํด ์ ๋ฐ์ ์ธ ํต์ ๊ฐ ๊ฐ๋ฅํ ํค์ค์คํฌ ๊ตฌํ
2.3. ํ๋ก์ ํธ ์ค๊ณ
- ๊ด๋ฆฌ์ ์ํฌํ๋ก์ฐ ์ฐจํธ
๊ด๋ฆฌ์ ์ํฌํ๋ก์ฐ - ์ฌ์ฉ์ ์ํฌํ๋ก์ฐ ์ฐจํธ
3. ๋์ ๊ตฌํ
3.1. ๋งก์ ์ญํ
- ๊ณํ๋จ๊ณ ์ญํ : ์ผ์ ๊ด๋ฆฌ
- ๊ฐ๋ฐ์ฃผ์ํํธ: ์ฌ์ฉ์ ๋ชจ๋์ ํฌ์ฅ์ฌ๋ถ(์ฌ์ฅ์ถ์ฒ, ๋๋ง์์๋ฌ๋, ์๋ฃ, ์ฌ์ด๋) ํํธ ๊ตฌํ
(ํ์1) | (ํ์2) | (ํ์3) | ๋ (ํ์ฅ) | (ํ์4) | |
๊ณํ | ๋ณด๊ณ ์ ์์ฑ | ํ์๋ก ์์ฑ | ๋ฐํ | ์ผ์ ๊ด๋ฆฌ | ๊ธฐํ์ ์์ฑ |
๊ฐ๋ฐ | ๊ด๋ฆฌ์>๋งค์ถ๊ด๋ฆฌ | ๊ด๋ฆฌ์>ํ์๊ด๋ฆฌ | ๊ด๋ฆฌ์>์ฌ๊ณ ๊ด๋ฆฌ | ์ฌ์ฉ์>๋ฉ๋ด์ ํ | ์ฌ์ฉ์>๊ฒฐ์ |
3.2. ๊ตฌํํ ๊ธฐ๋ฅ
- [ ver1 ] (์ฌ์ฉ์) ๊ด๋ฆฌ์ ์ ์ฅ ๋ฆฌ์คํธ ๊ฐ ์กฐ๊ฑด์ ๋ง๊ฒ ์ถ๋ ฅ
- [ ver1 ] (์ฌ์ฉ์) ์ฌ์ฉ์ ์ ํ ๊ฐ ์ ์ฅํ์ฌ ๋ฆฌ์คํธ๋ก ์ฅ๋ฐ๊ตฌ๋, ๋งค์ถ ๊ด๋ฆฌ์ ํ์ฉํ ์ ์๋๋ก ์ ๋ฌ
- [ ver2 ] (๊ด๋ฆฌ์) ํ๋งค๊ด๋ฆฌ(์ฌ๊ณ ์ ํ , ํ์ ๊ด๋ฆฌ) ๊ธฐ๋ฅ ๋กค๋ฐฑํ์ฌ ํ์ฌ ๊ธฐ๋ฅ์ ๋ง๊ฒ ์กฐ์
- [ ver2 ] (๊ด๋ฆฌ์) ์ฌ์ฅ์ถ์ฒ๊ณผ ์ฌ๋ฃ์ ์๊ด๊ด๊ณ๋ฅผ ๊ณ ๋ คํ์ฌ ์ฌ๋ฃ๋ฆฌ์คํธ๋ฅผ ์ฐธ์กฐํจ์ผ๋ก์จ ์ฌ๋ฃ์ ํํํ
3.3. ๋ง์ฃผํ ๋ฌธ์ ๋ฐ ๊ทน๋ณต๋ฐฉ๋ฒ
๋ง์ฃผํ ๋ฌธ์ | ๊ทน๋ณต๋ฐฉ๋ฒ | |
1. ์ฌ๋ฃ ๋ฆฌ์คํธ ์ ์ฅ ๊ตฌ์กฐ ์์ด |
- ์ฌ์ฉ์: ์นดํ
๊ณ ๋ฆฌ์ ๋ฐ๋ผ ์ฌ๋ฃ๋ฆฌ์คํธ ์ถ๋ ฅ (๋ฒ ์ด์ค, ๋ฉ์ธํ ํ, ์ฌ์ด๋, ์๋ฃ ๋ฑ) - ๊ด๋ฆฌ์: ํ๋์ ๋ฆฌ์คํธ๋ก ๊ด๋ฆฌ์ ํจ์จ ์ถ๊ตฌ |
- ๊ณตํต๋ ํ๋์ ์ฌ๋ฃ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๊ณ ์ฌ๋ฃ์ ์ ์ฅ์ ์ฌ๋ฃ์ ํ์ ์ enum์ ํ์ฉํด ์ ์ฅํ์ฌ ์ฌ์ฉ์์์ ๊ฐ ํ์ ์ ๋ฐ๋ผ ์ถ๋ ฅ |
2. ์ฌ๋ฃ ๊ด๋ฆฌ ๊ตฌ์กฐ | - ๋ง์ ์ฌ๋ฃ์ ๊ทธ์ ๋ํ ์ ๋ณด(ex. ๊ฐ๊ฒฉ, ์นผ๋ก๋ฆฌ, ์๋ ๋ฑ)๋ฅผ ์ด๋ป๊ฒ ์ ์ฅ ํ ๊ฒ์ธ์ง | - ๋จ์ํ ๊ฐ์ ๋ฌถ๋ ๋ฐฐ์ด๋ณด๋ค๋ ์ฌ๋ฃ์ ๋ค์ํ ์์ฑ์ ๊ด๋ฆฌํ๊ธฐ์ ์ฉ์ด - ๋ํ, ๋ฐฐ์ด์ ๊ณ ์ ๋ฐ์ดํฐ ํฌ๊ธฐ์ด๋ ๊ด๋ฆฌ์๊ฐ ์ฌ๋ฃ๋ฅผ ๋์ ์ผ๋ก ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ์ ์๋ ์ปฌ๋์ ์ ํ |
3. ์ ์ฅ ๋ฆฌ์คํธ ๊ณต์ | - ์ ์ฅ๋ ๋ด์ฉ์ ๊ณต์ ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ ๊ณ ๋ฏผ | - new ์ฐ์ฐ์๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ์ง ์์๋ ์ฌ์ฉ๊ฐ๋ฅํ๊ณ ๊ณต์ ๋ ์ ์๋ static์ ์ฌ์ฉ |
4. ์ ๋ ฅํ ๋ด์ฉ ํ๋ก๊ทธ๋จ ์ข ๋ฃ์ ์ ์ง๋์ง ์์ | - ํ๋ก๊ทธ๋จ ์ข ๋ฃ์ ๊ธฐ์กด ์ ์ฅ๊ฐ์ด ์ฌ๋ผ์ง | - ๊ฐ์ฒด์ง๋ ฌํ, ์ญ์ง๋ ฌํ๋ฅผ ์ด์ฉํด DB์ฒ๋ผ ์ฌ์ฉ |
5. ์ฝ๋์ ์ค๋ณต | - ์ฌ์ฉ์์๊ฒ ์ฌ๋ฃํ์ ์ ๋ง๋ ์ฌ๋ฃ๋ฅผ ์ถ๋ ฅํ๊ฑฐ๋, ์ ๋ ฅ๋ฐ๋ ์ฝ๋์ ์ค๋ณต | - ๊ณตํต๋ ์์๋ฅผ ๋ฝ์ ๋งค๊ฐ๋ณ์(์ฌ๋ฃํ์ )์ ๋ฐ๋ผ ์ถ๋ ฅ ๋ ์ ์๋๋ก ์ฝ๋์ ํจ์จ์ฑ์ ๋์ |
6. ์ฅ๋ฐ๊ตฌ๋์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ์ฌ๋ฃ ๋ฆฌ์คํธ ๊ฐ์ ์ฐ๋ ๋ฌธ์ | - ์ฌ์ฉ์๊ฐ ์ฌ๋ฃ๋ฅผ ์ฅ๋ฐ๊ตฌ๋์ ๋ด์์ ๊ฒฝ์ฐ, ๋ด์ ์ฌ๋ฃ๋ฅผ ์ ์ธํ๊ณ ์ ํํ ์ ์์ด์ผํจ | - ์ฌ๋ฃ๋ฆฌ์คํธ ์ถ๋ ฅ์ด ๋จ์ํ ์ฌ๋ฃ๋ฆฌ์คํธ์ ๊ฐ์๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด ์๋, ์ฅ๋ฐ๊ตฌ๋์ ์ฐ๋ํ์ฌ ๋จ์ ๊ฐ์๋ฅผ ๋ ธ์ถํ์ฌ ์ฌ์ฉ์์๊ฒ ๋จ์ ๊ฐ์๋ฅผ ์ธ์ํ ์ ์๋๋ก ํจ |
3.4. ์ฃผ์ ๋ฌธ์ ๊ทน๋ณต ์ค์ ์ฝ๋
3.4.1. ์ฌ๋ฃ๋ฆฌ์คํธ ์ ์ฅ ๊ตฌ์กฐ ์์ด -> ํ๋์ ์ฌ๋ฃ ๋ฆฌ์คํธ ์ฌ์ฉ, ์ฌ๋ฃ ํ์ ์ ๋ฐ๋ผ ์ถ๋ ฅ
3.4.1.1. @before ์์ ์
/* 1) ์นดํ
๊ณ ๋ฆฌ๋ณ ์ฌ๋ฃ ๋ฆฌ์คํธ ์์ฑ =======================*/
dep2_infoBase dep2InfoBa = new dep2_infoBase(); // 2dep-๋ฒ ์ด์ค ๋ฑ...
dep2_infoMain dep2InfoMa = new dep2_infoMain();
dep2_infoSide dep2InfoSi = new dep2_infoSide();
dep2_infoSource dep2InfoSo = new dep2_infoSource();
dep1_infoCeo dep1InfoCe = new dep1_infoCeo(); //์ฌ์ฅ์ถ์ฒ
dep1_infoDrink dep1InfoDr = new dep1_infoDrink();// ์๋ฃ
(...์ค๋ต...)
/* 2) ์ฌ์ฉ์ ์๋ดํ์ด์ง =======================*/
public void menuDisp() {
System.out.println("=============================");
System.out.println("\t [[์๋ฌ๋๋จน์กฐ]]");
System.out.println("\t 1. ์ฌ์ฅ์ถ์ฒ");
System.out.println("\t 2. ๋๋ง์ ์๋ฌ๋");
System.out.println("\t 3. ์๋ฃ");
System.out.println("\t 4. ์ฌ์ด๋");
System.out.println("=============================");
userSelect = sMenu.menuSelect(4);
}
(...์ค๋ต...)
/* 3) ์นดํ
๊ณ ๋ฆฌ๋ณ static ๋ณ์ ์ ์ธ =======================*/
static final int E_RCMND = 1; // ์ฌ์ฅ์ถ์ฒ
static final int E_MY_SALAD = 2; // ๋๋ง์ ์๋ฌ๋
static final int E_DRINK = 3; // ์๋ฃ
static final int E_SIDE = 4; // ์ฌ์ด๋
/* 4) ์ฌ์ฉ์ ์ ํ์ ๋ฐ๋ผ ์ด๋ =======================*/
public void menuRun() {
switch (userSelect) {
case E_RCMND : menuRcmd(); break;
case E_MY_SALAD : menuMySalad(); break;
case E_DRINK : menuDrink(); break;
case E_SIDE : menuSide(); break;
case E_CANCEL : menuCancel(); break;
}
}
(...์ค๋ต...)
/* 5) ์ฌ๋ฃ ๋ฆฌ์คํธ ์ถ๋ ฅ =======================*/
public void menuMySalad() {
System.out.println("\n2. ๋๋ง์ ์๋ฌ๋ -------------------------------------- ");
dep2InfoBa.menuInfo(mRInner);
dep2InfoMa.menuInfo(mRInner);
dep2InfoSi.menuInfo(mRInner);
dep2InfoSo.menuInfo(mRInner);
}
3.4.1.2. @after ์์ ํ
/* 1) ์ฌ๋ฃ ๋ฆฌ์คํธ ์์ฑ =======================*/
public class CacheData {
static List<Product> allProductList = new ArrayList<>(); // ์ ํ ๋ฆฌ์คํธ
}
(...์ค๋ต...)
/* 2) ์ฌ์ฉ์ ์๋ดํ์ด์ง =======================*/
public void menuDisp() {
System.out.println("\n\t[ ์ฌ์ฉ์ ๋ฉ๋ด ์ ํ ]===========");
System.out.println("\t1. ์ฌ์ฅ์ถ์ฒ");
System.out.println("\t2. ๋๋ง์ ์๋ฌ๋");
System.out.println("\t3. ์๋ฃ");
System.out.println("\t4. ์ฌ์ด๋");
System.out.println("\t=============================");
}
/* 3) ์ ํ๊ด๋ จ ์ ๋ณด ์ด๊ฑฐํ(Enum)์ฌ์ฉ =======================*/
enum ProductType {
//Enum ์ฌ์ฉ์ด์ : ๊ฐ๋
์ฑ ๋ฐ ์ ์ง๋ณด์, ์์ ์ฑ(enum ํ์
์ ๊ฐ๋ง ํ์ฉ), ์ฝ๋ ์ค๋ณต ๋ฐฉ์ง, ํน์ ๊ฐ ์งํฉ ํํ
RCMND(1, 1, "์ฌ์ฅ์ถ์ฒ"), // index, depth, name
MY_SALAD(2, 1, "๋๋ง์ ์๋ฌ๋"),
DRINK(3, 1, "์๋ฃ"),
SIDE(4, 1, "์ฌ์ด๋"),
S_BASE(5, 2, "๋ฒ ์ด์ค"),
S_MAIN(6, 2, "๋ฉ์ธํ ํ"),
S_SIDE(7, 2, "์ฌ์ด๋ํ ํ"),
S_SOURCE(8, 2, "์์ค"),
}
(...์ค๋ต...)
/* 4) ์ฌ์ฉ์ ์ ํ์ ๋ฐ๋ผ ์ด๋ =======================*/
public void menuRun(int userSelect) {
// userSelect๋ฅผ ProductType์ผ๋ก ๋ณํ
ProductTypeChange productTypeChange = new ProductTypeChange();
ProductType productType = productTypeChange.ProductTypeChange(userSelect);
switch (productType) { // DESC: swtich๋ฌธ์ ์กฐ๊ฑด์ String ํ์
์ ๋ฃ๊ฒ๋๋ฉด, case๋ฌธ์์ enumํ์
์ผ๋ก ๋น๊ตํ ์ ๊ฐ ์์
case RCMND : menuRcmd(); break;
case MY_SALAD : menuMySalad(); break;
case DRINK : menuDrink(); break;
case SIDE : menuSide(); break;
}
}
(...์ค๋ต...)
/* 4) ํ๋ก๋ํธํ์
์ ๋๊ฒจ์ค์, ํด๋นํ๋ ์ฌ๋ฃ ๋ฆฌ์คํธ ์ถ๋ ฅ =======================*/
public void menuMySalad() {
System.out.println("\n\t[ 2. ๋๋ง์ ์๋ฌ๋ ]");
System.out.println("\t[ ๋ฒ ์ด์ค โ โ โ โ ]");
info.printInfo(ProductType.S_BASE);
System.out.println("\t[ โ ๋ฉ์ธํ ํ โ โ โ ]");
info.printInfo(ProductType.S_MAIN);
System.out.println("\t[ โ โ ์ฌ์ด๋ํ ํ โ โ ]");
info.printInfo(ProductType.S_SIDE);
System.out.println("\t[ โ โ โ ์์ค โ ]");
info.printInfo(ProductType.S_SOURCE);
}
(...์ค๋ต...)
/* 5) ํ๋ก๋ํธํ์
์ ๋ฐ๋ผ ์ฌ๋ฃ๋ฆฌ์คํธ์์ ํด๋นํ๋ ์ฌ๋ฃ ๊ฐ์ ธ์ด =======================*/
interface PdInterface {
List<Product> allProductList = CacheData.allProductList;
List<Product> getList(ProductType productType);
}
// ์
๋ ฅ๋ฐ์ ProductType์ ๊ธฐ์ค์ผ๋ก ๋ฆฌ์คํธ ์์ฑ
class ProductService implements PdInterface {
@Override
public List<Product> getList(ProductType productType) {
List<Product> result = new ArrayList<>();
for (Product product : allProductList) {
if (product.getType().equals(productType) // ํด๋นํ๋ productType
&& product.getP_count()>product.getP_stock() // ๊ฐ์๊ฐ ์ฌ๊ณ ๋ณด๋ค ๋ง์ ๋
&& product.getSaleflag() // ํ๋งค์
ํ
true
) {
result.add(product);
}
}
return result;
}
}
4. ๊ฐ์ธ์ ์ธ ํ๊ธฐ
4.1. ๋ฐฐ์ด ์
- ์ ํ๋ ์๊ฐ ๋ด์ ์์ํ ๊ฒ์ ๊ตฌ์ฒดํํ๊ธฐ ์ํด ๋
ธ๋ ฅํ๋ ๊ณผ์ ์์ ๋ค์ํ ๋ฐฉ๋ฒ์ ์๋ํด ๋ณผ ์์์๋ค.
- 1) ์์ํ ๊ฒ์ 'ํ๋ก์ฐ ์ฐจํธ'๋ฅผ ๊ทธ๋ฆฌ๋ฉฐ ๋์ํํ์ฌ ๊ตฌํํด์ผ ํ ๊ธฐ๋ฅ์ ์ธ๋ถํํ๊ณ
- 2) ์ธ๋ถํํ ๊ธฐ๋ฅ์ '์ผ์ ๊ด๋ฆฌ๋ฌธ์'์ ๋ชฉ๋ก์ผ๋ก ๋์ถํ์ฌ ๋ฐ๋๋ผ์ธ์ ์งํฌ ์ ์๋๋ก ๋ ธ๋ ฅํ๊ณ
- 3) ๋ง์ ํ์๋ค๊ณผ ์ฝ๋๋ก์จ ์ํตํ ์ ์๋๋ก ๊ตฌํ์์ ์ฃผ๊ณ ๋ฐ๋ ๋งค๊ฐ๋ณ์ ๋ฐ ๊ณตํต ์์๋ฅผ ๋ฌถ์ด ๊ฐ๋ตํ 'ํด๋์ค ๋ค์ด์ด๊ทธ๋จ'์ ๋ง๋ค์๋ค.
- 1-1) ํ๋ก์ฐ ์ฐจํธ๋ฅผ ์ธ๋ถํํ ๋๋ถ์ ์ ์ถ๋ ฅ์์ ์ด๋ฃจ์ด์ ธ์ผํ ๋ด์ฉ์ ๋ช ํํ ํ ์ ์์๋ค.
- 2-1) ์ผ์ ๊ด๋ฆฌ๋ฌธ์๋ฅผ ํตํด ๊ธฐ๋ฅ๊ตฌํ ๊ณผ์ ์ ๋จ๊ณ์ ๋ชํผ์ผํธ ์งํ๋์์ง๋ ์ ๋ฐ์ ์ผ๋ก ํ์ ํ ์ ์์๋ค.
- 3-1) ํด๋์ค ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ์์ ๋ฐ ๋ค๋ฅธ ํด๋์ค์์ ๊ด๊ณ๋ฅผ ๋ ์ฝ๊ฒ ๊ทธ๋ ค๋ณผ ์ ์์๋ค.
- ํ์์ ์์ ์ฐ๋ฆฌ๋ผ๋ฆฌ์ ๊ท์น์ ๋ง๋๋ ค๊ณ ๋ ธ๋ ฅํ ๋๋ถ์ ๋ณ์๋ช ๋ฐ ์๋ฃ๊ตฌ์กฐ๊ฐ ์ผ์ ๋ถ๋ถ ํต์ผ๋์๋ค. ๋ํ ์์ ์ฝ๋ฉํ๋ ๋ด์ฉ์ด ์ค์ ๋ก ๊ตฌํ๋๋ค๋ณด๋ ๋์ ์์์ ๋ฒ์๊ฐ ์ด๋๊น์ง ๋ง์๋์ง ํ์ธํด ๋ณผ ์ ์์ด์ ์ข์๋ค.
4.2. ์์ฌ์ด ์ / ๋ฐ์ ์์ผ์ผ ํ ์
- ์ค์ ๊ตฌํ์์๋ ์ฝ์ํ์ง ๋ชปํ ๋ค์ํ ์๋ฃ๊ตฌ์กฐ, ๋ณ์๋ฅผ ๋ง๋ค์ด์ผํด์ ์ธ๋ถ์ ์ธ ๊ท์น๋ฅผ ์ธ์ธํ๊ฒ ์ง๊ธฐ๋ณด๋ค๋ ํฐ ํ์์์ ๊ท์น์ ๋ง๋ค์ด์ผํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ๋๊ผ๋ค.
(ex. ๋ณ์๋ช ์ด๋ฆ์ ํ๋ํ๋ ์ ํ๊ธฐ๋ณด๋ค, ๋ง๋ค์ด์ง ๋ณ์๋ฅผ ์ถ์ฝํ์ง ์๊ณ ์๋ก ํ์ธ๊ฐ๋ฅํ ๋จ์ด๋ค๋ก ๋ง๋ค๊ธฐ ๋ฑ) - ์ด์ฌํ ์ํตํ๋ ค ๋ ธ๋ ฅํ์ง๋ง ๋ ์ ๊ทน์ ์ธ ์์ธ๊ฐ ํ์ํ๋ค. ๋ด ํํธ๊ฐ ๋ง๋ค์ด์ก๋ค๊ณ ๋์ด ์๋๊ณ , ๊ด๋ จ๋ ํํธ์ ํ์์ด ์ด๋ป๊ฒ ๋ง๋๋์ง, ๋ฌด์์ด ๋ฌธ์ ์ธ์ง ์ง์์ ์ผ๋ก ๋ง์ถฐ๊ฐ์ผํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค.
4.3. ๋ค์ ํ๋ก์ ํธ์์ ๊ณ ๋ คํ๋ฉด ์ข์ ์
- ๊น ์ฌ์ฉ: ๊ฐ์ธ์ผ๋ก ์์ ํ ๋๋ ์๊ด์์์ง๋ง, ๊ณ์์ ์ผ๋ก ์๋ก์ ์ฝ๋๊ฐ ์์ ๋๋ฉด์ ๊ณ์์ ์ผ๋ก ์๋ก์ ์ฝ๋๋ฅผ ์ ์ฅ๋ฐ๊ณ , ์์ ๋ด์ฉ์ ํ์ธํ๊ณ ํตํฉํ๋ ๊ณผ์ ์์ ์๊ฐ์ ๋ง์ด ์์ํ์๋ค. ๊น์ ํตํด ํ์๊ด๋ฆฌ ๋ฟ ์๋๋ผ, ํตํฉ๋ ํธํ๊ฒ ํ๋ค๋ฉด ์ค ์ฝ๋๋ฅผ ๋ ๋ง์ด ํ ์คํธํ ์๊ฐ์ด ๋์ด๋ ๊ฒ์ด๋ผ ์๊ฐํ๋ค.
- ํ๋ก์ฐ์ฐจํธ: ๊ฐ๋ฐํ ์ ์๋๋ก ๋ช ํํ๊ณ ์๊ฐ์ ์ผ๋ก ๋ณด์ผ ์ ์๊ฒ ์์ฑํด์ผํ๋ค๊ณ ๋๊ผ๋ค.
4.4. ํ๋ก์ ํธ๋ฅผ ๋ง์น๋ฉฐ...
๋๋์ด! ํ๋ก์ ํธ๊ฐ ๋ง๋ฌด๋ฆฌ๋์๋ค. (์ผ์ด๋์ ๋ฐ์์น๋ ์คใ )
๋ถ๋ช ํ ๊ฑด, 'ํจ๊ป ์ฌ์ ๋ฉ๋ฆฌ ๊ฐ ์ ์์๋ค'๋ผ๋ ์ฌ์ค์ด๋ค. ์๋ฒฝ๊น์ง ์ฝ๋์ง๊ณ ๊ฐ์์ค์ ๋ค์ด๊ฐ์ ๋ค์ ํํ์๋ฅผ ํ๋ ๋ฌด์ํ ๋๋ ๋ค.. ์ฒ์์๋ ํผ์ ๋นจ๋ฆฌ ์ง๋๋ฅผ ๋๊ฐ๊ธฐ ์ํด ์๋๋ ๋ค. ๊ทธ ๊ณผ์ ์์ ์ผ๋ถ ์ธ์ธํ ๊ณผ์ ์ ์ฑ๊ธฐ์ง ๋ชปํ๊ณ , ๋ ๋๋ฌด ํผ๊ณคํ๊ธฐ์ ์๋์ ์ผ๋ก ๋ ์ค์ํ๋ค๊ณ ์๊ฐ๋๋ ๋ถ๋ถ์ ๋๊ธฐ๊ณ ์ถ์๋ค.(์ ํฉํ ๋ฆฌ์คํธ์ ๋ํ ๊ณ ๋ฏผ, '์'์ ๋ํ ๊ณ ๋ฏผ ๋ฑ)
๊ทธ๋ฌ๋ ํ๋ก์ ํธ์ ํ์๋ฅผ ํตํด์ '๋จ์ํ ๊ธฐ๋ฅ ๊ตฌํ' ๋ณด๋ค๋, '์ ์ด๋ ๊ฒ ์ฝ๋๋ฅผ ๊ตฌํํ๊ฒ ๋์๋์ง'๊ฐ ๋ ์ค์ํ๋ค๋ ์ฌ์ค์ ๊นจ๋ฌ์๋ค. ์๋ํ๋ฉด ํ ํ๋ก์ ํธ๋ผ๋ ๊ฒ์ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์ดํดํ ์ ์๋ ํ๋ก๊ทธ๋จ์ ๊ตฌํํ๋ ๊ฒ์ด๊ณ , ๋ด๊ฐ ์๋ ๋ค๋ฅธ ์ด์ ๊ฐ์ ๊ฒฐ๋ก ์ ๋๋ฌํ๊ธฐ ์ํด์๋ ์ ์ด๋ ๊ฒ ์ฝ๋๋ฅผ ๊ตฌํํ๋์ง ๋ฉ๋ ํ ์ ์๋๋ก ์ค๋ช ํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ค๋ฅธ ์ฌ๋์ ์ค๋์ํค๊ธฐ ์ํด์๋ ๋ ๋ง์ด ์กฐ์ฌํ๊ณ ๊ณต๋ถํด์ผํ๊ณ , ์๋ฐ ์ธ๋ฏธํ๋ก์ ํธ๊ธฐ๊ฐ์ ์ฌ๋ฌ๋ฒ JAVA๋ฅผ ๋ณต์ตํ๊ฒ ๋์๋ค. ์ ๋ง ํ๋ค์์ง๋ง, ์ข์ ์ฝ๋๋ ๋ฌด์์ผ์ง ์ค์ค๋ก์๊ฒ ๋ฌป๊ณ ๊ณต๋ถํ๊ณ ์ง๋ฌธํ๋ ์๊ฐ์ด ์์ผ๋ก ๋๋ฅผ ์งํฑํ ๋ฐ๊ฑฐ๋ฆ์ด ๋ ๊ฑฐ๋ผ๋ ๋ถ๋ช ํ ํ์ ์ด๋ค์ด ๊ธฐ์๋ค. ์ง๊ธ์ ์ต์ ์ ์ ํ์ด์์ง๋ง, ๊ณต๋ถํ๋ค ๋ณด๋ฉด ๋ ์ข์ ์ฝ๋๋ฅผ ๋ง๋ค์ ์๊ฒ ์ง? ์์ผ๋ก์ ๋ฐฐ์์ด ๋ ๊ธฐ๋๋๋ค!
5. ๊ธฐํ
5.1. ์ฐธ๊ณ ์๋ฃ
- ๊ธฐํ| ์ํฌํ๋ก์ฐ
https://www.drawio.com/ - ๊ตฌํ| ์ธํ
๋ฆฌ์ ์ด
https://www.jetbrains.com/ko-kr/idea/ - ๊ตฌํ| ๊ฐ๋
๋ณต์ต: ์ ํ๋ธ ๊ฐ์_Java ๋.์ฅ.๋ด.๊ธฐ
https://www.youtube.com/watch?v=iN22AgS_Chk - ๊พธ๋ฏธ๊ธฐ| ํ
์คํธ ์ด๋ฏธ์ง๋ก ๋ณํ
https://jdh5202.tistory.com/584 - ํ์๊ด๋ฆฌ| ๊น : ๋งจ๋
์์ ์์ํ๋ ํ์
์ ์ํ Github ์ฌ์ฉ๋ฒ
https://dhgu-dev.medium.com/%EB%A7%A8%EB%95%85%EC%97%90%EC%84%9C-%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94-%ED%98%91%EC%97%85%EC%9D%84-%EC%9C%84%ED%95%9C-github-%EC%82%AC%EC%9A%A9%EB%B2%95-46f64418cf81 - ํ์๊ด๋ฆฌ| ๊น : ์ปค๋ฐ ๋ฉ์์ง ํ
ํ๋ฆฟ
https://velog.io/@cnsrn1874/git-%EC%BB%A4%EB%B0%8B-%EB%A9%94%EC%8B%9C%EC%A7%80-%ED%85%9C%ED%94%8C%EB%A6%BF