
โ๏ธ ํจ์คํธํธ๋ ๊ฐ๊ฒ๋ฅผ ๋ฐฉ๋ฌธํ๋ ๊ณ ๊ฐ์ ์ํ ์ฃผ๋ฌธ ํค์ค์คํฌ ํ๋ก๊ทธ๋จ
๋ชฉ์ : ์ฌ์ฉ์๊ฐ ์นดํ ๊ณ ๋ฆฌ ๋ณ๋ก ๋ฉ๋ด๋ฅผ ์ ํํ ์ ์๋ค.
๋ชฉ์ : ์ฌ์ฉ์๊ฐ ๋ฉ๋ด๋ฅผ ์ฅ๋ฐ๊ตฌ๋์ ๋ด๊ณ ์์ ํ ์ ์๋ค.
๋ชฉ์ : ์ฌ์ฉ์๊ฐ ์ฅ๋ฐ๊ตฌ๋์ ๋ด๊ธด ๋ฉ๋ด๋ฅผ ํ์ธํ๊ณ ๊ฒฐ์ ํ๋ค.



โ ๋ฌธ์
commit e1fdbd15dda7cb5f3fdf19116c8a79004ae84db2 (HEAD -> dev)
Author: YejinY00n <yoon17710@gmail.com>
Date: Fri Mar 7 20:49:37 2025 +0900
Refactor: Lv3. Kiosk ํดรซ<U+009E>ํด๋์ครฌ<U+0097> ํด๋์ค๋ก ์ ์ด ๋ด๋น ์ด์
commit 4edb0fa8b2e78bb54b72f9f96555a1a6df923319 (main)
Author: YejinY00n <yoon17710@gmail.com>
Date: Fri Mar 7 20:06:50 2025 +0900
Feat: Lv.1 ๊ธฐ๋ณธ ํค์ค์คํฌ ๊ธฐ๋ฅ รฌ(๋ฉ๋ด รฌ (๋ฉรซ<U+0089>์ถ๊ฐ - ยถ<U+009C>รซ ์ถ๋ ฅ
:
git bash ์ปค๋์ ํตํด ์ปค๋ฐ ํ ๋ก๊ทธ ๋ด์ญ ํ์ธํด๋ณด๋ ์์ ๊ฐ์ด ์ปค๋ฐ ๋ฉ์ธ์ง ๊ธ์๊ฐ ๊นจ์ ธ์์โ ์์ธ
git bash์ ์ธ์ฝ๋ฉ ๋ฌธ์ ๋ก ํ๊ธ์ด ์ ๋๋ก ๋ฉ์ธ์ง์ ์ ์ฅ๋์ง ์์โ ํด๊ฒฐ
์ปค๋ฐ ๋ด์ญ์ด ์์ง ๋ก์ปฌ์๋ง ์กด์ฌํ๋ค๋ฉด ์๋์ ๊ฐ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค.
git log
์ปค๋ฐ ๋ด์ญ์ ํ์ธํ์ฌ ์์ ํด์ผํ๋ ๋ฉ์ธ์ง์ ์์น๋ฅผ ํ์
1) ๊ฐ์ฅ ์ต๊ทผ์ ์ปค๋ฐ ๋ฉ์ธ์ง
git commit --amend
๊ฐ์ฅ ์ต๊ทผ์ ์ปค๋ฐ ๋ฉ์ธ์ง ํ๋๋ฅผ ์์ ํ ์ ์๋ค.
2) ๊ฐ์ฅ ์์์๋ถํฐ N๋ฒ์งธ ๋ฉ์ธ์ง ์์
git rebase -i HEAD~N
๋ช
๋ น์ด ์ฌ์ฉ ์ ํ์ฌ ์์
๋ธ๋์น์ ๊ฐ์ฅ ์ต๊ทผ ์ปค๋ฐ N๊ฐ๋ฅผ ๋ณด์ฌ์ค๋ค. ์ฌ๋ฌ ๊ฐ๋ฅผ ์์ ํด์ผํ๊ฑฐ๋ ๊ฐ์ฅ ์ต๊ทผ์ด ์๋ ์ปค๋ฐ ๋ฉ์ธ์ง๋ฅผ ์์ ํด์ผํ ๋ ์ฌ์ฉํ ์ ์๋ค.

