Skip to content

SimJH99/Pojang-FE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽ ํฌ์žฅ์˜ ๋ฏผ์กฑ


๐Ÿ“ฃ ํ”„๋กœ์ ํŠธ ๋ชฉ์ 

์š”๊ธฐ์š”์™€ ๋ฐฐ๋‹ฌ์˜ ๋ฏผ์กฑ์˜ ์ฃผ๋ฌธ ์„œ๋น„์Šค๋ฅผ ํด๋ก  ์ฝ”๋”ฉํ•˜์—ฌ Spring Boot(๋ฐฑ์—”๋“œ)์™€ Vue.js(ํ”„๋ก ํŠธ์—”๋“œ) ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•จ


๐Ÿ’ก ์„œ๋น„์Šค ์†Œ๊ฐœ

ํฌ์žฅ์˜ ๋ฏผ์กฑ์€ ์‹ ์†ํ•œ ํฌ์žฅ ์ฃผ๋ฌธ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํšŒ์›๋“ค์€ ์›น์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ๋“ฑ๋กํ•œ ์ฃผ์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฃผ๋ณ€ ๊ฐ€๊ฒŒ๋“ค์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐ€๊นŒ์šด ๊ฐ€๊ฒŒ์—์„œ ํฌ์žฅ๋œ ์Œ์‹์„ ๋น ๋ฅด๊ฒŒ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ—“ ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„

2024/02/19 ~ 2024/02/23


๐Ÿ“ฑํŒ€ ๋ช…: SNS

ํŒ€ ์› ์ด๋ฆ„
ํŒ€์žฅ ํ•œ์ข…์Šน๐Ÿ‘จโ€๐Ÿ’ป
ํŒ€์› ๋ฐฐ์†Œ์˜๐Ÿ‘ฉโ€๐Ÿ’ป
ํŒ€์› ์‹ฌ์žฌํ˜๐Ÿ‘จโ€๐Ÿ’ป
ํŒ€์› ์ด์›ํƒœ๐Ÿ‘จโ€๐Ÿ’ป

๐Ÿ’ช ๊ธฐ์ˆ  ์Šคํƒ

๐Ÿ›  ๊ฐœ๋ฐœํ™˜๊ฒฝ

Java11 Spring Boot Spring security jsonwebtokens MariaDB vuedotjs tailwindcss


๐Ÿ”Š ํ˜‘์—… ํˆด

github Notion Slack Trello visualstudiocode intellijidea


๐Ÿ“ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ(GIF)

๐Ÿ˜€ ํšŒ์›(Member)

ํšŒ์›๊ฐ€์ž…(์ด๋ฉ”์ผ ์ธ์ฆ & ์นด์นด์˜ค ์ฃผ์†Œ API ์—ฐ๋™)

๋กœ๊ทธ์ธ

๐Ÿงพ ์žฅ๋ฐ”๊ตฌ๋‹ˆ & ์ฃผ๋ฌธ

์ฃผ๋ฌธ๋“ฑ๋ก & ์ฃผ๋ฌธ ์ ‘์ˆ˜ ์•Œ๋ฆผ

๐Ÿช ๊ฐ€๊ฒŒ & ์ฐœ & ๋ฆฌ๋ทฐ

๊ฒ€์ƒ‰ ๋ฐ ์ฐœ

๋งค์žฅ ๋“ฑ๋ก

์ฃผ๋ฌธ์ƒํƒœ ๋ณ€๊ฒฝ ๋ฐ ๋ฆฌ๋ทฐ๋“ฑ๋ก

๋ฆฌ๋ทฐ์กฐํšŒ


๐Ÿ“ˆ ERD ๋ชจ๋ธ๋ง

ํฌ์žฅ์˜ ๋ฏผ์กฑ
์‚ฌ์ง„ ํด๋ฆญ์‹œ ์ด๋™


๐Ÿ“ API๋ช…์„ธ์„œ

๐Ÿ“‚API DOCS
์‚ฌ์ง„ ํด๋ฆญ์‹œ ์ด๋™


๐Ÿ“ˆ Architecture

๐Ÿ“Back-End

๐Ÿ“Front-End


