[TIL]๐Ÿ”ํ–„๋ฒ„๊ฑฐ ํ‚ค์˜ค์Šคํฌ ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

YJinยท2025๋…„ 3์›” 14์ผ

[๋‚ด๋ฐฐ์บ  Spring 6๊ธฐ_TIL]

๋ชฉ๋ก ๋ณด๊ธฐ
10/56

image

๐Ÿ“ข 1. ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

โœ”๏ธ ํŒจ์ŠคํŠธํ‘ธ๋“œ ๊ฐ€๊ฒŒ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ณ ๊ฐ์„ ์œ„ํ•œ ์ฃผ๋ฌธ ํ‚ค์˜ค์Šคํฌ ํ”„๋กœ๊ทธ๋žจ

์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ” ๋ฉ”๋‰ด ์ถœ๋ ฅ

๋ชฉ์ : ์‚ฌ์šฉ์ž๊ฐ€ ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„๋กœ ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๋ฉ”๋‰ด ๋ถ„๋ฅ˜: ํ–„๋ฒ„๊ฑฐ, ์Œ๋ฃŒ, ์‚ฌ์ด๋“œ ๋ฉ”๋‰ด ๋“ฑ์œผ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„๋กœ ๋ฉ”๋‰ด๋ฅผ ์ถœ๋ ฅ
  • ์„ธ๋ถ€ ๋ฉ”๋‰ด ์ถœ๋ ฅ: ๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ ์•ˆ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฉ”๋‰ด๋ฅผ ๋‚˜์—ด

๐Ÿ›’ ์žฅ๋ฐ”๊ตฌ๋‹ˆ

๋ชฉ์ : ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉ”๋‰ด๋ฅผ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ฉ”๋‰ด ๋‹ด๊ธฐ: ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋ฉ”๋‰ด๋ฅผ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด์„ ์ˆ˜ ์žˆ์Œ
  • ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ˆ˜์ •: ๋ฉ”๋‰ด๋ช…์„ ์ž…๋ ฅํ•˜์—ฌ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์—์„œ ๋ฉ”๋‰ด ์‚ญ์ œ
  • ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋น„์šฐ๊ธฐ: ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜์—ฌ ์ฃผ๋ฌธ์„ ์ทจ์†Œ

๐Ÿ’ณ ์ฃผ๋ฌธ

๋ชฉ์ : ์‚ฌ์šฉ์ž๊ฐ€ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ธด ๋ฉ”๋‰ด๋ฅผ ํ™•์ธํ•˜๊ณ  ๊ฒฐ์ œํ•œ๋‹ค.

  • ์ด ๊ธˆ์•ก ๊ณ„์‚ฐ: ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ธด ๋ฉ”๋‰ด์˜ ์ด ๊ธˆ์•ก ๊ณ„์‚ฐ
  • ํ• ์ธ ์ ์šฉ: ํ• ์ธ ์œ ํ˜•์— ๋งž์ถฐ ๊ธˆ์•ก์„ ํ• ์ธ์„ ์ ์šฉ
  • ๊ฒฐ์ œ ์™„๋ฃŒ: ์ตœ์ข… ๊ฒฐ์ œ ๊ธˆ์•ก์„ ์ถœ๋ ฅํ•˜๊ณ  ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์ดˆ๊ธฐํ™”



์‹คํ–‰ ํ™”๋ฉด

๐Ÿ”๋ฉ”์ธ ํ™”๋ฉด

image


๐Ÿ›’์žฅ๋ฐ”๊ตฌ๋‹ˆ ํ™”๋ฉด

image


๐Ÿงพ์ฃผ๋ฌธ ํ™”๋ฉด

image


๐Ÿ› ๏ธ 2. ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

Git ๊ด€๋ จ

๐Ÿ“Œ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€ ์ˆ˜์ •

โ›” ๋ฌธ์ œ

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์„ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์ฝ”๋”ฉ ๋ฌธ์ œ๋กœ ์ธํ•œ ๋ฉ”์„ธ์ง€ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ํ™•๋ฅ ์ด ๋‚ฎ์•„์ง.



์ž…์ถœ๋ ฅ ์ฒ˜๋ฆฌ

๐Ÿ“Œ Scanner nextInt() ์‚ฌ์šฉ ํ›„ nextLine() ์‚ฌ์šฉ ๋ฌธ์ œ

โ›” ๋ฌธ์ œ

  • ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ฐ›๊ธฐ ํ›„ ํŠน์ • ๋กœ์ง ์ง„์ž… ์‹œ, while ๋ฌธ์ด ๋ฌดํ•œ ๋ฃจํ”„ํ•˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ
  • ์˜ˆ์‹œ: ์ž…๋ ฅ๊ฐ’์ด 0์ด ์•„๋‹ˆ๋ฉด ๊ณ„์† ๋ฐ˜๋ณตํ•˜๋„๋ก ์„ค์ •ํ–ˆ์„ ๋•Œ ๋ฌธ์ œ ๋ฐœ์ƒ

โ“ ์›์ธ

  • 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 : ์Šค์บ๋„ˆ๋กœ ๊ฐ’ ์ž…๋ ฅ๋ฐ›์„ ๋•Œ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์ž๋ฃŒํ˜•์„ ์ž…๋ ฅ ์‹œ ๋ฐœ์ƒํ•œ๋‹ค. ์ž…๋ ฅ ๋ถ€๋ถ„ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ.




๐Ÿ•ต๏ธโ€โ™€๏ธ 3. ๊ณ ๋ฏผํ•œ ๋ถ€๋ถ„ / ์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„

์˜ˆ์™ธ ์ฒ˜๋ฆฌ

๐Ÿ” ๊ตฌ์ฒด์ ์ธ ์˜ˆ์™ธ ํƒ€์ž… ์‚ฌ์šฉ

  • ๊ธฐ์กด์˜ ํฌ๊ด„์ ์ธ ํƒ€์ž…์ธ Exception์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๋ฐฉ์‹ ๋Œ€์‹  ๊ตฌ์ฒด์ ์ธ ์˜ˆ์™ธ ํƒ€์ž…์„ ์‚ฌ์šฉ


๐Ÿ” try-catch ๋ฒ”์œ„ ์ค„์ด๊ธฐ

๊ธฐ์กด์˜ try-catch ๋ฒ”์œ„๊ฐ€ ๋„“์–ด ๋ฒ”์œ„๋ฅผ ์ค„์˜€์Œ.

  • ๊ธฐ์กด ๋ฐฉ์‹์€ ์—๋Ÿฌ ๋กœ๊ทธ ์ถ”์  ๋ฐ ํ…Œ์ŠคํŠธ ์‹œ ์–ด๋А ์ง€์ ์—์„œ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์ถ”์ ํ•˜๊ธฐ ์–ด๋ ค์›€

๋ฐ˜๋ณต์ ์ธ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์˜ ๊ฒฝ์šฐ(ex. ์‚ฌ์šฉ์ž ์ž…๋ ฅ) ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ค‘๋ณต๋œ ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•จ.

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




๋ฆฌํŒฉํ† ๋ง

๐Ÿ” ๊ธฐ๋ณธ ๊ณผ์ œ Lv.3 โžก๏ธ Lv.4

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๊ฐ€ ์–ด๋–ป๊ฒŒ ํ†ต์‹ ํ• ์ง€?)

  • 1์•ˆ ๋ฐฉ์‹๋ณด๋‹ค ํ๋ฆ„ ์ œ์–ด, ๋ฐ์ดํ„ฐ ์ฃผ๊ณ ๋ฐ›๊ธฐ(ex. ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋ฉ”๋‰ด ์ถ”๊ฐ€ ๋ถ€๋ถ„)์˜ ๊ตฌํ˜„ ๋ถ€๋ถ„์—์„œ ์–ด๋ ค์›€์„ ๋А๋‚Œ.

๐Ÿ’ญ 2์•ˆ์—์„œ ๊ณ ๋ฏผํ•œ ๋ถ€๋ถ„

  • ๊ธฐ์กด 1์•ˆ์ด ๋‹จ์ˆœํ•˜์ง€๋งŒ Kiosk๊ฐ€ ๋„ˆ๋ฌด ์ปค์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด ๋ถ„๋ฆฌ ํ•„์š”์„ฑ์„ ๋А๋‚Œ
  • ํ•˜์ง€๋งŒ OrderService๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ณผ์ •์—์„œ ํ๋ฆ„ ์ œ์–ด ๋ฐ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์ด ์–ด๋ ค์›€
  • Kiosk ํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ์„ ์–ด๋””๊นŒ์ง€ ๋ถ„๋ฆฌํ• ์ง€?
  • ๊ทธ์— ๋”ฐ๋ผ Enum Discount, Menu ๋“ฑ์˜ ํด๋ž˜์Šค๋ฅผ Kiosk์™€ OrderService ์ค‘ ์–ด๋А ๊ณณ์—์„œ ๊ด€๋ฆฌํ•˜๊ฒŒ ํ• ์ง€?

์ž ์ •์  ๊ฒฐ๋ก  : ํ˜„์žฌ๋Š” 1์•ˆ์œผ๋กœ main ๋ธŒ๋žœ์น˜์— ๋ฐฐํฌํ•˜์˜€์œผ๋‚˜ ์ถ”ํ›„ ๋ฆฌํŒฉํ† ๋ง ๊ณผ์ •์—์„œ 2์•ˆ์„ ๋„์ž…ํ•  ์˜ˆ์ •.

๐Ÿ” ๊ธฐ์กด์˜ ์ฝ”๋“œ๋ฅผ ๋ฉ”์†Œ๋“œ๋กœ ๋ถ„๋ฆฌ

Kioskํด๋ž˜์Šค์˜ start() ํ•จ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์ ธ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ

โœ… ๋”ฐ๋ผ์„œ ์ผ๋ถ€ ๋กœ์ง์„ ๋ฉ”์†Œ๋“œ๋กœ ๋ถ„๋ฆฌ

โœ”๏ธ ์ฝ”๋“œ๊ฐ€ ๊ตฌ์กฐ์ ์œผ๋กœ ๋” ๊น”๋”ํ•ด์ง€๋ฉฐ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ด
โŒ ๋ฉ”์†Œ๋“œ ๋ถ„๋ฆฌํ–ˆ์Œ์—๋„ ์˜คํžˆ๋ ค ์ฝ”๋“œ๊ฐ€ ๋” ๋ณต์žกํ•ด ๋ณด์ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ

๐Ÿ’ญ ๋ฉ”์†Œ๋“œ ์—ญํ• ์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ฉ”์†Œ๋“œ ์ด๋ฆ„์ด ์ง๊ด€์ ์ด์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ
๐Ÿ’ญ start() ํ•จ์ˆ˜ ํ•˜๋‚˜์—์„œ ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ์ฆ๊ฐ€ ๋ฐ ๋ฉ”์†Œ๋“œ ๊ฐ„ ์˜์กด์„ฑ์ด ๋†’์•„์ ธ ์ฝ”๋“œ๊ฐ€ ๋” ๋ณต์žกํ•ด์กŒ์„ ๊ฐ€๋Šฅ์„ฑ
๐Ÿ’ญ ๋ฉ”์†Œ๋“œ ๋ถ„๋ฆฌ ๋‹จ์œ„๊ฐ€ ๋„ˆ๋ฌด ์ž˜๊ฒŒ ์ชผ๊ฐœ์กŒ์„ ๊ฐ€๋Šฅ์„ฑ

์ž ์ •์  ๊ฒฐ๋ก  : ๋ฉ”์†Œ๋“œ ๋ถ„๋ฆฌ ๊ธฐ์ค€์„ ๋” ๋ช…ํ™•ํžˆ ์ •์˜ํ•  ํ•„์š”์„ฑ์ด ์žˆ์Œ
ex) ํ•จ์ˆ˜์˜ ์—ญํ• , ๋ฐ์ดํ„ฐ ํ๋ฆ„, ํ•จ์ˆ˜ ๋„ค์ด๋ฐ, ๋ฉ”์†Œ๋“œ ๋ถ„๋ฆฌ ๋‹จ์œ„...