์ฌ์ง๊ณผ ๊ฐ์ด ์ปค๋ฐ ๋ด์ญ์ ํ์ธํ ์ ์๋ค. ์ด ์ค ์์ ํ๋ ค๋ ์ปค๋ฐ์ pick์ reword๋ก ๋ณ๊ฒฝํ ํ ์ ์ฅํ๋ฉด, ํด๋น ์ปค๋ฐ์ ์์ ํ ์ ์๋ ์ฐฝ์ด ์ด๋ฆฐ๋ค.
vim ๋ฌธ๋ฒ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ ํ ๋ vim์ด ๊ธฐ๋ณธ ํธ์ง๊ธฐ๋ก ์ฌ์ฉ๋๋ฏ๋ก, ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ณธ์ ์ธ ๋ช
๋ น์ด๋ฅผ ์ตํ๋๋ฉด ์ข๋ค.
i : ๊ธฐ๋ณธ ๋ชจ๋์์ insert ๋ชจ๋๋ก ์ ํํ์ฌ ํ์ผ ๋ด์ฉ์ ์์ ํ ์ ์๋ค. ํ๋จ์ -- INSERT --๊ฐ ํ์๋๋ฉด ์
๋ ฅ ๋ชจ๋์ ์ง์
ํ ๊ฒ์ด๋ค.
Esc : ๋ช
๋ น ๋ชจ๋๋ก ๋์๊ฐ๋ฉฐ, ์ถ๊ฐ์ ์ธ ๋ช
๋ น์ ์
๋ ฅํ ์ ์๋ค. ํ๋จ์ :๊ฐ ํ์๋๋ฉด ๋ช
๋ น๋ชจ๋์ ์ง์
ํ ๊ฒ์ด๋ค.
:wq : ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ๊ณ vim์ ์ข
๋ฃํ๋ ๋ช
๋ น์ด.
:q! : ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ์ง ์๊ณ ๊ฐ์ ๋ก vim์ ์ข
๋ฃํ๋ ๋ช
๋ น์ด.
Windows Powershell์ ํตํด git์ ์ฌ์ฉํ๋ฉด ์ธ์ฝ๋ฉ ๋ฌธ์ ๋ก ์ธํ ๋ฉ์ธ์ง ์ค๋ฅ ๋ฐ์ ํ๋ฅ ์ด ๋ฎ์์ง. โ ๋ฌธ์
while ๋ฌธ์ด ๋ฌดํ ๋ฃจํํ๋ ๋ฌธ์ ๋ฐ์โ ์์ธ
nextLine()์ผ๋ก ์
๋ ฅ๋ฐ์ ์ ์ ์๋ง ์ฝ๊ณ ๊ฐํ ๋ฌธ์(\n) ์ด์ ๊น์ง๋ง ์ฒ๋ฆฌScanner๋ฅผ ๋ค์ ํธ์ถ ์ ๋ฒํผ์ ๊ฐํ ๋ฌธ์๊ฐ ์
๋ ฅ๋์ด ์ฒ๋ฆฌ๋์ด ๋ฌธ์ ๋ฐ์โ ํด๊ฒฐ
โ
๋ฐฉ๋ฒ 1) sc.nextLine() ์ผ๋ก ๊ฐํ๋ฌธ์ ์ ๊ฑฐ
sc.nextInt(); // nextInt ํธ์ถ ํ
sc.nextLine(); // nextLine์ผ๋ก ๊ฐํ ๋ฌธ์ ์ ๊ฑฐ
โ
๋ฐฉ๋ฒ 2) Integer.parseInt() ์ฌ์ฉ
Integer.parseInt(sc.nextLine()); // ๋ฌธ์์ด๋ก ์ฝ์ ํ Integer ๋ณํ
์ฝ๋ ๊ฐ๋ ์ฑ์ด ๋ ๋์ ๋ฐฉ๋ฒ2๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅ ๋ถ๋ถ ๋ฌธ์ ์ฒ๋ฆฌํจ.
โ ๋ฌธ์
๊ธฐ๋ฅ ํ
์คํธ ์ค ์ฌ์ฉ์ ์
๋ ฅ ๋ฐ๋ ๋ถ๋ถ์์ try-catch๋ก ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ๋๋ก ์ค๊ณํ์์ผ๋ ์๋๋๋ก ๋์ํ์ง ์์.
nextInt()๋ก ์ฌ์ฉ์์ ๋ฉ๋ด ์ ํ์ ๋ฐ๋ ๋ถ๋ถ์์ ๋ฌธ์์ด์ ์
๋ ฅ ๋ฐ์ผ๋ฉด ์์ธ๊ฐ ๋ฐ์ํด์ผ ํ์ง๋ง, IllegalArgumentException์ catchํ๋ ๋ฐฉ์์ผ๋ก๋ ์ฒ๋ฆฌ๋์ง ์์์.
โ ์์ธ
IllegalArgumentException๋ฅผ catchํ๋ ๊ฒ์ผ๋ก ์ฒ๋ฆฌํจโ ํด๊ฒฐ
IllegalArgumentException ๋์ InputMismatchException์ ์ฌ์ฉํ์ฌ ์์ธ ์ฒ๋ฆฌํ๋๋ก ๋ณ๊ฒฝ ํ, ์
๋ ฅ๊ฐ์ด ์ฌ๋ฐ๋ฅด์ง ์์ ๋ ์ ์์ ์ผ๋ก ์์ธ๊ฐ ์ฒ๋ฆฌ๋๋๋ก ์์ ํจ.
IllegalArgumentException : ๋ฉ์๋์ ์ ๋ฌ๋ ํ๋ผ๋ฏธํฐ๊ฐ ์๊ตฌ๋ ์๋ฃํ์ด ์๋๊ฑฐ๋ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๋ ๋ฐ์ํ๋ค. ๋ฉ์๋์ ํ๋ผ๋ฏธํฐ ์ ํจ์ฑ์ ๊ฒ์ฌํ ๋ ์ฃผ๋ก ์ฌ์ฉ.
InputMismatchException : ์ค์บ๋๋ก ๊ฐ ์
๋ ฅ๋ฐ์ ๋ ๋ค๋ฅธ ์ข
๋ฅ์ ์๋ฃํ์ ์
๋ ฅ ์ ๋ฐ์ํ๋ค. ์
๋ ฅ ๋ถ๋ถ ์์ธ ์ฒ๋ฆฌ๋ฅผ ๋ค๋ฃฐ ๋ ์ฃผ๋ก ์ฌ์ฉ.
Exception์ ์ฌ์ฉํ์ฌ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ๋ ๋ฐฉ์ ๋์ ๊ตฌ์ฒด์ ์ธ ์์ธ ํ์
์ ์ฌ์ฉ๊ธฐ์กด์ try-catch ๋ฒ์๊ฐ ๋์ด ๋ฒ์๋ฅผ ์ค์์.
๋ฐ๋ณต์ ์ธ ์์ธ ์ฒ๋ฆฌ์ ๊ฒฝ์ฐ(ex. ์ฌ์ฉ์ ์ ๋ ฅ) ๋ถํ์ํ๊ฒ ์ค๋ณต๋ ์ฝ๋๊ฐ ์กด์ฌํจ.
Menu ํด๋์ค๋ฅผ ์์ฑํ์ฌ MenuItem ๊ด๋ฆฌ๋ฅผ Kiosk ํด๋์คโก๏ธMenu ํด๋์ค๋ก ์ด๋
๐ง ๊ธฐ์กด
MenuItem ๋ฆฌ์คํธ๋ฅผ ์นดํ
๊ณ ๋ฆฌ๋ง๋ค ์์ฑํด์ผํจList<MenuItem> burgerList, List<MenuItem> drinkList, List<MenuItem> sideMenuList ๋ฑ ํ๋์ฝ๋ฉ ํ์Kiosk ํด๋์ค์ ์ฑ
์์ด ๋ง์์ ์ญํ ์ด ๋ถ๋ถ๋ช
ํ์ (ex. ๋ฉ๋ด ์ถ๋ ฅ, ํ๋ฆ ์ ์ด...)๐ ๋ฆฌํฉํ ๋ง ํ
Menu ํด๋์ค๋ฅผ ์์ฑํ์ฌ MenuItem ๊ด๋ฆฌ ๋ด๋นMenu ํด๋์ค์์ ๊ด๋ฆฌํ ์ ์์Kiosk ํด๋์ค์ ์ญํ ์ด ๋ณด๋ค ๋ช
ํํด์ง๊ฐ์ฅ ๊ณ ๋ฏผํ ๋ถ๋ถ
์ฅ๋ฐ๊ตฌ๋ ShoppingCart ํด๋์ค๋ฅผ ์ด๋์์ ๊ด๋ฆฌํ ๊ฒ์ธ๊ฐ?
Kiosk์์ ๊ทธ๋๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ผ๋ก ์ ์งํ ์ง?OrderService๋ฅผ ๋ง๋ค์ด ์ฃผ๋ฌธ ๊ด๋ จ ๋ก์ง์ ๋ถ๋ฆฌํ ์ง?โ
1์: Kiosk ํด๋์ค์์ ๊ด๋ฆฌ
โ๏ธ ๊ตฌํ์ด ๋จ์ํจ
โ๏ธ Kiosk๊ฐ ๋ชจ๋ ํ๋ฆ์ ์ ์ดํ๋ฏ๋ก ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ๊ฐ ์ง๊ด์ ์
โ ํ์ฅ์ฑ์ด ๋จ์ด์ง๋ฉฐ Kiosk ํด๋์ค์ ์ญํ ์ด ๋ถํ์ํ๊ฒ ํ์ฅ๋จ
โ
2์: OrderService๋ฅผ ์์ฑํ์ฌ ์ฃผ๋ฌธ ๊ด๋ จ ๋๋ฉ์ธ ๊ด๋ฆฌ
โ๏ธ Kiosk๊ฐ ํ๋ฆ ์ ์ด ๋ฐ ์ฌ์ฉ์ ์
๋ ฅ๋ง ๋ด๋นํ๊ณ , ์ฃผ๋ฌธ ๋ก์ง์ OrderService์์ ๊ด๋ฆฌํ์ฌ ๋ช
ํํ ์ฑ
์ ๋ถ๋ฆฌ
โ ๋ฐ์ดํฐ ํ๋ฆ์ ์ค๊ณํ๋ ๊ณผ์ ์ด ๋ณต์กํ์ฌ ๊ตฌํ ๋์ด๋ ์์น
โ Kiosk์ OrderService ๊ฐ์ ๋ฐ์ดํฐ ์ ๋ฌ ๋ฐฉ์์ ์ ์ค๊ณํด์ผ ํจ.
(ex. ์ฅ๋ฐ๊ตฌ๋์ ๋ฉ๋ด ์ถ๊ฐ ์ Kiosk์ OrderService๊ฐ ์ด๋ป๊ฒ ํต์ ํ ์ง?)
๐ญ 2์์์ ๊ณ ๋ฏผํ ๋ถ๋ถ
Kiosk๊ฐ ๋๋ฌด ์ปค์ง๋ ๋ฌธ์ ๊ฐ ์์ด ๋ถ๋ฆฌ ํ์์ฑ์ ๋๋Kiosk ํด๋์ค์ ๊ธฐ๋ฅ์ ์ด๋๊น์ง ๋ถ๋ฆฌํ ์ง?Enum Discount, Menu ๋ฑ์ ํด๋์ค๋ฅผ Kiosk์ OrderService ์ค ์ด๋ ๊ณณ์์ ๊ด๋ฆฌํ๊ฒ ํ ์ง?์ ์ ์ ๊ฒฐ๋ก : ํ์ฌ๋ 1์์ผ๋ก main ๋ธ๋์น์ ๋ฐฐํฌํ์์ผ๋ ์ถํ ๋ฆฌํฉํ ๋ง ๊ณผ์ ์์ 2์์ ๋์
ํ ์์ .
Kioskํด๋์ค์ start() ํจ์๊ฐ ๋๋ฌด ๊ธธ์ด์ ธ ์ฝ๋ ๊ฐ๋
์ฑ์ด ๋จ์ด์ง๋ ๋ฌธ์ ๋ฐ์
โ ๋ฐ๋ผ์ ์ผ๋ถ ๋ก์ง์ ๋ฉ์๋๋ก ๋ถ๋ฆฌ
โ๏ธ ์ฝ๋๊ฐ ๊ตฌ์กฐ์ ์ผ๋ก ๋ ๊น๋ํด์ง๋ฉฐ ์ ์ง๋ณด์๊ฐ ์ฉ์ด
โ ๋ฉ์๋ ๋ถ๋ฆฌํ์์๋ ์คํ๋ ค ์ฝ๋๊ฐ ๋ ๋ณต์กํด ๋ณด์ด๋ ๊ฒฝ์ฐ๊ฐ ์์
๐ญ ๋ฉ์๋ ์ญํ ์ด ๋ช
ํํ์ง ์๊ฑฐ๋ ๋ฉ์๋ ์ด๋ฆ์ด ์ง๊ด์ ์ด์ง ์์ ๊ฐ๋ฅ์ฑ
๐ญ start() ํจ์ ํ๋์์ ์ฌ๋ฌ ํจ์๋ฅผ ํธ์ถํ์ฌ ๋ฐ์ดํฐ ์ ๋ฌ ์ฆ๊ฐ ๋ฐ ๋ฉ์๋ ๊ฐ ์์กด์ฑ์ด ๋์์ ธ ์ฝ๋๊ฐ ๋ ๋ณต์กํด์ก์ ๊ฐ๋ฅ์ฑ
๐ญ ๋ฉ์๋ ๋ถ๋ฆฌ ๋จ์๊ฐ ๋๋ฌด ์๊ฒ ์ชผ๊ฐ์ก์ ๊ฐ๋ฅ์ฑ
์ ์ ์ ๊ฒฐ๋ก : ๋ฉ์๋ ๋ถ๋ฆฌ ๊ธฐ์ค์ ๋ ๋ช
ํํ ์ ์ํ ํ์์ฑ์ด ์์
ex) ํจ์์ ์ญํ , ๋ฐ์ดํฐ ํ๋ฆ, ํจ์ ๋ค์ด๋ฐ, ๋ฉ์๋ ๋ถ๋ฆฌ ๋จ์...
๋์ ๊ณผ์ ๊น์ง ๊ตฌํ ๋ง๋ฌด๋ฆฌ ํ ๋ฆฌํฉํ ๋ง์ ํ๋ ค๊ณ ์ฝ๋๋ฅผ ๋ค์ ์ดํด๋ดค๋๋ฐ ์ ๋ง ๊ตฌํ๋ง ๋๋๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ์คํ์ ๋๊ธด ํ๋๋ฐ..

