/jwp-refactoring

๐Ÿ–ฅ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฆฌํŒฉํ† ๋ง ๋ฏธ์…˜์„ ์ง„ํ–‰ํ•˜๋Š” Repository

Primary LanguageJava

ํ‚ค์นœํฌ์Šค

์š”๊ตฌ ์‚ฌํ•ญ

1๋‹จ๊ณ„ - ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•œ ์ฝ”๋“œ ๋ณดํ˜ธ

  • ํ‚ค์นœํฌ์Šค์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ README.md์— ์ž‘์„ฑํ•œ๋‹ค.
  • ์ •๋ฆฌํ•œ ํ‚ค์นœํฌ์Šค์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ํ† ๋Œ€๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
    • ๋ชจ๋“  Business Object์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
    • @SpringBootTest๋ฅผ ์ด์šฉํ•œ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
    • @ExtendWith(MockitoExtension.class)๋ฅผ ์ด์šฉํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
    • (๊ถŒ์žฅ) Controller์˜ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

๊ธฐ๋Šฅ ๋ชฉ๋ก

์ƒํ’ˆ

  • ์ƒํ’ˆ์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์œผ๋ฉด ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋‹ค.
      • ์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ์€ 0์› ์ด์ƒ์ด์–ด์•ผ ํ•œ๋‹ค.
  • ์ƒํ’ˆ์˜ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฉ”๋‰ด ๊ทธ๋ฃน

  • ๋ฉ”๋‰ด ๊ทธ๋ฃน์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฉ”๋‰ด ๊ทธ๋ฃน์˜ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฉ”๋‰ด

  • ๋ฉ”๋‰ด๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋ฉ”๋‰ด์˜ ๊ฐ€๊ฒฉ์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š๋‹ค๋ฉด ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋‹ค.
      • ๋ฉ”๋‰ด์˜ ๊ฐ€๊ฒฉ์€ 0์› ์ด์ƒ์ด์–ด์•ผ ํ•œ๋‹ค.
      • ๋ฉ”๋‰ด์— ์†ํ•œ ์ƒํ’ˆ ๊ธˆ์•ก์˜ ํ•ฉ๋ณด๋‹ค ๊ฐ€๊ฒฉ์ด ์ž‘๋‹ค๋ฉด ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋‹ค.
    • ๋ฉ”๋‰ด๊ฐ€ ํŠน์ • ๋ฉ”๋‰ด ๊ทธ๋ฃน์— ์†ํ•˜์ง€ ์•Š๋‹ค๋ฉด ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋‹ค.
    • ๋“ฑ๋กํ•˜๋ ค๋Š” ๋ฉ”๋‰ด์˜ ์ƒํ’ˆ์ด ๋“ฑ๋ก๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ๋ฉ”๋‰ด๋กœ ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋‹ค.
  • ๋ฉ”๋‰ด์˜ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฃผ๋ฌธ ํ…Œ์ด๋ธ”

  • ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์˜ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์„ ๋นˆ ํ…Œ์ด๋ธ”๋กœ ์„ค์ • ๋˜๋Š” ํ•ด์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์ผ ๊ฒฝ์šฐ ์„ค์ • ๋˜๋Š” ํ•ด์ง€ํ•  ์ˆ˜ ์—†๋‹ค.
    • ๋‹จ์ฒด ์ง€์ •์ด ๋œ ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์ผ ๊ฒฝ์šฐ ์„ค์ • ๋˜๋Š” ํ•ด์ง€ํ•  ์ˆ˜ ์—†๋‹ค.
    • ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์˜ ์ฃผ๋ฌธ ์ƒํƒœ๊ฐ€ ์กฐ๋ฆฌ ์ค‘์ด๊ฑฐ๋‚˜ ์‹์‚ฌ ์ค‘์ผ ๊ฒฝ์šฐ ์„ค์ • ๋˜๋Š” ํ•ด์ง€ํ•  ์ˆ˜ ์—†๋‹ค.
  • ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์˜ ๋ฐฉ๋ฌธํ•œ ์†๋‹˜ ์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์ผ ๊ฒฝ์šฐ ๋ฐฉ๋ฌธํ•œ ์†๋‹˜ ์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์—†๋‹ค.
    • ๋ฐฉ๋ฌธํ•œ ์†๋‹˜ ์ˆ˜๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š๋‹ค๋ฉด ์„ค์ •ํ•  ์ˆ˜ ์—†๋‹ค.
      • ๋ฐฉ๋ฌธํ•œ ์†๋‹˜ ์ˆ˜๋Š” 0 ์ด์ƒ์ด์–ด์•ผ ํ•œ๋‹ค.
    • ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์ด ๋นˆ ํ…Œ์ด๋ธ”์ผ ๊ฒฝ์šฐ ๋ฐฉ๋ฌธํ•œ ์†๋‹˜ ์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์—†๋‹ค.

๋‹จ์ฒด ์ง€์ •

  • ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์„ ๋‹จ์ฒด ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋‹จ์ฒด ์ง€์ •ํ•  ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์˜ ์ˆ˜๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š๋‹ค๋ฉด ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค.
      • ๋‹จ์ฒด ์ง€์ •ํ•  ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์˜ ์ˆ˜๋Š” 2 ์ด์ƒ์ด์–ด์•ผ ํ•œ๋‹ค.
    • ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์ด ํฌํ•จ๋  ๊ฒฝ์šฐ ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค.
    • ์ค‘๋ณต๋œ ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์ด ํฌํ•จ๋  ๊ฒฝ์šฐ ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค.
    • ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์ด ๋นˆ ํ…Œ์ด๋ธ”์ด ์•„๋‹ˆ๊ฑฐ๋‚˜ ์ด๋ฏธ ๋‹จ์ฒด ์ง€์ •์ด ๋˜์–ด์žˆ์„ ๊ฒฝ์šฐ ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค.
  • ๋‹จ์ฒด ์ง€์ •์„ ํ•ด์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋‹จ์ฒด ์ง€์ •๋œ ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์˜ ์ƒํƒœ๊ฐ€ ์กฐ๋ฆฌ ์ค‘์ด๊ฑฐ๋‚˜ ์‹์‚ฌ ์ค‘์ผ ๊ฒฝ์šฐ ํ•ด์ง€ํ•  ์ˆ˜ ์—†๋‹ค.

์ฃผ๋ฌธ

  • ์ฃผ๋ฌธ์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ฃผ๋ฌธํ•  ๋ฉ”๋‰ด์— ์ข…๋ฅ˜์˜ ์ˆ˜๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š๋‹ค๋ฉด ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋‹ค.
      • ์ฃผ๋ฌธํ•  ๋ฉ”๋‰ด์— ์ข…๋ฅ˜์˜ ์ˆ˜๋Š” 0 ์ด์ƒ์ด์–ด์•ผ ํ•œ๋‹ค.
    • ์ฃผ๋ฌธํ•  ๋ฉ”๋‰ด์— ์ข…๋ฅ˜๊ฐ€ ์ค‘๋ณต๋œ ๊ฒฝ์šฐ ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋‹ค.
    • ์ฃผ๋ฌธํ•  ๋ฉ”๋‰ด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋‹ค.
    • ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์ด ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋‹ค.
    • ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์ด ๋นˆ ํ…Œ์ด๋ธ”์ผ ๊ฒฝ์šฐ ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋‹ค.
  • ์ฃผ๋ฌธ์˜ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฃผ๋ฌธ์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ฃผ๋ฌธ์ด ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.
    • ์ฃผ๋ฌธ์˜ ์ƒํƒœ๊ฐ€ ๊ณ„์‚ฐ ์™„๋ฃŒ์ธ ๊ฒฝ์šฐ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.

์šฉ์–ด ์‚ฌ์ „

ํ•œ๊ธ€๋ช… ์˜๋ฌธ๋ช… ์„ค๋ช…
์ƒํ’ˆ product ๋ฉ”๋‰ด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ์ค€์ด ๋˜๋Š” ๋ฐ์ดํ„ฐ
๋ฉ”๋‰ด ๊ทธ๋ฃน menu group ๋ฉ”๋‰ด ๋ฌถ์Œ, ๋ถ„๋ฅ˜
๋ฉ”๋‰ด menu ๋ฉ”๋‰ด ๊ทธ๋ฃน์— ์†ํ•˜๋Š” ์‹ค์ œ ์ฃผ๋ฌธ ๊ฐ€๋Šฅ ๋‹จ์œ„
๋ฉ”๋‰ด ์ƒํ’ˆ menu product ๋ฉ”๋‰ด์— ์†ํ•˜๋Š” ์ˆ˜๋Ÿ‰์ด ์žˆ๋Š” ์ƒํ’ˆ
๊ธˆ์•ก amount ๊ฐ€๊ฒฉ * ์ˆ˜๋Ÿ‰
์ฃผ๋ฌธ ํ…Œ์ด๋ธ” order table ๋งค์žฅ์—์„œ ์ฃผ๋ฌธ์ด ๋ฐœ์ƒํ•˜๋Š” ์˜์—ญ
๋นˆ ํ…Œ์ด๋ธ” empty table ์ฃผ๋ฌธ์„ ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋Š” ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”
์ฃผ๋ฌธ order ๋งค์žฅ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ฃผ๋ฌธ
์ฃผ๋ฌธ ์ƒํƒœ order status ์ฃผ๋ฌธ์€ ์กฐ๋ฆฌ โžœ ์‹์‚ฌ โžœ ๊ณ„์‚ฐ ์™„๋ฃŒ ์ˆœ์„œ๋กœ ์ง„ํ–‰๋œ๋‹ค.
๋ฐฉ๋ฌธํ•œ ์†๋‹˜ ์ˆ˜ number of guests ํ•„์ˆ˜ ์‚ฌํ•ญ์€ ์•„๋‹ˆ๋ฉฐ ์ฃผ๋ฌธ์€ 0๋ช…์œผ๋กœ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
๋‹จ์ฒด ์ง€์ • table group ํ†ตํ•ฉ ๊ณ„์‚ฐ์„ ์œ„ํ•ด ๊ฐœ๋ณ„ ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์„ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ
์ฃผ๋ฌธ ํ•ญ๋ชฉ order line item ์ฃผ๋ฌธ์— ์†ํ•˜๋Š” ์ˆ˜๋Ÿ‰์ด ์žˆ๋Š” ๋ฉ”๋‰ด
๋งค์žฅ ์‹์‚ฌ eat in ํฌ์žฅํ•˜์ง€ ์•Š๊ณ  ๋งค์žฅ์—์„œ ์‹์‚ฌํ•˜๋Š” ๊ฒƒ