๋งˆ๋ฌด๋ฆฌ

๋„์ „๊ณผ์ œ๊นŒ์ง€ ๊ตฌํ˜„ ๋งˆ๋ฌด๋ฆฌ ํ›„ ๋ฆฌํŒฉํ† ๋ง์„ ํ•˜๋ ค๊ณ  ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์‚ดํŽด๋ดค๋Š”๋ฐ ์ •๋ง ๊ตฌํ˜„๋งŒ ๋๋ƒˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ์‹คํ–‰์€ ๋˜๊ธด ํ•˜๋Š”๋ฐ..

image
์•„๋ฌดํŠผ ์‹คํ–‰์€ ๋˜์ฃ ?

ํ•˜์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ์—ด์–ด๋ณด๋ฉด ๊ณ ๋ฏผํ–ˆ๋˜ ๋ถ€๋ถ„์—์„œ ์ ์–ด๋‘” ๊ฒƒ์ฒ˜๋Ÿผ

  • ๊ฐ€๋…์„ฑ
  • ํ•˜๋“œ ์ฝ”๋”ฉ๋œ ๋ถ€๋ถ„(ํ™•์žฅ์„ฑ, ์œ ์—ฐ์„ฑ)
  • ํ•˜๋‚˜์˜ ํด๋ž˜์Šค(ํŠนํžˆ ํ‚ค์˜ค์Šคํฌ)์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด์™€ ๋‹ด๋‹นํ•˜๋Š” ์ฑ…์ž„(๊ธฐ๋Šฅ)์ด ๋งŽ์Œ

๊ฐ™์€ ๋ฌธ์ œ์ ์ด ๋ณด์˜€๋‹ค.

๋‚˜๋Š” ์ฝ”๋”ฉํ•  ๋•Œ ๊ฐ€๋…์„ฑ ์žˆ๊ฒŒ, ํด๋ž˜์Šค๋ฅผ ๊ตฌ์กฐ์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•œ๋‹ค.

๋‚˜๋ฆ„ ์ด ๋ถ€๋ถ„์„ ์‹ ๊ฒฝ์“ฐ๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด์„œ ์ฝ”๋“œ๊ฐ€ ์ ์  ๊ผฌ์ธ ๊ฒƒ ๊ฐ™๋‹ค.
๋˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„ํ•œ ๊ฒƒ์ด ์žˆ์–ด ์™„์„ฑ๋ณธ๊นŒ์ง€ ์ฝ”๋“œ ์งœ๋Š” ๋ฐ ๋ฐ˜, ๋ฆฌํŒฉํ† ๋ง์— ์ ˆ๋ฐ˜์˜ ์‹œ๊ฐ„์„ ์“ด ๊ฒƒ ๊ฐ™๋‹ค. ์™„์ „ ๋‚ ๋ฆผ ๊ณต์‚ฌํ–ˆ๋‹ค ๐Ÿ˜—

๋‹ค์Œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์‹œ์ž‘ ์ „์— ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ง์ ‘ ๊ทธ๋ ค๋ณด๋ฉด์„œ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์ฝ”๋“œ ์ž‘์„ฑ์„ ์‹œ์ž‘ํ•˜๋„๋ก ํ•ด์•ผ๊ฒ ๋‹ค.




์ฐธ๊ณ 

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

profile
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ๋„ ๋ฝ์ด๋‹ค

2๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2025๋…„ 3์›” 14์ผ

Wow ๋‚ด์šฉ๋„ ํƒ„ํƒ„ํ•˜๊ณ  ์ดํ•ด๊ฐ€ ์ •๋ง ์™์™ ์ž˜ ๋˜๋„ค์š”^^
์ œ ๋ง˜ ์† ์šฐ์ˆ˜ TIL์ด์‹ญ๋‹ˆ๋‹ค^^

1๊ฐœ์˜ ๋‹ต๊ธ€