์๋ฌดํผ ์คํ์ ๋์ฃ ?
ํ์ง๋ง ์ฝ๋๋ฅผ ์ด์ด๋ณด๋ฉด ๊ณ ๋ฏผํ๋ ๋ถ๋ถ์์ ์ ์ด๋ ๊ฒ์ฒ๋ผ
๊ฐ์ ๋ฌธ์ ์ ์ด ๋ณด์๋ค.
๋๋ ์ฝ๋ฉํ ๋ ๊ฐ๋ ์ฑ ์๊ฒ, ํด๋์ค๋ฅผ ๊ตฌ์กฐ์ ์ผ๋ก ์์ฑํ๋ ๊ฒ์ ๊ฐ์ฅ ์ค์ํ๊ฒ ์๊ฐํ๋ค.
๋๋ฆ ์ด ๋ถ๋ถ์ ์ ๊ฒฝ์ฐ๋ฉด์ ์ฝ๋๋ฅผ ์์ฑํ๋ ค๊ณ ํ์ผ๋ ํด๋์ค๋ฅผ ์ถ๊ฐํ๋ฉด์ ์ฝ๋๊ฐ ์ ์ ๊ผฌ์ธ ๊ฒ ๊ฐ๋ค.
๋ ์๊ตฌ์ฌํญ์ ๋ค๋ฅด๊ฒ ํด์ํ ๊ฒ์ด ์์ด ์์ฑ๋ณธ๊น์ง ์ฝ๋ ์ง๋ ๋ฐ ๋ฐ, ๋ฆฌํฉํ ๋ง์ ์ ๋ฐ์ ์๊ฐ์ ์ด ๊ฒ ๊ฐ๋ค. ์์ ๋ ๋ฆผ ๊ณต์ฌํ๋ค ๐
๋ค์ ํ๋ก์ ํธ์์๋ ์์ ์ ์ ๋ค์ด์ด๊ทธ๋จ์ ์ง์ ๊ทธ๋ ค๋ณด๋ฉด์ ํ๋ก๊ทธ๋จ์ ๊ตฌ์กฐ๋ฅผ ํ์
ํ๊ณ ์ฝ๋ ์์ฑ์ ์์ํ๋๋ก ํด์ผ๊ฒ ๋ค.
https://velog.io/@mayinjanuary/git-%EC%BB%A4%EB%B0%8B-%EB%A9%94%EC%84%B8%EC%A7%80-%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0-changing-commit-message
https://0soo.tistory.com/103
Wow ๋ด์ฉ๋ ํํํ๊ณ ์ดํด๊ฐ ์ ๋ง ์์ ์ ๋๋ค์^^
์ ๋ง ์ ์ฐ์ TIL์ด์ญ๋๋ค^^