๐Ÿšฉ Git ๋ธŒ๋žœ์น˜ ์ „๋žต

  • ์ €์žฅ์†Œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด SNSํŒ€์€ Github-Flow ์ „๋žต ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  1. ์ด์Šˆ ํƒญ ํด๋ฆญ โ†’ New Issue โ†’ ํ…œํ”Œ๋ฆฟ ์„ ํƒ โ†’ ์ด์Šˆ ์ œ๋ชฉ ๋ฐ ์ž‘์—…ํ•  ๋‚ด์šฉ ์ž…๋ ฅ โ†’ Assignees ๋ณธ์ธ์œผ๋กœ ์„ค์ • โ†’ Label ์„ ํƒ โ†’ issue ์ƒ์„ฑ
  2. ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ: main ๋ธŒ๋žœ์น˜ โ†’ feature ๋ธŒ๋žœ์น˜ ๋ถ„๊ธฐ
  3. ๋ธŒ๋žœ์น˜ ๊ทœ์น™: feature/{์—”ํ‹ฐํ‹ฐ}-(์ด์Šˆ๋ฒˆํ˜ธ)
  4. ์ปค๋ฐ‹ ์ˆœ์„œ: [Type] ์ž‘์—… ๋‚ด์šฉ(#์ด์Šˆ๋ฒˆํ˜ธ)
  5. PR ๋‚ ๋ฆฐ ํ›„ ํŒ€์›๋“ค์˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ
  6. ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์™„๋ฃŒ๋˜๋ฉด main ๋ธŒ๋žœ์น˜์— Merge

๐Ÿ“Œ ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ์„œ

๐Ÿ˜€ ํšŒ์›(Member)

  1. ์ผ๋ฐ˜ ํšŒ์›์€ ๋‚ด ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ์ผ๋ฐ˜ ํšŒ์›์€ ์ฃผ๋ฌธ ๋‚ด์—ญ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  3. ์ผ๋ฐ˜ ํšŒ์›์€ ๊ฐ€๊ฒŒ๋ฅผ ์ฐœ ๋ฐ ์ฐœ ์ทจ์†Œ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  4. ์ผ๋ฐ˜ ํšŒ์›์€ ๊ฐ€๊ฒŒ์— ๋ฆฌ๋ทฐ๋ฅผ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋‹ค. (์ฃผ๋ฌธ ํ™•์ •๋œ ๊ฒฝ์šฐ)
  5. ์ผ๋ฐ˜ ํšŒ์›์€ ๊ฐ€๊ฒŒ ์ฐœ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  6. ์ผ๋ฐ˜ ํšŒ์›์€ ๊ฐ€๊ฒŒ ๋ฆฌ๋ทฐ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  7. ์ผ๋ฐ˜ ํšŒ์›์€ ๊ฐœ์ธ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  8. ์ผ๋ฐ˜ ํšŒ์›์€ ํšŒ์›์„ ํƒˆํ‡ดํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿช ๊ฐ€๊ฒŒ(Store)

  1. ํ™ˆ ํ™”๋ฉด์—์„œ ๊ฐ€๊ฒŒ๋ช…์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ๋“ฑ๋ก๋œ ๊ฐ€๊ฒŒ๋ฅผ ์ „์ฒด ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  3. ๋“ฑ๋ก๋œ ๊ฐ€๊ฒŒ๋ฅผ ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„๋กœ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  4. ์‚ฌ์žฅ์€ ์‹ ๊ทœ ๊ฐ€๊ฒŒ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
  5. ์‚ฌ์žฅ์€ ๋“ฑ๋กํ•œ ๊ฐ€๊ฒŒ ๋ฆฌ์ŠคํŠธ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  6. ์‚ฌ์žฅ์€ ๋“ฑ๋กํ•œ ๊ฐ€๊ฒŒ์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  7. ์‚ฌ์žฅ์€ ๋“ฑ๋กํ•œ ๊ฐ€๊ฒŒ์— ๋‹ฌ๋ฆฐ ๋ฆฌ๋ทฐ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  8. ์‚ฌ์žฅ์€ ๋งค์ถœ ์ •๋ณด๋ฅผ ์ผ, ์ฃผ, ์›”๋ณ„๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  9. ์‚ฌ์žฅ์€ ๋“ฑ๋กํ•œ ๊ฐ€๊ฒŒ์˜ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  10. ์‚ฌ์žฅ์€ ๋“ฑ๋กํ•œ ๊ฐ€๊ฒŒ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
  11. ๊ฐ€๊ฒŒ์˜ ํ‰์ ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  12. ๊ฐ€๊ฒŒ์˜ ์ฐœ ์ˆ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“‹ ๋ฉ”๋‰ด(Menu)

  1. ์‚ฌ์žฅ์€ ๋ฉ”๋‰ด๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ์‚ฌ์žฅ์€ ๋ฉ”๋‰ด์— ์†ํ•œ ๋ฉ”๋‰ด ์˜ต์…˜ ๊ทธ๋ฃน์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
  3. ์‚ฌ์žฅ์€ ๋ฉ”๋‰ด ์˜ต์…˜ ๊ทธ๋ฃน์— ์†ํ•œ ๋ฉ”๋‰ด ์˜ต์…˜์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
  4. ์‚ฌ์žฅ์€ ๋ฉ”๋‰ด, ๋ฉ”๋‰ด ์˜ต์…˜ ๊ทธ๋ฃน, ๋ฉ”๋‰ด ์˜ต์…˜์„ ์ˆ˜์ • ๋ฐ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
  5. ํšŒ์›์€ ๊ฐ€๊ฒŒ์˜ ๋ฉ”๋‰ด ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  6. ํšŒ์›์€ ๋ฉ”๋‰ด์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿงพ ์ฃผ๋ฌธ(Order)

  1. ํšŒ์›์€ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ธด ๋ฉ”๋‰ด๋ฅผ ์ฃผ๋ฌธํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ํšŒ์›์€ ์ฃผ๋ฌธ ๋‹จ๊ณ„์—์„œ ๊ฒฐ์ œ์ˆ˜๋‹จ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  3. ํšŒ์›์€ ์ฃผ๋ฌธ ๋‹จ๊ณ„์—์„œ ์š”์ฒญ์‚ฌํ•ญ์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  4. ํšŒ์›์€ ์ด ์ฃผ๋ฌธ ๊ธˆ์•ก๊ณผ ์ฃผ๋ฌธ ๋‚ด์—ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  5. ํšŒ์›์€ ์ฃผ๋ฌธ์„ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๋‹ค.
  6. ์ฃผ๋ฌธ์ด ์™„๋ฃŒ๋˜๋ฉด ์žฅ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์ดˆ๊ธฐํ™”๋œ๋‹ค.
  7. ํšŒ์›์€ ์ฃผ๋ฌธ ๋‚ด์—ญ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  8. ์‚ฌ์žฅ์€ ๋“ฑ๋กํ•œ ๊ฐ€๊ฒŒ์˜ ์ฃผ๋ฌธ ๋‚ด์—ญ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  9. ํšŒ์›๊ณผ ์‚ฌ์žฅ์€ ์ ‘์ˆ˜ ๋Œ€๊ธฐ ์ƒํƒœ์ผ ๋•Œ ์ฃผ๋ฌธ์„ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๋‹ค.
  10. ์‚ฌ์žฅ์€ ํšŒ์›์˜ ์ฃผ๋ฌธ์„ ์ ‘์ˆ˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
  11. ํšŒ์›์ด ํฌ์žฅ์„ ์™„๋ฃŒํ•˜๋ฉด ์‚ฌ์žฅ์€ ์ฃผ๋ฌธ์„ ํ™•์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  12. ์ฃผ๋ฌธ ์ƒํƒœ๋Š” ์ ‘์ˆ˜ ๋Œ€๊ธฐ, ์ฃผ๋ฌธ ์ทจ์†Œ, ์ฃผ๋ฌธ ์ ‘์ˆ˜, ์ฃผ๋ฌธ ํ™•์ •์œผ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

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

  1. ํšŒ์›์€ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋ฉ”๋‰ด๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค.
  2. ํšŒ์›์€ ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ๋น„์šธ ์ˆ˜ ์žˆ๋‹ค.
  3. ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ด๋ฏธ ๋‹ด๊ธด ๋ฉ”๋‰ด์™€ ๋™์ผํ•œ ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•œ ์ˆ˜๋Ÿ‰๋งŒํผ ๊ฐฏ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค.
  4. ํšŒ์›์€ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ธด ๋ฉ”๋‰ด๋ฅผ ์ฃผ๋ฌธํ•  ์ˆ˜ ์žˆ๋‹ค.
  5. ํšŒ์›์€ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ธด ๋ฉ”๋‰ด, ์ˆ˜๋Ÿ‰, ๋‹จ๊ฐ€, ์˜ˆ์ƒ ๊ฒฐ์ œ ๊ธˆ์•ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ”‘ ์ธ์ฆ(Authentication)

  1. ์ผ๋ฐ˜ ํšŒ์›๊ฐ€์ž…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ์‚ฌ์žฅ ํšŒ์›๊ฐ€์ž…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  3. ํšŒ์› ๊ฐ€์ž… ์‹œ ์ด๋ฉ”์ผ ์ธ์ฆ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  4. ํšŒ์› ๊ฐ€์ž… ์‹œ SMS ์ธ์ฆ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  5. ๋กœ๊ทธ์ธ / ๋กœ๊ทธ์•„์›ƒ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  6. ๊ฐ€์ž…๋œ ํšŒ์›๋งŒ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“ ์ค‘์  ๊ธฐ์ˆ  ๋ช…์„ธ

๋กœ๊ทธ์ธ

๊ธฐ์ˆ  ์˜์—ญ ์„ค๋ช…
Front 1. ์ด๋ฉ”์ผ๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ์„œ๋ฒ„์— ์ „์†กํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚˜๋„๋ก ๋ถ„๊ธฐ์ฒ˜๋ฆฌ
2. ์ด๋ฉ”์ผ input ํƒ€์ž…์„ ์ด๋ฉ”์ผ๋กœ ํ•ด์„œ ์ด๋ฉ”์ผ ์–‘์‹์ด ๋งž์ง€์•Š์œผ๋ฉด ์—๋Ÿฌ ์•Œ๋ฆผ ์ฒ˜๋ฆฌ
3. ํ† ํฐ์„ ์„œ๋ฒ„์—์„œ ๋ฐ›์•˜์„ ๋•Œ, ํ•ด๋‹น ํ† ํฐ์„ JWTDECODEํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋ณตํ˜ธํ™”ํ•ด์„œ ํ† ํฐ์•ˆ์— ๋‚ด์šฉ๋“ค์„ ์กฐํšŒํ•œ๋‹ค,
4. ํ† ํฐ, ์‚ฌ์šฉ์ž๊ถŒํ•œ, ์ด๋ฉ”์ผ์„ ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•œ๋‹ค.
5. ๋กœ๊ทธ์ธ์ด ์„ฑ๊ณตํ–ˆ์„ ๋–„, USER๋Š” ํ™ˆํ™”๋ฉด, OWNER๋Š” ๋งˆ์ดํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ๋‹ค.
Backend 1. ํ”„๋ก ํŠธ์—์„œ ์ด๋ฉ”์ผ๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ์„ ํ•˜๋ฉด ๋ฐฑ์—”๋“œ์—์„œ ์ผ์น˜์—ฌ๋ถ€๋ฅผ ๊ฒ€์ฆํ•œ๋‹ค.
2. ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํ”„๋ก ํŠธ์—์„œ ๋ฐ›์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ž‘ DB์—๋ฒˆํ˜ธ์™€ ์•”ํ˜ธํ™”ํ•ด์„œ ๋น„๊ตํ•˜์—ฌ ์ผ์น˜ํ•˜๋ฉด ์ผ์น˜์—ฌ๋ถ€๊ฐ€ ๊ฒ€์ฆ๋œ๋‹ค.
3. ๊ฒ€์ฆ์ด ์™„๋ฃŒ ๋˜๋ฉด ๋ฐฑ์—”๋“œ์—์„œ ํ† ํฐ์„ ์ƒ์„ฑํ•œ๋‹ค.
4. Accessํ† ํฐ์„ JWTํ˜•์‹์œผ๋กœ ๋ฐœํ–‰ํ•˜๊ณ  ํ•ด๋‹น ํ† ํฐ์ด ํ”„๋ก ํŠธ๋กœ ์ „๋‹ฌ๋œ๋‹ค.
5. ํ† ํฐ์•ˆ์— ์ •๋ณด๋Š” ๋งŒ๋ฃŒ์‹œ๊ฐ„, ์ด๋ฉ”์ผ, ์‚ฌ์šฉ์ž๊ถŒํ•œ์ด ๋“ค์–ด๊ฐ€์žˆ๋‹ค.

ํšŒ์›๊ฐ€์ž…

๊ธฐ์ˆ  ์˜์—ญ ์„ค๋ช…
Front 1. ๋กœ๊ทธ์ธ ํ™”๋ฉด์—์„œ ํšŒ์›๊ฐ€์ž… ๋ฒ„ํŠผ์ด ์กด์žฌํ•ด ํ•ด๋‹น ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ๋‹ค.
2. ์‚ฌ์žฅ๋‹˜ ํšŒ์›๊ฐ€์ž… ๋ฒ„ํŠผ๋„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด ํšŒ์›๊ฐ€์ž… ์‹œ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ ์ „์†กํ•  ๋•Œ, ํšŒ์›์˜ ๊ถŒํ•œ์„ ์ž๋™์œผ๋กœ ์„ค์ •ํ•˜๊ฒŒ ํ•œ๋‹ค.
3. ๊ฐ ์ž…๋ ฅ ๋ž€์— ๊ณต๋ฐฑ์œผ๋กœ ์„œ๋ฒ„์— ์ „์†กํ•  ๊ฒฝ์šฐ ์˜ˆ์™ธ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ ์„ค์ •
4. ์ด๋ฉ”์ผ๊ณผ ๋‹‰๋„ค์ž„์„ ์ค‘๋ณต๊ฒ€์‚ฌํ•˜์—ฌ DB์— ์กฐํšŒํ•˜์—ฌ ๋‹ค๋ฅธ ๊ณ„์ •๊ณผ ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ๊ฒ€์ฆํ•œ๋‹ค.
5. ์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ, ํœด๋Œ€์ „ํ™”๋ฅผ ์ •๊ทœ์‹์œผ๋กœ ์ œํ•œํ•˜์—ฌ ์ž…๋ ฅ ๊ฐ’์˜ ๊ทœ์น™์„ ์ ์šฉํ•œ๋‹ค.
6. ์ •๊ทœ์‹์— ๋งž์ง€์•Š๊ฒŒ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ์ ์šฉ.
7. ํ˜•์‹์— ๋งž๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์„œ๋ฒ„์— ์ „์†กํ•œ๋‹ค.
8. ํšŒ์›๊ฐ€์ž… ์™„๋ฃŒ ์‹œ, ๋กœ๊ทธ์ธ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
Backend 1. ํ”„๋ก ํŠธ์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ ๊ฐ’ ์ค‘์—์„œ null๋กœ ๋“ค์–ด์˜ค๋Š” ๊ฐ’์ด ์žˆ์œผ๋ฉด ์—๋Ÿฌ๋ฅผ ํ”„๋ก ํŠธ์— ์ „์†กํ•œ๋‹ค.
2. ์ด๋ฉ”์ผ๊ณผ ํœด๋Œ€ํฐ๋ฒˆํ˜ธ, ๋‹‰๋„ค์ž„์€ unique ์„ค์ •์ด ๋˜์–ด์žˆ์–ด DB์— ์กฐํšŒํ•ด์„œ ๊ฐ™์€ ๊ฐ’์ด ์žˆ์œผ๋ฉด ํ”„๋ก ํŠธ์— ์—๋Ÿฌ๋ฅผ ์ „์†กํ•œ๋‹ค.
3. ๊ฐ’์ด ํ˜•์‹์ด ์™„๋ฃŒ ๋˜์—ˆ์œผ๋ฉด DB์— ํšŒ์› ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ํ”„๋ก ํŠธ์— ์„ฑ๊ณต๋ฉ”์‹œ์ง€ ์ „์†ก

๋‚ด ์ •๋ณด/๋งค์žฅ ์กฐํšŒ

๊ธฐ์ˆ  ์˜์—ญ ์„ค๋ช…
Front 1. ์„œ๋ฒ„์— ๋‚ด ์ •๋ณด ์กฐํšŒ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์„œ๋ฒ„์— ์ „์†กํ•œ๋‹ค.
2. ์„œ๋ฒ„์— ์š”์ฒญ ์ „์†กํ•  ๋•Œ, ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ๋˜์–ด์žˆ๋Š” ํ† ํฐ์„ ํ—ค๋”ํ˜•์‹์— ๋งž์ถฐ ๊ฐ™์ด ์ „์†กํ•œ๋‹ค.
3. ์กฐํšŒ์š”์ฒญ์ด ์„ฑ๊ณต๋˜์–ด ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•˜์„๋•Œ, ๊ฐ ๋ฐ์ดํ„ฐ์— ๋งž๋Š” ์œ„์น˜์— v-model๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–‘๋ฐฉํ–ฅ๋ฐ์ดํ„ฐ๋กœ ์กฐํšŒ๊ฐ€ ์„ฑ๊ณต๋˜๋ฉด ๋ฐ”๋กœ ๊ฐ’์ด ์ž…๋ ฅ๋˜๋„๋ก ํ•œ๋‹ค.
Backend 1. ํ”„๋ก ํŠธ ํ† ํฐ ๊ฐ’์—์„œ ๋ฐ›์€ authenticatinon์— ๋‹ด๊ธด SecurityContextHolder์—์„œ ์‚ฌ์šฉ์ž ์ •๋ณด ์ถ”์ถœ
2. ํ”„๋ก ํŠธ์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ ๊ฐ’ ์ค‘์—์„œ null๋กœ ๋“ค์–ด์˜ค๋Š” ๊ฐ’์ด ์žˆ์œผ๋ฉด ์—๋Ÿฌ์ฝ”๋“œ๋ฅผ ํ”„๋ก ํŠธ์— ์ „์†กํ•œ๋‹ค.
3. ์‚ฌ์—…์ž ๋ฒˆํ˜ธ๊ฐ€ DB์— ์ €์žฅ ๋œ ์‚ฌ์—…์ž ๋ฒˆํ˜ธ ๋Œ€์กฐ ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ์ฝ”๋“œ๋ฅผ ์ „์†กํ•œ๋‹ค.
4. ๋งค์žฅ๋“ฑ๋ก์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ, ๊ฐ’๋“ค์„ DB์— ์ €์žฅํ•˜๊ณ  ์„ฑ๊ณต๋ฉ”์‹œ์ง€๋ฅผ ํ”„๋ก ํŠธ์— ์ €์žฅํ•œ๋‹ค.

๋‚ด ์ •๋ณด ์ˆ˜์ •

๊ธฐ์ˆ  ์˜์—ญ ์„ค๋ช…
Front 1. ์„œ๋ฒ„์— ์ •๋ณด ์ˆ˜์ •์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์„œ๋ฒ„์— ์ „์†กํ•œ๋‹ค.
Backend 1. ํ”„๋ก ํŠธ์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ ๊ฐ’ ์ค‘์—์„œ null๋กœ ๋“ค์–ด์˜ค๋Š” ๊ฐ’์ด ์žˆ์œผ๋ฉด ์—๋Ÿฌ์ฝ”๋“œ๋ฅผ ํ”„๋ก ํŠธ์— ์ „์†กํ•œ๋‹ค
2. ์‚ฌ์—…์ž ๋ฒˆํ˜ธ๊ฐ€ DB์— ์ €์žฅ ๋œ ์‚ฌ์—…์ž ๋ฒˆํ˜ธ ๋Œ€์กฐ ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ์ฝ”๋“œ๋ฅผ ์ „์†กํ•œ๋‹ค.
3. ๋งค์žฅ๋“ฑ๋ก์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ, ๊ฐ’๋“ค์„ DB์— ์ €์žฅํ•˜๊ณ  ์„ฑ๊ณต๋ฉ”์‹œ์ง€๋ฅผ ํ”„๋ก ํŠธ์— ์ €์žฅํ•œ๋‹ค.

๋งค์žฅ ๋“ฑ๋ก

๊ธฐ์ˆ  ์˜์—ญ ์„ค๋ช…
Front 1. ํšŒ์›๊ฐ€์ž…๊ณผ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๊ณ ์žˆ์ง€๋งŒ ๋งค์žฅ๋“ฑ๋ก์—์„œ๋Š” ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ๊ฐ™์ด ๋“ฑ๋กํ•œ๋‹ค.
2. ๋งค์žฅ ๋“ฑ๋ก ์‹œ multipartformdata ํ˜•์‹์œผ๋กœ ์„œ๋ฒ„์— ์ž…๋ ฅํ•œ ๊ฐ’์„ ์ „์†กํ•œ๋‹ค.
3. ๊ฐ ์ž…๋ ฅ๋ž€์˜ ๊ณต๋ฐฑ์œผ๋กœ ์„œ๋ฒ„์— ์ „์†กํ•˜๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
Backend 1. ํ”„๋ก ํŠธ์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ ๊ฐ’ ์ค‘์—์„œ null๋กœ ๋“ค์–ด์˜ค๋Š” ๊ฐ’์ด ์žˆ์œผ๋ฉด ์—๋Ÿฌ์ฝ”๋“œ๋ฅผ ํ”„๋ก ํŠธ์— ์ „์†กํ•œ๋‹ค.
2. ์‚ฌ์—…์ž ๋ฒˆํ˜ธ๊ฐ€ DB์— ์ €์žฅ ๋œ ์‚ฌ์—…์ž ๋ฒˆํ˜ธ ๋Œ€์กฐ ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ์ฝ”๋“œ๋ฅผ ์ „์†กํ•œ๋‹ค.
3. ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ multipartfileํ˜•์‹์œผ๋กœ ๋ฐ›์•„์„œ ํ•ด๋‹น ํŒŒ์ผ์„ ๋ฐ”์ดํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์„œ๋ฒ„์—์„œ ์„ค์ •ํ•œ ๊ฒฝ๋กœ์— ์ €์žฅํ•˜๋ฉด์„œ ๊ฐ™์€ ์ด๋ฏธ์ง€ํŒŒ์ผ์ด ์žˆ๋‹ค๋ฉด ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ํ•˜๊ณ  ์—†์œผ๋ฉด ์ƒ์„ฑํ•˜๋„๋ก ํ•œ๋‹ค.
4. ๋ฐ”์ดํŠธ๋กœ ๋ณ€ํ™˜์ด ์•ˆ๋˜๋ฉด ์—๋Ÿฌ๋ฅผ ์ „์†กํ•œ๋‹ค.
5. ๋งค์žฅ๋“ฑ๋ก์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ, ๊ฐ’๋“ค์„ DB์— ์ €์žฅํ•˜๊ณ  ์„ฑ๊ณต๋ฉ”์‹œ์ง€๋ฅผ ํ”„๋ก ํŠธ์— ์ €์žฅํ•œ๋‹ค.

์žฅ๋ฐ”๊ตฌ๋‹ˆ & ์ฃผ๋ฌธ

๊ธฐ์ˆ  ์˜์—ญ ์„ค๋ช…
Front 1. ๋ฉ”๋‰ด ์„ ํƒ ํ›„ ์˜ต์…˜์„ ์ฒดํฌํ•˜๊ฑฐ๋‚˜, ๋ฉ”๋‰ด ์ˆ˜๋Ÿ‰์„ ์ฆ๊ฐํ•˜๋ฉด ์ด ์ฃผ๋ฌธ ๊ธˆ์•ก์ด ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.
ใ…‡ @change ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ์ด ์ฃผ๋ฌธ ๊ธˆ์•ก์„ ์ฆ๊ฐํ•˜๋Š” ํ•จ์ˆ˜ ์‹คํ–‰ (์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง)

2. ๋ฉ”๋‰ด์™€ ์˜ต์…˜ ์„ ํƒ ํ›„ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด์œผ๋ฉด ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด๋‹ค.
ใ…‡ vuex ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ •๋ณด ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ
ใ…‡ ๋ฉ”๋‰ด ๋ฆฌ์ŠคํŠธ์—์„œ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด์„ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ ํ›„, data()์— ์ •์˜๋œ ๋ฐ์ดํ„ฐ๋กœ ์ ์ ˆํžˆ ์กฐ๋ฆฝ

3. ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋ฉ”๋‰ด๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ํ—ค๋” ์ฃผ๋ฌธํ‘œ์— ๋‹ด๊ธด ๋ฉ”๋‰ด์˜ ๊ฐœ์ˆ˜๊ฐ€ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.
ใ…‡ mapGetters๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ store์— ์ €์žฅ๋œ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒํƒœ ๊ณ„์‚ฐ

4. ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ดˆ๊ธฐํ™” ๊ธฐ๋Šฅ: store.js์— ์ •์˜๋œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋งŒ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์—์„œ ์ดˆ๊ธฐํ™”
5. ์ฃผ๋ฌธ ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ๋‹ด๊ธด ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜์—ฌ ์„œ๋ฒ„๋กœ ์ „์†กํ•  ๋ฐ์ดํ„ฐ ํ˜•ํƒœ์— ๋งž๊ฒŒ ์กฐ๋ฆฝ
ใ…‡ ์„œ๋ฒ„ ๋‹จ์˜ RequestDto ํ˜•ํƒœ์— ๋งž๊ฒŒ ๊ฐ์ฒด๋ฅผ ์กฐ๋ฆฝํ•œ๋‹ค.
ใ…‡ axios post ์š”์ฒญ์œผ๋กœ ์„œ๋ฒ„์— ์กฐ๋ฆฝ๋œ ๊ฐ์ฒด๋ฅผ ์ „์†กํ•œ๋‹ค.
Backend 1. ํ”„๋ก ํŠธ์—์„œ ๋ฐ›์€ ์ฃผ๋ฌธ ๋ฐ์ดํ„ฐ์˜ ์ด ์ฃผ๋ฌธ ๊ธˆ์•ก์„ ๊ฒ€์ฆํ•œ๋‹ค.
ใ…‡ ์ค‘๊ฐ„์— ์—ฐ์‚ฐ์ด ์กฐ์ž‘๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฒ€์ฆ ์ˆ˜ํ–‰
ใ…‡ ์ฃผ๋ฌธ ๋ฉ”๋‰ด ์ˆ˜๋Ÿ‰๊ณผ ์˜ต์…˜ ๊ฐ€๊ฒฉ์ด ์ผ์น˜ํ•˜๋Š” ์ง€ ๊ฒ€์ฆ

2. ์„ ํƒ๋œ ๋ฉ”๋‰ด ์ •๋ณด ๋ฆฌ์ŠคํŠธ ์•ˆ์— ๋ฉ”๋‰ด id, ๋ฉ”๋‰ด ์ˆ˜๋Ÿ‰, ๋ฉ”๋‰ด์— ์ถ”๊ฐ€๋œ ์˜ต์…˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค.
ใ…‡ 2์ค‘ for๋ฌธ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜์—ฌ order, orderMenu, menuOption Entity์— ์ €์žฅํ•œ๋‹ค.
ใ…‡ ๊ฐ Entity ๋ณ„ ์–‘๋ฐฉํ–ฅ ์—ฐ๊ด€๊ด€๊ณ„ ์„ค์ •

3. ์‚ฌ์šฉ์ž ์ฃผ๋ฌธ ๋‚ด์—ญ์„ ์ตœ์‹  ์ˆœ์œผ๋กœ ์ •๋ ฌ(2๊ฐ€์ง€ ๋ฐฉ๋ฒ•)
ใ…‡ JPA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OrderRepository findBy ๋ฉ”์„œ๋“œ๋ฅผ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•
ใ…‡ ์ปจํŠธ๋กค๋Ÿฌ ๋ฉ”์„œ๋“œ์— PageableDefault ์–ด๋…ธํ…Œ์ด์…˜ ํ™œ์šฉ

4. ์ผ๋ฐ˜ ํšŒ์› ๋˜๋Š” ์‚ฌ์žฅ ํšŒ์›์ด ์ฃผ๋ฌธ API ์š”์ฒญ ์‹œ ๊ฒ€์ฆ
ใ…‡ ์‚ฌ์žฅ์ด ํšŒ์›์˜ ์ฃผ๋ฌธ์„ ์ ‘์ˆ˜, ์ทจ์†Œ, ํ™•์ •ํ•  ๋•Œ, ํ•ด๋‹น ๊ฐ€๊ฒŒ๋ฅผ ์‹ค์ œ๋กœ ๋“ฑ๋กํ•œ ์‚ฌ์žฅ์ธ ์ง€ ๊ฒ€์ฆ
ใ…‡์ผ๋ฐ˜ ํšŒ์›์ด ๋ฉ”๋‰ด๋ฅผ ์ฃผ๋ฌธํ•  ๋•Œ, ์ฃผ๋ฌธํ•œ ๋ฉ”๋‰ด๊ฐ€ ๊ฐ€๊ฒŒ์— ๋“ฑ๋ก๋œ ๋ฉ”๋‰ด์ธ์ง€ ๊ฒ€์ฆ

5. ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‘ ๊ฐ€๊ฒŒ์˜ ๋ฉ”๋‰ด๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์—†๋‹ค.

๋งค์žฅ ๋ชฉ๋ก ์กฐํšŒ & ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ

๊ธฐ์ˆ  ์˜์—ญ ์„ค๋ช…
Front 1. ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ณ  ํ™”๋ฉด์ด ๋‚˜์˜ค๊ธฐ ์œ„ํ•ด Mounted ์ƒํƒœ์—์„œ ์„œ๋ฒ„์— ๋ชฉ๋ก ์กฐํšŒ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์„œ๋ฒ„์— ์ „์†กํ›„ ์‘๋‹ต์ด ์˜ค๋ฉด ๋งค์žฅ์„ ์กฐํšŒํ•œ๋‹ค.
2. ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์— ์žˆ๋Š” ์Œ์‹ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฒ„ํŠผ์ด๋‚˜ ๊ฒ€์ƒ‰์œผ๋กœ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ props ๋ฐ›๊ฒŒ๋˜๋ฉด watchEffect๊ฐ€ ๊ฐ์ง€ ํ›„ ๊ธฐ์กด์— ๋‚จ์•„์žˆ๋˜ ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๋งค์žฅ์„ ์กฐํšŒํ•œ๋‹ค.
3. ๋ชฉ๋ก์„ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ ์กฐํšŒ๋ฅผ ์œ„ํ•ด ํŽ˜์ด์ง€ ์ด๋™ ๋ฐฉ์‹์„ ์Šคํฌ๋กค๋กœ ๋ณ€๊ฒฝ ํ•œ๋‹ค.
ใ…‡์Šคํฌ๋กค ๋ฐฉ์‹์„ ์ด์šฉ ํ•  ๋•Œ ํŽ˜์ด์ง€ ํ™”๋ฉด ์ฐฝ์ด ํŠน์ • ํ•˜๋‹จ ๋„๋‹ฌ ํ–ˆ์„ ๋•Œ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•œ๋‹ค.
ใ…‡๋งŒ์•ฝ ๋ฐ์ดํ„ฐ๋ฅผ ์•„์ง ์กฐํšŒ ์ค‘ ์ด๊ฑฐ๋‚˜ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋” ์ด์ƒ ์—†์„ ๋•Œ๋Š” ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ ์กฐํšŒ๋ฅผ ๋ฉˆ์ถ˜๋‹ค.
Backend 1. ํ”„๋ก ํŠธ์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋ฐ›์•„ ๋ชฉ๋ก์„ ์ „์ฒด ์กฐํšŒํ•œ๋‹ค.
2. specification๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ์ฒดํฌ(์ด๋ฆ„or์Œ์‹์นดํ…Œ๊ณ ๋ฆฌ)ํ•œ ์ข…๋ฅ˜๋“ค์„ ๋น„๊ตํ•˜์—ฌ ๋ชฉ๋ก์„ ์กฐํšŒ ํ•œ๋‹ค.
3. ๋ชฉ๋ก์„ ์กฐํšŒ ํ•  ๋•Œ ๊ฐ€๊ฒŒ OPEN/CLOSE ์ƒํƒœ์— ๋”ฐ๋ผ OPENํ•œ ๋งค์žฅ๋ถ€ํ„ฐ ์กฐํšŒํ•œ๋‹ค.

๋งค์žฅ ์ƒ์„ธ์กฐํšŒ

๊ธฐ์ˆ  ์˜์—ญ ์„ค๋ช…
Front 1. ๋งค์žฅ ๋ชฉ๋ก ์กฐํšŒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ํ•ด๋‹น ๋งค์žฅ ์กฐํšŒ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์„œ๋ฒ„์— ์ „์†กํ•œ ํ›„ ์‘๋‹ต์ด ์˜ค๋ฉด ํ•ด๋‹น ๋งค์žฅ์„ ์ƒ์„ธ์กฐํšŒ ํ•œ๋‹ค.
Backend 1. ํ”„๋ก ํŠธ์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ ๊ฐ’ ์ค‘์—์„œ null๋กœ ๋“ค์–ด์˜ค๋Š” ๊ฐ’์ด ์žˆ์œผ๋ฉด ์—๋Ÿฌ๋ฅผ ํ”„๋ก ํŠธ์— ์ „์†กํ•œ๋‹ค.

์ฐœ

๊ธฐ์ˆ  ์˜์—ญ ์„ค๋ช…
Front 1. ๋งค์žฅ ์กฐํšŒ ์‹œ ํ•ด๋‹น ๋งค์žฅ์˜ ์ฐœ ์ˆ˜๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.
2. ์‚ฌ์šฉ์ž์˜ ์ฐœ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ํ•˜ํŠธ ์ƒ‰์ด ๋ฐ”๋€๋‹ค.
ใ…‡ ์ฐœ ํ™œ์„ฑํ™” : ๋นจ๊ฐ„์ƒ‰, ์ฐœ ๋น„ํ™œ์„ฑํ™” : ํšŒ์ƒ‰
3. ๋กœ๊ทธ์ธ ์—†์ด ์ฐœ ๋“ฑ๋ก ์‹œ ๋กœ๊ทธ์ธ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
Backend Favorite ํ…Œ์ด๋ธ”์— Store_id, Member_id, FavoriteY/N(์ฐœ ์—ฌ๋ถ€)์„ ๊ด€๋ฆฌํ•œ๋‹ค.

์ฐœ ํ•˜๊ธฐ
1. SecurityContextHolder์— ๋‹ด๊ธด ์œ ์ €์ •๋ณด๋กœ ํ•ด๋‹น ๋งค์žฅ์„ ์ฐœํ•œ๋‹ค.
2. ์ฐœ ์—ฌ๋ถ€๋Š” Favorite Y/N๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ์ฐœ(ํšŒ์›-๋งค์žฅ-Y)์ด๋ฉด ์ค‘๋ณต ์—๋Ÿฌ๋ฅผ ์ „์†กํ•œ๋‹ค.
3. ํŠœํ”Œ์€ ์กด์žฌํ•˜๋‚˜ Favorite N์ธ ๊ฒฝ์šฐ Y๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.

์ฐœ ์ทจ์†Œ
1. SecurityContextHolder์— ๋‹ด๊ธด ์œ ์ €์ •๋ณด์™€ ํ•ด๋‹น ๋งค์žฅ์˜ ์ฐœ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์—ฌ ์ทจ์†Œํ•œ๋‹ค.
2. ์ทจ์†Œ ์‹œ Favorite Y๋ฅผ N์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.

๋งค์žฅ๋ณ„ ์ฐœ ์ˆ˜ ์กฐํšŒ
1. FavoriteRepository์—์„œ ํ•ด๋‹น ๋งค์žฅ๊ณผ FavoriteY์ธ ์ฐœ ๋ฆฌ์ŠคํŠธ๋ฅผ ์กฐํšŒํ•œ๋‹ค.
2. ๊ทธ ์ค‘ ํšŒ์›ํƒˆํ‡ด ํ›„ 30์ผ์ด ์ง€๋‚˜์ง€ ์•Š์€ ํšŒ์›์˜ ์ฐœ์„ ์ œ์™ธํ•˜๊ณ  ๊ฐœ์ˆ˜๋ฅผ ์„ผ๋‹ค.

๋‚ด ์ฐœ ๋ชฉ๋ก ์กฐํšŒ
1. SecurityContextHolder์— ๋‹ด๊ธด ์œ ์ €์™€ FavoriteY์ธ ์ฐœ ๋ฆฌ์ŠคํŠธ๋ฅผ ์กฐํšŒํ•œ๋‹ค.

๋ฆฌ๋ทฐ

๊ธฐ์ˆ  ์˜์—ญ ์„ค๋ช…
Front 1. ๋ฆฌ๋ทฐ ์ž‘์„ฑ ๋ฒ„ํŠผ์€ ์ฃผ๋ฌธํ™•์ • ์ƒํƒœ์ผ ๊ฒฝ์šฐ๋งŒ ํ‘œ์‹œํ•œ๋‹ค.
2. ๋ฆฌ๋ทฐ ์ž‘์„ฑ ์‹œ ๋ณ„์ ์„ ๋“ฑ๋กํ•œ๋‹ค.
3. ๋งค์žฅ ์กฐํšŒ ์‹œ ํ•ด๋‹น ๋งค์žฅ์˜ ํ‰์ ์„ ํ‘œ์‹œํ•œ๋‹ค.
4. ๋“ฑ๋ก๋œ ๋ฆฌ๋ทฐ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ NaN๊ฐ’์„ โ€˜๋“ฑ๋ก๋œ ๋ฆฌ๋ทฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.โ€™๋กœ ํ‘œ์‹œํ•œ๋‹ค.
Backend Review ํ…Œ์ด๋ธ”์— Store_id, Member_id, order_id, DeleteY/N(์‚ญ์ œ์—ฌ๋ถ€), contents, rating(๋ณ„์ ), img_url์„ ๊ด€๋ฆฌํ•œ๋‹ค.

๋ฆฌ๋ทฐ ์ž‘์„ฑ
1. ๋ฆฌ๋ทฐ ์ž‘์„ฑ์€ ์ฃผ๋ฌธ ๊ฑด๋‹น ํ•˜๋‚˜๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.
ใ…‡ order_id๋กœ ๊ด€๋ฆฌ
2. ์‚ญ์ œ์—ฌ๋ถ€๋ฅผ DeleteY/N์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— DeleteN์ธ ๊ฒฝ์šฐ ์ค‘๋ณต ์—๋Ÿฌ๋ฅผ ์ „์†กํ•œ๋‹ค.
3. ํŠœํ”Œ์€ ์กด์žฌํ•˜๋‚˜ DeleteY์ธ ๊ฒฝ์šฐ N์œผ๋กœ ๋ฐ”๊พธ๊ณ  ๋‚ด์šฉ์„ ๋ณ€๊ฒฝ์‹œํ‚จ๋‹ค.
4. ํ•ด๋‹น ์ฃผ๋ฌธ์„ ๋“ฑ๋กํ•œ ํšŒ์› ๋ณธ์ธ๋งŒ ๋ฆฌ๋ทฐ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
ใ…‡ SecurityContextHolder์— ๋‹ด๊ธด ์œ ์ €์ •๋ณด์™€ orderId๋กœ ์กฐํšŒํ•œ order์˜ member์™€ ๋น„๊ตํ•˜์—ฌ ๋‹ค๋ฅด๋ฉด ์—๋Ÿฌ๋ฅผ ์ „์†กํ•œ๋‹ค.
5. ์ฃผ๋ฌธ์ƒํƒœ๊ฐ€ CONFIRM์ธ ๊ฒฝ์šฐ๋งŒ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋ฆฌ๋ทฐ ์ˆ˜์ •
1. ํ•ด๋‹น ์ฃผ๋ฌธ์„ ๋“ฑ๋กํ•œ ํšŒ์› ๋ณธ์ธ๋งŒ ๋ฆฌ๋ทฐ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
ใ…‡ SecurityContextHolder์— ๋‹ด๊ธด ์œ ์ €์ •๋ณด์™€ orderId๋กœ ์กฐํšŒํ•œ order์˜ member์™€ ๋น„๊ตํ•˜์—ฌ ๋‹ค๋ฅด๋ฉด ์—๋Ÿฌ๋ฅผ ์ „์†กํ•œ๋‹ค.
2. ReviewRepository์—์„œ ํ•ด๋‹น order์™€ DeleteN์ธ ๋ฆฌ๋ทฐ๋ฅผ ์กฐํšŒํ•˜์—ฌ ์ˆ˜์ •ํ•œ๋‹ค.

ํ‰์  ์กฐํšŒ
1. ํ•ด๋‹น ๋งค์žฅ์˜ DeleteN์ธ ๋ฆฌ๋ทฐ๋“ค๋งŒ ์กฐํšŒํ•œ๋‹ค.
2. ์กฐํšŒ๋œ ๋ฆฌ๋ทฐ์˜ ํ‰์ ๋“ค์˜ ์ดํ•ฉ์„ ๋ฆฌ๋ทฐ ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ํ‰์ ์„ ๊ตฌํ•œ๋‹ค.
3. DecimalFormat์œผ๋กœ ์†Œ์ˆซ์  ํ•œ ์ž๋ฆฌ๊นŒ์ง€๋งŒ ํ‘œ์‹œํ•œ๋‹ค.

ํšŒ์› ํƒˆํ‡ด

๊ธฐ์ˆ  ์˜์—ญ ์„ค๋ช…
Backend 1. ํƒˆํ‡ด ์‹œ ๋ถ€์ • ์ด์šฉ ๋ฐฉ์ง€ ๋“ฑ์„ ์œ„ํ•˜์—ฌ ํƒˆํ‡ด์ผ๋กœ๋ถ€ํ„ฐ 30์ผ ์ด๋‚ด์— ์žฌ๊ฐ€์ž…์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•œ๋‹ค.
ใ…‡ 30์ผ ๋™์•ˆ ํšŒ์›์ •๋ณด๋ฅผ ๋ณด๊ด€ํ•˜๊ธฐ ์œ„ํ•ด ํšŒ์› ํƒˆํ‡ด ์‹œ memberํ…Œ์ด๋ธ”์— DeleteY๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.
ใ…‡์Šค์ผ€์ฅด๋Ÿฌ๋กœ 30์ผ์ด ์ง€๋‚˜๋ฉด DeleteY์ธ ํšŒ์›์˜ ํŠœํ”Œ์„ ์‚ญ์ œํ•œ๋‹ค.
ใ…‡ 30์ผ์˜ ๊ธฐ์ค€์€ DeleteY๋กœ ๋ณ€๊ฒฝ ํ›„ ๋ฐ˜์˜๋œ updated_time์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ๋‹ค.
ใ…‡ํšŒ์› ์‚ญ์ œ ์‹œ ์—ฐ๊ด€๋œ ํ…Œ์ด๋ธ”์˜ ํŠœํ”Œ์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•œ๋‹ค.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages