๐ŸŽ‰ ํ•œ๊ตญ๊ณต๋Œ€ ์ถ•์ œ ์›น์‚ฌ์ดํŠธ : Festino ๊ฐœ๋ฐœ ํ›„๊ธฐ ๐ŸŽ‰

niireymikยท2024๋…„ 9์›” 28์ผ

ํ•œ๊ตญ๊ณตํ•™๋Œ€ํ•™๊ต์˜ ๋Œ€๋™์ œ(24.09.11~24.09.13) ๊ธฐ๊ฐ„์— ๋งž์ถฐ, 6์›” 2์ผ๋ถ€ํ„ฐ ๋‘ ๋‹ฌ ๋ฐ˜๋™์•ˆ ์ง„ํ–‰ํ•œ ํ”„๋กœ์ ํŠธ Festino : ํŽ˜์Šคํ‹ฐ๋…ธ๊ฐ€ ๋ฌด์‚ฌํžˆ ์ข…๋ฃŒ๋˜์—ˆ๋‹ค!โœจ

Festino๋Š” ํŒ€ Dev-Tino๋กœ์„œ ์ง„ํ–‰ํ•œ ๋‘ ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ์˜€๋Š”๋ฐ, ๊ทœ๋ชจ๊ฐ€ ์ปค์ง์— ๋”ฐ๋ผ ๊ณ ์ƒ๋„ ํ–ˆ์ง€๋งŒ ์• ์ •์œผ๋กœ ๋Œ์–ด์™”๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋งŒ์กฑ์œผ๋Ÿฌ์šด ์„ฑ๊ณผ๋ฅผ ๋‹ฌ์„ฑํ•ด ๋ฟŒ๋“ฏํ•จ๋„ ๊ทธ๋งŒํผ ์ปธ๋‹ค. ๋ฐฐ์šด ๊ฒŒ ๋งŽ์•˜๊ธฐ์— ๋‘ ๋‹ฌ ๋ฐ˜์„ ์Ÿ์•„๋‚ธ Festino! ์ด์— ๋Œ€ํ•œ ์—ฌ์ •์„ ๊ธฐ๋กํ•ด ๋ณด๊ณ ์ž ํ•œ๋‹ค :D






๐Ÿฅณ Festino ์ฒซ๊ฑธ์Œ ๐Ÿฅณ


ํŒ€ ๊ตฌ์„ฑ

ํ•œ๊ตญ๊ณตํ•™๋Œ€ํ•™๊ต ๊ฐœ๋ฐœ ์†Œ๋ชจ์ž„ Dev-Tino์˜ ํ”„๋ก ํŠธ 4๋ช…, ๋ฐฑ 5๋ช…, ์ถ”๊ฐ€์ ์œผ๋กœ ์ด๋ฒˆ ์ถ•์ œ ํ”„๋กœ์ ํŠธ์—์„œ ํ•จ๊ป˜ํ•  ๋ชฉ์ ์œผ๋กœ ๋ชจ์ง‘ํ•œ ๋””์ž์ธ 3๋ช…๊นŒ์ง€ ์ด 12๋ช…์ด ํ•จ๊ป˜ํ–ˆ๋‹ค.


์ฃผ์ œ ์„ ์ • & ๋ ˆํผ๋Ÿฐ์Šค

ํ•™๊ต ์ถ•์ œ ์›น์‚ฌ์ดํŠธ๋ฅผ ์ œ์ž‘ํ•˜์ž๊ณ  ๊ฒฐ์ •ํ•œ ๊ณ„๊ธฐ๊ฐ€ ๋œ, ํ•ต์‹ฌ์ ์ธ ๋ฌธ์ œ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋‹ค.

  1. ์ถ•์ œ ๊ด€๋ จ ์ •๋ณด๋Š” ์ดํ•™์ƒํšŒ ์ธ์Šคํƒ€๊ทธ๋žจ์„ ํ†ตํ•ด์„œ๋งŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ๋™์•„๋ฆฌ์˜ ๊ณต์—ฐ ์ •๋ณด๋‚˜ ์ฃผ๊ฐ„ ๋ถ€์Šค ์ •๋ณด๋Š” ๊ฐ ๋™์•„๋ฆฌ์˜ SNS ๊ฒŒ์‹œ๋ฌผ์„ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•ด์•ผ๋งŒ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

โ†’ โ€์›น์‚ฌ์ดํŠธ ํ•˜๋‚˜๋กœ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ž!โ€


๋ชจ๋“  ์ •๋ณด๋ฅผ ํ•œ ๋ˆˆ์— ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์›น์‚ฌ์ดํŠธ ์ œ์ž‘์„ ๋ชฉํ‘œ๋กœ ์žก์•˜๊ณ , ์ถ•์ œ์˜ Festival๊ณผ ํ•œ๊ตญ๊ณต๋Œ€ ๋งˆ์Šค์ฝ”ํŠธ์ธ Tino๋ฅผ ํ•ฉํ•ด Festino๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๋‹ค!๐ŸŽ‰


์ถ•์ œ ์›น์‚ฌ์ดํŠธ๋กœ ๋ฐฉํ–ฅ์„ ์ •ํ•œ ํ›„, ์ž๋Œ€๋Š” ๊ด€๋ จ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•œ ์ ์ด ์—†์—ˆ๊ธฐ์— ํƒ€ ๋Œ€ํ•™์˜ ์„ ๋ก€๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ์•„๋ดค๋‹ค. ๋™๊ตญ๋Œ€ ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ์—์„œ ์ œ์ž‘ํ•œ ๋™๊ตญ๋Œ€ ์ถ•์ œ ์›น์‚ฌ์ดํŠธ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด๋ฏธ ์ถ•์ œ๊ฐ€ ์ข…๋ฃŒ๋˜์–ด ์‚ฌ์ดํŠธ๋ฅผ ์ง์ ‘์ ์œผ๋กœ ์ฐธ๊ณ ํ•˜์ง„ ๋ชปํ–ˆ์œผ๋‚˜, ํ™๋ณด์šฉ์œผ๋กœ ์“ฐ์˜€๋˜ ์ž๋ฃŒ๊ฐ€ ์ดˆ์žฅ์— ๊ธฐํš์˜ ํ‹€์„ ์žก๋Š” ๋ฐ ๋„์›€์ด ๋งŽ์ด ๋˜์—ˆ๋‹ค :)

โ†’ ๊ณต์ง€ / ๋ถ€์Šค / ํ™ˆ / ๊ณต์—ฐ / ํ™๋ณด ํƒญ์œผ๋กœ ๋‚˜๋‰˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ง€๋„์—์„œ ๋ถ€์Šค ์œ„์น˜๋ฅผ ํ™•์ธํ•˜๊ณ , ๊ณต์—ฐ์„ ํƒ€์ž„ํ…Œ์ด๋ธ”๋กœ ๋‚˜ํƒ€๋‚ด๊ณ , ๊ณต์ง€๋ฅผ ๋ชจ์•„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด Festino ๊ธฐํš ๋‹จ๊ณ„์— ๋ฐ˜์˜๋˜์—ˆ๋‹ค.






๐Ÿ—“๏ธ ํ˜‘์—… ๐Ÿ—“๏ธ


Festino ํ”„๋กœ์ ํŠธ๋Š” ํ”„๋ก ํŠธ / ๋ฐฑ / ๋””์ž์ธ ์ด 3๊ฐœ์˜ ํŒ€, 12๋ช…์˜ ์ธ์›์œผ๋กœ ์ง„ํ–‰ํ–ˆ๊ธฐ์— ์›ํ™œํ•œ ํ”„๋กœ์ ํŠธ์˜ ์ง„ํ–‰์„ ์œ„ํ•ด์„œ ๋ฌด์—‡๋ณด๋‹ค๋„ ํ˜‘์—…์ด ์ž˜ ์ด๋ฃจ์–ด์ ธ์•ผ ํ–ˆ๋‹ค.

ํŒ€ ๊ฐ„ ํ˜‘์—…์„ ์œ„ํ•ด์„œ๋Š” ์ •๊ธฐ ํšŒ์˜, ํŒ€ ๋‚ด ํ˜‘์—…์„ ์œ„ํ•ด์„œ๋Š” Convention ์ ์šฉ์„ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.


1. ์ •๊ธฐ ํšŒ์˜

ํ”„๋กœ์ ํŠธ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ์ „ ๊ธฐ๊ฐ„์— ๊ฑธ์ณ, ๋งค์ฃผ ์ผ์š”์ผ ์˜คํ›„ 3์‹œ์— ์ •๊ธฐ ํšŒ์˜๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค. ๋ชจ๋‘๊ฐ€ ์˜๊ฒฌ์„ ๊ณต์œ ํ•ด ๊ฒฐ์ •ํ•ด์•ผ ํ•  ์‚ฌ์•ˆ๋“ค์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ณ , ํŒ€ ๊ฐ„ ์ง„ํ–‰ ์ •๋„๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์„œ๋กœ ์กฐ์œจํ•ด๋‚˜๊ฐ์œผ๋กœ์จ ํ”„๋ก ํŠธ, ๋ฐฑ, ๋””์ž์ธ์˜ ํŒ€ ๊ฐ„ ํ˜‘์—…์ด ์ˆ˜์›”ํžˆ ์ด๋ฃจ์–ด์ง€๋„๋ก ํ–ˆ๋‹ค.

์ •๊ธฐ ํšŒ์˜๋Š” ์ดˆ๊ธฐ์—๋Š” ํญํฌ์ˆ˜ ๋ฐฉ๋ฒ•๋ก ์— ๋งž๊ฒŒ ์ง„ํ–‰๋˜๋‹ค๊ฐ€ ๋„์ค‘ ํ•„์š”์— ๋”ฐ๋ผ ์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก ์˜ ํ˜•ํƒœ๋กœ ๋ณ€ํ˜•๋˜์—ˆ๋Š”๋ฐ, ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ์ „๋ฐ˜ - ํญํฌ์ˆ˜ ๋ฐฉ๋ฒ•๋ก 
    : ์ฃผ์ œ๋ฅผ ์ •ํ•œ ํ›„๋กœ ์ „๋ฐ˜์—๋Š” ํญํฌ์ˆ˜ ๋ฐฉ๋ฒ•๋ก ์— ๋”ฐ๋ผ ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„, ์„ค๊ณ„, ... ๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰๋˜์—ˆ๋‹ค. ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ •์˜ํ•˜๊ณ , ์™€์ด์–ดํ”„๋ ˆ์ž„์„ ์ž‘์„ฑํ•˜๊ณ , API์™€ DB๋ฅผ ์„ค๊ณ„ํ•˜๊ณ , ๊ทธ ํ›„ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ฐ์ž ๋งก์€ ๋ฐ”๋ฅผ ํ•œ ๋’ค ์ •๊ธฐ ํšŒ์˜ ์‹œ๊ฐ„์— ๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ ํŒ€์ด ์ด์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ๊ณต์œ ํ•˜๋ฉฐ ํ•˜๋‚˜๋กœ ํ†ต์ผํ•ด๊ฐ€๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋‹ค.

  • ํ›„๋ฐ˜ - ์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก 
    : ๊ธฐํš์„ ๋งˆ์น˜๊ณ  ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•œ ๋’ค, ์ดํ•™์ƒํšŒ์™€ ํ•™๊ณผ ๋ฏธํŒ…์„ ํ†ตํ•ด ํ”ผ๋“œ๋ฐฑ์„ ๊ณ„์† ๋ฐ›์•˜๋‹ค. ์ด์— ๋”ฐ๋ผ ๋งค์ฃผ ๊ธฐ๋Šฅ์˜ ์ˆ˜์ • ๋˜๋Š” ์ถ”๊ฐ€๊ฐ€ ์ง€์†์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋ฉฐ ์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค. ์ฆ‰, ์ผ์ฃผ์ผ์„ ์ฃผ๊ธฐ๋กœ ๊ฐ์ž์˜ ๋ชฉํ‘œ๋ฅผ ์ •ํ•˜๊ณ  ์ •ํ•ด์ง„ ์–‘์˜ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋‹ค. ์ •๊ธฐ ํšŒ์˜ ๋•Œ ํŒ€๋ณ„ ์ง„ํ–‰์ƒํ™ฉ์„ ๊ณต์œ ํ–ˆ์œผ๋ฉฐ, ํŒ€๋ณ„ ์ผ์ •์„ ๊ณต์œ ํ•ด ์„ ํ›„๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ์ž‘์—…์— ๋Œ€ํ•œ ์ผ์ •์„ ์กฐ์œจํ•ด์„œ ์š”๊ตฌ์‚ฌํ•ญ์ด ๊ณ„์†ํ•ด์„œ ๋ณ€ํ™”ํ•˜๋”๋ผ๋„ ๊พธ์ค€ํ•œ ์†Œํ†ต์œผ๋กœ ํŒ€ ๊ฐ„ ํ˜‘์—…์„ ์ˆ˜์›”ํžˆ ์ด๋ฃจ์—ˆ๋‹ค.


2. Convention

ํŒ€ ๋‚ด ํ˜‘์—…์„ ์œ„ํ•ด์„œ๋Š” ์ฝ”๋“œ ์ปจ๋ฒค์…˜์„ ์ •ํ•ด ๋‘๊ณ  ์ด์— ๋”ฐ๋ผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ธ ํ˜‘์—…์— ์ค‘์š”ํ•  ๊ฒƒ์ด๋ผ ํŒ๋‹จํ–ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐฑ์—”๋“œ ํŒ€ ๋‚ด๋ถ€์—์„œ Code Convention์„ ์ง€์ •ํ•˜๊ณ  ๋ฌธ์„œํ™”๋‘์–ด ์ด์— ๋งž์ถฐ ์ž‘์—…ํ–ˆ๋‹ค.

  1. Naming Convention
    ๋ณ€์ˆ˜ ๋ฐ ํ•จ์ˆ˜๋Š” camelCase, ํด๋ž˜์Šค๋Š” PascalCase, url์€ kebab-case๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  2. Git commit Convention
    ์ปค๋ฐ‹ ์‹œ ๋ณ€๊ฒฝ ๋‚ด์šฉ์— ๋”ฐ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํƒ€์ž…์„ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์— ๊ธฐ๋กํ•œ๋‹ค.
    a. feat : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
    b. fix : ๋ฒ„๊ทธ ์ˆ˜์ •
    c. docs : ๋ฌธ์„œ ์ˆ˜์ •
    d. style : ๋ฌธ๋ฒ• ๋ฐ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ˆ˜์ •
    e. refactor : ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
    f. rename : ํŒŒ์ผ๋ช… ๋ฐ ํด๋”๋ช… ์ˆ˜์ •
    g. remove : ํŒŒ์ผ ์‚ญ์ œ
    h. comment : ์ฃผ์„ ์ˆ˜์ • ๋ฐ ์ถ”๊ฐ€
    i. test : ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ถ”๊ฐ€ ๋ฐ ๋ณ€๊ฒฝ

  3. Github Pull Request Convention
    a. ๋ชจ๋“  ์ž‘์—…์€ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ด ์ž‘์—…ํ•˜๊ณ  pull request๋ฅผ ํ†ตํ•ด BE ํŒ€์žฅ์ด ๋ฆฌ๋ทฐํ•œ๋‹ค.
    b. PR ์ž‘์„ฑ ์‹œ ์ •ํ•ด์ง„ ์–‘์‹์— ๋”ฐ๋ฅธ๋‹ค.
    c. PR ๋ฆฌ๋ทฐ ์‹œ ์ด์Šˆ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋„˜๋ฒ„๋ง์„ ์‚ฌ์šฉํ•ด ๋ฌธ์ œ ์ƒํ™ฉ์„ ๊ฐ„๊ฒฐํžˆ ์ „๋‹ฌํ•œ๋‹ค.
    ( 1. Commit Convention Issue / 2. Indentation Issue / 3. Comment Issue / 4. Class Naming Issue / 5. Variable Naming Issue / 6. Code Separation Issue )

  4. Method Naming Conventions for Controller and Service
    Controller์™€ Service์—์„œ ๋ฉ”์„œ๋“œ ๋ช…์€ CRUD-based์˜ ๋™์‚ฌ๋กœ ์‹œ์ž‘ํ•œ๋‹ค.
    : check, get, save, update, delete

  5. DAO and DTO Naming Conventions
    a. ์—”ํ‹ฐํ‹ฐ ๋ช…์€ ๋ชจ๋‘ DAO๋ฅผ ๋ถ™์ธ๋‹ค.
    b. DTO๋Š” ๋‘ ๊ฐ€์ง€ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋‚˜๋ˆˆ๋‹ค : RequestDTO / ResponseDTO

  6. Bean Method Naming Conventions
    Bean ๋‚ด๋ถ€์˜ ๋ฉ”์„œ๋“œ ๋ช…์€ ๋ชจ๋‘ exec๋กœ ํ†ต์ผํ•œ๋‹ค.

  7. Repository Naming Conventions
    ์—”ํ‹ฐํ‹ฐ ๋ช… ๋ฐ”๋กœ ๋’ค์— RepositoryJPA๋ฅผ ๋ถ™์ธ๋‹ค.






๐Ÿ’ก ๊ธฐํš ๐Ÿ’ก


Main ๊ธฐ๋Šฅ

โ€˜์ถ•์ œ ์ •๋ณด ํ™•์ธ ์›น์‚ฌ์ดํŠธโ€™๋กœ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ๊ธฐํš์„ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋‹ˆ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์–ด ๊ทœ๋ชจ๊ฐ€ ๋ถˆ์–ด๋‚ฌ๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ Main์€ ๊ณต์ง€์‚ฌํ•ญ, ๊ณต์—ฐ ํƒ€์ž„ํ…Œ์ด๋ธ”, ๋ถ€์Šค, ์˜ˆ์•ฝ, ์ฃผ๋ฌธ์˜ ๊ธฐ๋Šฅ์ด ํ™•์ •๋˜์—ˆ๋‹ค! :)


1. ๊ณต์ง€์‚ฌํ•ญ
์ถ•์ œ ๊ด€๋ จ ๊ณต์ง€๋ฅผ ํ•œ ๋ฒˆ์— ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€์ด๋‹ค.
(์ถ•์ œ ๊ด€๋ จ ๊ณต์ง€๋Š” ์ดํ•™ ์ธ์Šคํƒ€๊ทธ๋žจ ๊ณ„์ •๋งŒ ์—…๋กœ๋“œํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค๋Š” ์ดํ•™์˜ ์˜๊ฒฌ์— ๋”ฐ๋ผ, ์›นํŽ˜์ด์ง€ Festino ๊ด€๋ จ ๊ณต์ง€๋งŒ ์˜ฌ๋ฆฌ๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค.)


2. ๊ณต์—ฐ ํƒ€์ž„ํ…Œ์ด๋ธ”
์ถ•์ œ ๋‚ ์งœ๋ณ„๋กœ ๋™์•„๋ฆฌ, ์—ฐ์˜ˆ์ธ ๊ณต์—ฐ ์ •๋ณด๋ฅผ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


3. ๋ถ€์Šค
์ฃผ๊ฐ„๋ถ€์Šค, ์•ผ๊ฐ„๋ถ€์Šค[์ฃผ์ ], ํ‘ธ๋“œํŠธ๋Ÿญ, ํŽธ์˜์‹œ์„ค์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€์ด๋‹ค.
์ง€๋„์˜ ๋งˆ์ปค๋กœ ์œ„์น˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , ๋ถ€์Šค๋ณ„ ์ปจ์…‰๊ณผ ๋จน๊ฑฐ๋ฆฌ ๋“ฑ ๋ชจ๋“  ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


4. ์˜ˆ์•ฝ
ํ•™๊ณผ์˜ ์ฃผ์ ์— ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ ์–ด๋‘๊ฑฐ๋‚˜ ์ง์ ‘ ์ค„์„ ์„œ์„œ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ๊ธฐ์กด์˜ ๋ถˆํŽธํ•จ์„ ํ•ด๊ฒฐํ•˜๊ณ ์ž ๋„์ž…ํ•œ ํ…Œ์ด๋ธ”๋ง(์˜ˆ์•ฝ) ์‹œ์Šคํ…œ์ด๋‹ค.
์ด๋ฆ„๊ณผ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์ž…ํ•ด ์ฃผ์ ์— ์˜ˆ์•ฝ์„ ๊ฑธ์–ด๋‘˜ ์ˆ˜ ์žˆ๊ณ , ํ•™๊ณผ๋Š” Admin ํŽ˜์ด์ง€์—์„œ ์˜ˆ์•ฝ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.


5. ์ฃผ๋ฌธ
ํ•™๊ณผ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ์ถ”๊ฐ€ํ•œ ๊ฒƒ์œผ๋กœ, QR์ฝ”๋“œ๋กœ ์ ‘์†ํ•œ ์›นํŽ˜์ด์ง€์—์„œ ํ•™๊ณผ์˜ ๋ฉ”๋‰ด๋ฅผ ํ™•์ธํ•˜๊ณ  ์ฃผ๋ฌธํ•˜๋Š” ๊ธฐ๋Šฅ ๋ฐ ํ•™๊ณผ์˜ ๊ณ„์ขŒ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ํŽ˜์ด์ง€์ด๋‹ค.
์˜ˆ์•ฝ ๊ธฐ๋Šฅ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ํ•™๊ณผ๋Š” Admin ํŽ˜์ด์ง€์—์„œ ์ฃผ๋ฌธ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.




๐Ÿ’ก ํ•™๊ณผ์—์„œ ์˜ˆ์•ฝ ๋ฐ ์ฃผ๋ฌธ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” Admin ํŽ˜์ด์ง€๋Š” ํ•™๊ณผ๋ณ„๋กœ ์ง€์ •๋œ ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•˜๋ฉด ๊ฐ ํ•™๊ณผ์˜ ๋ถ€์Šค ์ •๋ณด, ์˜ˆ์•ฝ, ์ฃผ๋ฌธ์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ๊ธฐํšํ–ˆ๋‹ค.


Admin ๊ธฐ๋Šฅ


1. ๋ถ€์Šค ์ •๋ณด ๊ด€๋ฆฌ
ํ•™๊ณผ์—์„œ ์ง์ ‘ ๋ถ€์Šค ์ด๋ฏธ์ง€, ์„ค๋ช…, ๋ฉ”๋‰ด ๋“ฑ์˜ ์ •๋ณด๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.


2. ์˜ˆ์•ฝ ๊ด€๋ฆฌ

  • Main์—์„œ ์ƒ์„ฑ๋œ ์˜ˆ์•ฝ์„ ํ•™๊ณผ์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ
  • ์˜ˆ์•ฝ ์‹œ ๊ธฐ์žฌ๋œ ์˜ˆ์•ฝ์ž์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
  • ์˜ˆ์•ฝ์ด ๋“ฑ๋ก / ์ทจ์†Œ / ์ž…์žฅ ์ฒ˜๋ฆฌ๋  ๋•Œ ์ž๋™์œผ๋กœ ์˜ˆ์•ฝ์ž์—๊ฒŒ ๋ฉ”์‹œ์ง€ ์ „์†ก


3. ์ฃผ๋ฌธ ๊ด€๋ฆฌ

  • Main์—์„œ ์ƒ์„ฑ๋œ ์ฃผ๋ฌธ์„ ํ•™๊ณผ์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ
  • ํ…Œ์ด๋ธ”๋ณ„ ์ฃผ๋ฌธ ์ง„ํ–‰ ํ˜„ํ™ฉ ์กฐํšŒ, ์ž…๊ธˆ๋Œ€๊ธฐ / ์กฐ๋ฆฌ์ค‘ / ์กฐ๋ฆฌ์™„๋ฃŒ / ์ทจ์†Œ ์ƒํƒœ๋ณ„ ์ฃผ๋ฌธ ์กฐํšŒ
  • ์ฃผ๋ฌธ ์ง„ํ–‰ ์ƒํƒœ ๊ด€๋ฆฌ
  • ๋‚ ์งœ๋ณ„ ์ฃผ๋ฌธ ํ†ต๊ณ„


API / DB ์„ค๊ณ„

์šฐ์„  ํ™•์ •ํ•œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์™€์ด์–ดํ”„๋ ˆ์ž„์„ ์ž‘์„ฑํ•œ ํ›„ API ์„ค๊ณ„๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค.


์—ฌ๋‹ด. ๊ธฐํš ๋‹จ๊ณ„์—์„œ ์žˆ์—ˆ๋˜ ์ž‘์€ ์ด์Šˆ๋“ค

1. ์ดํ•™์ƒํšŒ์™€ ํ˜‘์—… X

์ถ•์ œ๋Š” ์ดํ•™์ƒํšŒ๊ฐ€ ์ฃผ๊ด€ํ•˜๋Š” ํ–‰์‚ฌ์ด๋‹ค ๋ณด๋‹ˆ, ์ดํ•™์ƒํšŒ์™€ ํ˜‘์—…์ด ์ด๋ฃจ์–ด์ง€๋ฉด ์ •๋ณด ์ œ๊ณต ๋“ฑ์ด ์‰ฝ๊ฒŒ ์ด๋ฃจ์–ด์งˆ ๊ฒƒ ๊ฐ™์•„ ์ปจํƒ์„ ์‹œ๋„ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ดํ•™ ์ธก์€ ํ˜‘์—…์„ ํ•˜๊ฒŒ ๋˜๋ฉด ์›น์‚ฌ์ดํŠธ์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์‹œ ์ดํ•™์˜ ์ž˜๋ชป์œผ๋กœ ๋Œ์•„๊ฐˆ ๊ฒƒ์„ ์šฐ๋ คํ•ด ๊ฑฐ์ ˆํ–ˆ๋‹ค.

(์šฐ๋ฆฌ ํ•™๊ต ๋‚ด์—์„œ๋Š” ์„ ๋ก€๊ฐ€ ์—†์„ ๋ฟ๋”๋Ÿฌ, ๋ฏธํŒ… ๋‹น์‹œ์—๋Š” ์™„์ „ํ•œ ๊ฒฐ๊ณผ๋ฌผ์ด ์—†์—ˆ๊ธฐ์— ์‹ ๋ขฐํ•˜๊ธฐ ํž˜๋“ค์—ˆ์„ ๊ฒƒ์ด๋‹ค. ์•„์‰ฝ์ง€๋งŒ ์–ด์ฉ” ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด ์‚ฌ์‹ค์ด๋‹ค.)

์ดํ•™๊ณผ ํ˜‘์—…์€ ์„ฑ์‚ฌ์‹œํ‚ค์ง€ ๋ชปํ–ˆ์ง€๋งŒ, ์ •๋ณด ์ œ๊ณต์ด๋‚˜ ์„œ๋ฒ„๋น„ ์ง€์› ๋“ฑ์˜ ๋„์›€์„ ๋ฐ›์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ผ ๋ฟ์ด๊ธฐ์— ์ œํ•œ์„  ์•ˆ์—์„œ ๊ธฐ์กด์˜ ๊ณ„ํš๋Œ€๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค :)

2. ์ง€์†์ ์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€, ์ดˆ๊ธฐ ๋ชฉํ‘œํ•ด ๋น„ํ•ด ์ปค์ง„ ๊ทœ๋ชจ

์ถ•์ œ ํ”„๋กœ์ ํŠธ๋Š” ๊ฐœ๋ฐœํŒ€์ด ์›ํ•˜๋Š” ๊ธฐ๋Šฅ๋งŒ ๋„ฃ์–ด์„œ ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ถ•์ œ๋ฅผ ์ฆ๊ธฐ๊ณ ์ž ํ•˜๋Š” ํ•™์šฐ๋ถ„๋“ค์˜ ๋‹ˆ์ฆˆ์— ๋งž์ถฐ๊ฐ€์•ผ ํ•œ๋‹ค. ์ด์— ๋”ฐ๋ผ ๊ธฐํš์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ๋„ ์ดˆ๊ธฐ์— ์„ค์ •๋œ ๋ชฉํ‘œ(๋‹จ์ˆœ ์ •๋ณด ์ œ๊ณต)์— ๋”ํ•ด ์™ธ๋ถ€์˜ ์˜๊ฒฌ์ด ์—ฌ๋Ÿฌ ๋ฒˆ ๋”ํ•ด์กŒ๋‹ค.

๊นŒ๋‹ค๋กญ๊ณ  ๊ทœ๋ชจ๊ฐ€ ํฐ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ธ ์ฃผ๋ฌธ ๊ธฐ๋Šฅ๋„ ๊ณผํ•™์ƒํšŒ์˜ ์š”์ฒญ์œผ๋กœ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. ์ฃผ๋ฌธ์„ ํฌํ•จํ•œ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ ๊ธฐํš ํ›„๋ฐ˜๋ถ€ํ„ฐ๋Š” ์ดˆ๊ธฐ ๋ชฉํ‘œ์˜€๋˜ "์ •๋ณด ์ œ๊ณต"์—์„œ ํ•œ ๋‹จ๊ณ„ ๋›ฐ์–ด ์ถ•์ œ์— ํ•„์š”ํ•œ ์ข…ํ•ฉ์ ์ธ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ–‰๋˜์—ˆ๋‹ค.

(๋ฌผ๋ก  ์‚ฌ์šฉ์ž์˜ ์†Œ์ค‘ํ•œ ์˜๊ฒฌ ๋•์— ํญ๋„“์€ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ฒŒ ๋œ ๊ฒƒ์€ ๊ฐ์‚ฌํ•˜๊ฒŒ ์ƒ๊ฐํ•œ๋‹ค! :>)






๐Ÿ’ป ๊ฐœ๋ฐœ ๐Ÿ’ป


ํ”„๋ก ํŠธ์—”๋“œ Vue.js, ๋ฐฑ์—”๋“œ๋Š” SpringBoot๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐœ๋ฐœํ–ˆ๋‹ค.

ํ•„์ž๋Š” ๋ฐฑ์—”๋“œ ํŒ€์›์œผ๋กœ์„œ Admin ๊ณต์ง€์‚ฌํ•ญ / ๊ณต์—ฐ ํƒ€์ž„ํ…Œ์ด๋ธ” / ์ฃผ๋ฌธ ํŒŒํŠธ๋ฅผ ๋‹ด๋‹นํ–ˆ๋‹ค.

๊ฐœ๋ฐœ ๊ด€๋ จ ๋‚ด์šฉ์€ ๋ฐœ์ƒํ–ˆ๋˜ ๋ฌธ์ œ๋ฅผ ์œ„์ฃผ๋กœ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ๋‹ค. (ํ•„์ž๊ฐ€ BE ํŒ€์›์œผ๋กœ์„œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ–ˆ์œผ๋ฏ€๋กœ BE์—์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์— ์น˜์ค‘ํ•˜๊ฒŒ ๋˜๋Š” ์  ์–‘ํ•ด ๋ฐ”๋ž€๋‹ค)


1. ํƒ€์ž„ํ…Œ์ด๋ธ” API ๋ฌดํšจํ™”

admin์˜ ํƒ€์ž„ํ…Œ์ด๋ธ”(์—ฐ์˜ˆ์ธ/๋™์•„๋ฆฌ ๊ณต์—ฐ) ํŒŒํŠธ๋ฅผ ๋‹ด๋‹นํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์™€์ด์–ดํ”„๋ ˆ์ž„์—์„œ admin ์—ฐ์˜ˆ์ธ/๋™์•„๋ฆฌ ๊ณต์—ฐ ๊ด€๋ฆฌ ํŽ˜์ด์ง€๊ฐ€ ์—†์—ˆ๊ณ , ๋””์ž์ธ ์ตœ์ข…๋ณธ์ด ๋‚˜์˜ค๊ณ  ํ•œ์ฐธ ํ›„๊นŒ์ง€๋„ (์‹ฌ์ง€์–ด API ๊ตฌํ˜„์ด ์™„๋ฃŒ๋œ ํ›„์—๋„) ์ธ์ง€ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.

โ†’ admin์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ์—†์ด ์ง์ ‘ DB์— ์ •๋ณด๋ฅผ ๋„ฃ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค.


ํƒ€์ž„ํ…Œ์ด๋ธ” ์—ฐ์˜ˆ์ธ/๋™์•„๋ฆฌ ๊ณต์—ฐ์€ ๊ธฐํšํšŒ์˜ ๋•Œ ๋‚˜์˜จ ๊ฐ„๋žตํ•œ DB ๊ตฌ์กฐ์™€ API๋ฅผ ๋ชจ๋‘ ๋‹ค๋“ฌ๊ณ  ์ˆ˜์ • ํ›„ 10๊ฐœ์˜ API๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์ผ์ฃผ์ผ์ด ๊ฑธ๋ ธ๋‹ค. ์–ด๋ ต์ง€ ์•Š์ง€๋งŒ ์‹œ๊ฐ„์„ ์š”ํ•˜๋Š” ์ž‘์—…์ด์—ˆ๊ธฐ์— ์ผ์ฃผ์ผ์˜ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•œ ๊ฒƒ์ด ๋˜์–ด๋ฒ„๋ ธ๋‹ค.

๊ฐœ๋ฐœ์˜ ์ „์ฒด์ ์ธ ํ‹€์„ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  โ€˜๋‚ด๊ฐ€ ํ•  ์ผโ€™๋กœ ์‹œ์•ผ๋ฅผ ์ขํ˜€๋‘๋Š” ๋ฐ”๋žŒ์— ๋ฐœ์ƒํ•œ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋” ์ฑ…์ž„๊ฐ์„ ๊ฐ€์ง€๊ณ  ๊ผผ๊ผผํžˆ ํ™•์ธํ•ด์•ผ ํ–ˆ๋‹ค.


์ง€๋‚œ PLAY-TINO ํ”„๋กœ์ ํŠธ๋Š” โ€˜๊ธฐํš์—์„œ ์ƒ๋žต๋˜๋ฉด ์ˆ˜์ • ์‹œ๊ฐ„์ด ๊ธธ์–ด์งโ€™์„ ๋ฐฐ์› ๋‹ค๋ฉด, ์ด๋ฒˆ Festino ํ”„๋กœ์ ํŠธ๋Š” โ€˜๊ธฐํš์—์„œ ์ƒ๋žต๋˜๋ฉด ๊ฐœ๋ฐœ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฌดํšจํ™”๋  ์ˆ˜ ์žˆ์Œโ€™์„ ๋ฐฐ์› ๋‹ค.

โ†’ ์™€์ด์–ดํ”„๋ ˆ์ž„ ์ž‘์„ฑ ์‹œ, ํŠนํžˆ ๋‚ด๊ฐ€ ๋‹ด๋‹นํ•œ ํŒŒํŠธ๋Š” ๋„“์€ ์‹œ์•ผ๋กœ ๋ถ€์กฑํ•œ ๊ฒƒ์ด ์—†๋Š”์ง€ ๊ผผ๊ผผํžˆ ์‚ดํŽด ๋ณด๋„๋ก ํ•˜์ž.




2. Save / SaveAll

์ž…๊ธˆ ํ™•์ธ ์‹œ ์กฐ๋ฆฌ(Cook)์„ ์ƒ์„ฑํ•˜๋Š” ๋ฉ”์„œ๋“œ์—์„œ ๋ฌธ์ œ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๋ถ€๋ถ„์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.

๋‹ค์Œ์€ ์ฃผ๋ฌธ(Order)์— ํฌํ•จ๋œ ๋ฉ”๋‰ด ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•ด ์กฐ๋ฆฌ(Cook) ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค.

// Before

    public void exec(OrderDAO orderDAO){
    
        List<Map<String, Object>> menuList = orderDAO.getMenuInfo();

        for (Map<String, Object> menu : menuList){

            CookDAO cookDAO = createCookDAOBean.exec(menu, orderDAO);
            saveCookDAOBean.exec(cookDAO);

        }
    }

์œ„ ๋ฉ”์„œ๋“œ๋Š” for ๋ฐ˜๋ณต๋ฌธ ๋‚ด๋ถ€์—์„œ save ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ ์ด ์žˆ๋‹ค.

  • ์›์ž์„ฑ ๋ณด์žฅX
    • ํ•˜๋‚˜์˜ Order ์ •๋ณด์— ํ•ด๋‹นํ•˜๋Š” ํŠน์ • ๊ฐœ์ˆ˜์˜ Cook์„ ์ƒ์„ฑํ•˜๋Š” ์ž‘์—…์ด๋ฏ€๋กœ for๋ฌธ ๋‚ด์—์„œ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ €์žฅํ•˜๋ฉด โ€˜Cook ์ƒ์„ฑ ์ž‘์—…โ€™์˜ ์›์ž์„ฑ์ด ๋ณด์žฅ๋˜์ง€ ๋ชปํ•œ๋‹ค.
    • ex) menuList์˜ size๊ฐ€ 5๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ์ฒซ ๋ฒˆ์งธ Cook์˜ ์ƒ์„ฑ ๋ฐ ์ €์žฅ์„ ์™„๋ฃŒํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ์ด๋•Œ ๋‘ ๋ฒˆ์งธ Cook์„ ์ƒ์„ฑํ•˜๋Š” ๋„์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋  ๊ฒฝ์šฐ, ํ•œ ๊ฐœ์˜ Cook๋งŒ DB์— ๋ฐ˜์˜๋œ ๊ฒƒ์ด๋ฏ€๋กœ ์›์ž์„ฑ์€ ๊นจ์ง„ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.
  • ๋น„ํšจ์œจ์„ฑ
    • save ๋ฉ”์„œ๋“œ์˜ ๋ฐ˜๋ณต ํ˜ธ์ถœ์ด saveAll ๋ฉ”์„œ๋“œ์˜ ํ˜ธ์ถœ๋ณด๋‹ค ๋น„ํšจ์œจ์ ์ด๋‹ค.
    • ์‚ฌ์‹ค์ƒ saveAll ๋‚ด๋ถ€๋Š” save๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด๊ธฐ์— ๋™์ผํ•˜๋‹ค ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ๋‹ค๋ฆ„
      • save์™€ saveAll์€ @Transactional ์–ด๋…ธํ…Œ์ด์…˜์ด ์žˆ์Œ
      • @Transactional ์€ REQUIRED ๋ฅผ ๊ธฐ๋ณธ ์†์„ฑ์œผ๋กœ ๊ฐ€์ง : ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ์ค‘ ํŠธ๋žœ์žญ์…”๋„ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์ƒˆ๋กœ์šด ํŠธ๋ž™์žญ์…˜์ด ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒ์œ„(๊ธฐ์กด) ํŠธ๋žœ์žญ์…˜์— ํ•ฉ๋ฅ˜๋จ
      • ์ฆ‰, for๋ฌธ์˜ save๋Š” ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ํŠธ๋žœ์žญ์…˜์ด ์ƒ์„ฑ๋˜๋Š”๋ฐ saveAll์˜ save๋Š” ํ˜ธ์ถœ๋˜์–ด๋„ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ๋Œ์•„๊ฐ€๋ฏ€๋กœ ๊ทธ ์‹œ๊ฐ„์  ๋น„์šฉ์—์„œ ์ฐจ์ด๊ฐ€ ๋‚œ๋‹ค!

// After

    public void exec(OrderDAO orderDAO){
    
        List<Map<String, Object>> menuList = orderDAO.getMenuInfo();
        
        // Cook DAO ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ
        List<CookDAO> cookDAOList = new ArrayList<>();

        // menuList์—์„œ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์„œ
        for (Map<String, Object> menu : menuList){

            // ๋ฉ”๋‰ด ์ •๋ณด๋กœ Cook DAO ์ƒ์„ฑ
            CookDAO cookDAO = createCookDAOBean.exec(menu, orderDAO);

            // ์ƒ์„ฑํ•œ Cook DAO ๋ฆฌ์ŠคํŠธ์— ์ ์žฌ
            cookDAOList.add(cookDAO);

        }
        
        // Cook DAO ๋ฆฌ์ŠคํŠธ ์ €์žฅ
        saveCookDAOBean.exec(cookDAOList);
        
    }

โ†’ for ๋ฐ˜๋ณต๋ฌธ ๋‚ด์—์„œ๋Š” ์ฃผ ๋ชฉ์ ์ธ DAO ์ƒ์„ฑ๋งŒ ํ•˜๊ณ , ์ €์žฅํ•  DAO๋Š” List์— ์ ์žฌํ•ด ๋‘์—ˆ๋‹ค๊ฐ€ saveAll ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค.




3. ์กฐ๋ฆฌ์ค‘ ์ฃผ๋ฌธ ์กฐํšŒ : ์ฒ˜๋ฆฌ ์‹œ๊ฐ„

์กฐ๋ฆฌ์ค‘ ์ฃผ๋ฌธ ์กฐํšŒ API ํ˜ธ์ถœ ์‹œ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๊ฝค ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.

์กฐ๋ฆฌ์ค‘ ์ฃผ๋ฌธ ์กฐํšŒ๋Š” ๊ฐ ๋ฉ”๋‰ด๋ณ„๋กœ ์กฐ๋ฆฌ(Cook)์„ ์กฐํšŒํ•ด ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์ธ๋ฐ, ์ด๋•Œ ํ…Œ์ด๋ธ”๋ฒˆํ˜ธ(tableNum)์„ ํ•จ๊ป˜ ์‘๋‹ต์œผ๋กœ ๋ณด๋‚ด์ค˜์•ผ ํ•˜๊ธฐ์— ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์—์„œ ํ…Œ์ด๋ธ”๋ฒˆํ˜ธ๋ฅผ ์กฐํšŒํ•ด์„œ ๋ณด๋‚ด๋Š” ๋กœ์ง์ด์—ˆ๋‹ค. ์ด๊ฒƒ์ด ์ฒ˜๋ฆฌ์‹œ๊ฐ„์— ์˜ํ–ฅ์„ ๋งŽ์ด ๋ฏธ์ณค์„ ๊ฒƒ์ด๋ผ ํŒ๋‹จ, ์ˆ˜์ •ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

์• ์ดˆ์— ์กฐ๋ฆฌ(Cook) ์ƒ์„ฑ ์‹œ์— tableNum ํ•„๋“œ์— ํ…Œ์ด๋ธ” ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•ด๋‘๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค.


๊ธฐ์กด์—๋Š” ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ์กฐ๋ฆฌ(Cook)์—์„œ ๊ฐ๊ฐ ํ…Œ์ด๋ธ” ๋ฒˆํ˜ธ๋ฅผ ์กฐํšŒํ•ด์•ผ ํ–ˆ๋Š”๋ฐ, ๊ทธ ์ž‘์—…์ด ์‚ฌ๋ผ์ง€๋‹ˆ ํ›จ์”ฌ ํšจ์œจ์ ์ด๋‹ค. Entity์— ํ•„์š”ํ•œ ์ •๋ณด๋งŒ ๋‚จ๊ธฐ๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜๋‚˜, ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ์œ„ํ•ด ๋ถˆํ•„์š”ํ•œ ์กฐํšŒ ์ž‘์—…์„ ์ค„์ด๋Š” ๊ฒƒ๋„ ๋งค์šฐ ์ค‘์š”ํ•จ์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋А๊ผˆ๋‹ค.




4. menuId ์ถ”๊ฐ€ : ์กฐ๋ฆฌ์™€ ๋ฉ”๋‰ด์˜ ๊ด€๊ณ„

์ฃผ๋ฌธ(Order)๋กœ๋ถ€ํ„ฐ ์กฐ๋ฆฌ(Cook)์ด ๋งŒ๋“ค์–ด์ง„๋‹ค. ํŒ€์› ๊ฐ„ ์˜๊ฒฌ ์กฐ์œจ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ, ์ฃผ๋ฌธ๊ณผ ์กฐ๋ฆฌ ๋ชจ๋‘ ๋ฉ”๋‰ด๋Š” ์•„์ด๋”” ์—†์ด ์ด๋ฆ„์œผ๋กœ๋งŒ ๋‹ค๋ฃจ๊ณ , ์กฐํšŒํ•  ๋•Œ์—๋„ ๋ฉ”๋‰ด ์ด๋ฆ„์„ ๊ธฐ์ค€์œผ๋กœ ์กฐํšŒํ•œ๋‹ค. ์ฆ‰, ๊ตณ์ด menuId๋ฅผ ์ €์žฅํ•ด๋‘๊ณ  ๋ฉ”๋‰ด๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฉ”๋‰ด-์ฃผ๋ฌธ, ๋ฉ”๋‰ด-์กฐ๋ฆฌ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ  menuName์„ ์ €์žฅํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

โ†’ ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฐฉ์‹์˜ ๋ฌธ์ œ์ ์ด ๋งŽ์ด ๋ฐœ๊ฒฌ๋˜์–ด ์ˆ˜์ •ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

๋ฌธ์ œ1. ํ†ต๊ณ„

๋ฉ”๋‰ด ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๊ธฐ์กด์˜ ์ด๋ฆ„์œผ๋กœ ์ €์žฅ๋œ ์กฐ๋ฆฌ(Cook)์€ ํ†ต๊ณ„์— ํฌํ•จ์ด ์•ˆ ๋œ๋‹ค.

๋ฉ”๋‰ด ์ด๋ฆ„์ด ๋™์ผํ•˜๋ฉด ํ•ด๋‹น ํ•™๊ณผ์˜ ์กฐ๋ฆฌ(Cook)์ด ์•„๋‹Œ๋ฐ๋„ ํ†ต๊ณ„์— ํฌํ•จ๋œ๋‹ค. โ†’ ์–˜๋Š” ํ•™๊ณผ๋ณ„ DB ๋ถ„๋ฆฌ๊ฐ€ ์•ˆ ๋˜์–ด ์žˆ์–ด์„œ ๊ทธ๋Ÿฐ ๊ฒƒ์ด๊ธฐ๋„ ํ•˜์ง€๋งŒ, ๋™์ผ ํ•™๊ณผ์—์„œ ๊ฐ™์€ ์ด๋ฆ„์˜ ๋‹ค๋ฅธ ๋ฉ”๋‰ด๋ฅผ ๋‘๋Š” ๊ฒฝ์šฐ๋„ ์ƒ๊ฐํ•œ๋‹ค๋ฉด ๋ฌธ์ œ๊ฐ€ ๋งž๋‹ค!

๋ฌธ์ œ2. ์กฐ๋ฆฌ์ค‘ ์ฃผ๋ฌธ ์กฐํšŒ

๋ฉ”๋‰ด ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๊ธฐ์กด์˜ ์ด๋ฆ„์œผ๋กœ ์ €์žฅ๋œ ์กฐ๋ฆฌ(Cook)์€ ์กฐ๋ฆฌ์ค‘ ์ฃผ๋ฌธ ์กฐํšŒ ์‹œ ์กฐํšŒ๋˜์ง€ ์•Š๋Š”๋‹ค.

(+) ๋ฉ”๋‰ด๊ฐ€ ์‚ญ์ œ๋˜๋Š” ๊ฒฝ์šฐ๋„ ๊ณ ๋ คํ•ด soft-delete๋œ ๋ฉ”๋‰ด์— ๋Œ€ํ•ด์„œ๋„ ํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ์ด๋Š” ํ’ˆ์ ˆ์ด๋ผ๋Š” ์˜ต์…˜์ด ์žˆ๊ธฐ์— ๋ถˆํ•„์š”ํ•˜๋‹ค ํŒ๋‹จํ–ˆ๋‹ค.


ํ•ด๊ฒฐ

์ฃผ๋ฌธ ์ž์ฒด์˜ ๋ฉ”๋‰ด ์ •๋ณด๋ฅผ ๋ณด๊ธฐ ์œ„ํ•œ API์˜ ๋กœ์ง์€ ๊ทธ๋Œ€๋กœ ๋‚จ๊ฒจ, ์ฆ‰ menuName์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ฐ€ ๊ทธ๋Œ€๋กœ ๋ณด์—ฌ์ค€๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ํ†ต๊ณ„&์กฐ๋ฆฌ์ค‘ ์ฃผ๋ฌธ ์กฐํšŒ API๋Š” Cook์„ ์กฐ๋ฆฌํ•  ๋•Œ menuName์ด ์•„๋‹Œ menuId๋กœ ์กฐํšŒํ•œ๋‹ค.

์ด ๋ฐฉ์•ˆ์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •์ด ํ•„์š”ํ–ˆ๋‹ค.

Order ์ƒ์„ฑ ์‹œ ๋ฉ”๋‰ด ์ •๋ณด๋ฅผ ๋‹ด๋Š” Map์— menuId๋„ ํ•จ๊ป˜ ์ €์žฅํ•˜๋„๋ก, Cook ์ƒ์„ฑ ์‹œ์—๋„ Order์˜ ๋ฉ”๋‰ด์•„์ด๋””๋ฅผ ๋ฐ›์•„์„œ ํ•˜๋‚˜์˜ ํ•„๋“œ๋กœ ์ €์žฅํ•˜๋„๋ก. ๋Œ€์‹  Cook์—์„œ๋Š” ๊ธฐ์กด์˜ menuName ํ•„๋“œ๋ฅผ ์ œ๊ฑฐ.


๊ณ ์ฐฐ

์‚ฌ์‹ค ๋ฌธ์ œ1 : ํ†ต๊ณ„ ์–˜๊ธฐ๊นŒ์ง€๋งŒ ๋‚˜์™”์„ ๋•Œ์—๋„ ๊ธฐ์กด ๋กœ์ง์„ ์œ ์ง€ํ•˜๋ ค๊ณ  ํ–ˆ์—ˆ๋‹ค. ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์— ๋น„ํ•ด ์ˆ˜์ •์‚ฌํ•ญ์ด ๋น„๋Œ€ํ•˜๋‹ค๋Š” BEํŒ€์žฅ๋‹˜์˜ ํŒ๋‹จ ํ•˜์— ๊ทธ๋Ÿฌํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์กฐ๋ฆฌ์ค‘ ์ฃผ๋ฌธ ์กฐํšŒ API์˜ ๋ฌธ์ œ๋Š” ๊ทธ๋ƒฅ ๋‘˜ ์ˆ˜ ์—†์–ด์„œ ์ˆ˜์ •ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ๋ง‰์ƒ ์ˆ˜์ •์‚ฌํ•ญ์„ ์ •๋ฆฌํ•˜๋‹ˆ ๊ณ ์น  ๊ฑด ๊ทธ๋ ‡๊ฒŒ๋‚˜ ๋งŽ์ง€๋Š” ์•Š์•˜๋‹ค.

๋ถˆํ•„์š”ํ•œ ๊ด€๊ณ„๋ฅผ ๋‘์ง€ ์•Š์ž๋Š” ์˜๋„์— ๋”ฐ๋ผ ๊ฒฐ์ •ํ•œ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•จ์— ๋”ฐ๋ผ ์ˆ˜์ •๋˜์—ˆ๋‹ค. ์•ž์œผ๋กœ๋„ โ€œ๊ด€๊ณ„๋ฅผ ๋‘์ง€ ์•Š๋Š”๋‹ค.โ€, โ€œ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์˜ ์ •๋„โ€, โ€œํ•ด๊ฒฐ์— ๋“œ๋Š” ์‹œ๊ฐ„์  ๋น„์šฉโ€์„ ์ ์ ˆํžˆ ๊ณ ๋ คํ•ด ์ตœ์„ ์˜ ๋ฐฉ์•ˆ์„ ์„ ํƒํ•  ํ•„์š”๊ฐ€ ์žˆ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.






๐Ÿ“ข ํ™๋ณด ๐Ÿ“ข


์˜จ๋ผ์ธ ํ™๋ณด

์ธ์Šคํƒ€๊ทธ๋žจ, ๋Œ€ํ•™์ƒ ์ปค๋ฎค๋‹ˆํ‹ฐ ์—๋ธŒ๋ฆฌํƒ€์ž„ ์œผ๋กœ ์›น์‚ฌ์ดํŠธ ํ™๋ณด๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค.
์‹ค์ œ๋กœ ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ณต๊ฐœํ•˜๊ธฐ ์ „, ์ธ์Šคํƒ€๊ทธ๋žจ๊ณผ ์—๋ธŒ๋ฆฌํƒ€์ž„์œผ๋กœ ํ‹ฐ์ €๋ฅผ ์˜ฌ๋ ธ๋Š”๋ฐ ๋ฐ˜์‘์ด ๋งค์šฐ ๋œจ๊ฑฐ์› ๋‹ค!!โค๏ธโ€๐Ÿ”ฅ

24๋…„ ํ•˜๋ฐ˜๊ธฐ์˜ 3๋ฒˆ์งธ BEST ๊ฒŒ์‹œ๊ธ€์ด ๋˜๋Š” ์˜๊ด‘์Šค๋Ÿฌ์šด ์ผ๋„ ์žˆ์—ˆ๋‹ค :)



์˜คํ”„๋ผ์ธ ํ™๋ณด

์˜คํ”„๋ผ์ธ ํ™๋ณด๋Š” ํฌ์Šคํ„ฐ๋ฅผ ์ œ์ž‘ํ•ด ๊ต๋‚ด ๊ณณ๊ณณ์— ๋ถ€์ฐฉํ–ˆ๋‹ค!
์ตœ๋Œ€ํ•œ ๋งŽ์€ ํ•™์šฐ๋ถ„๋“ค์ด ํฌ์Šคํ„ฐ๋กœ ์›น์‚ฌ์ดํŠธ๋ฅผ ์ ‘ํ•˜์‹ค ์ˆ˜ ์žˆ๋„๋ก ๋ˆˆ์— ์ž˜ ๋„๋Š” ๊ฒŒ์‹œํŒ๋งˆ๋‹ค ๊ผผ๊ผผํžˆ ๋ถ™์—ฌ ๋‘์—ˆ๋‹ค :)






๐Ÿšจ ๋ฐฐํฌ ํ›„ ์ด์Šˆ ๐Ÿšจ


์ถ•์ œ ๋‹น์ผ์ด ๋˜๊ธฐ ์ „๊นŒ์ง€๋„ ์•ฝ 2~3์ฃผ ๊ฐ„ ์ˆ˜๋„ ์—†์ด ๋งŽ์€ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณ ๋ฒ„๊ทธํ”ฝ์Šค๋ฅผ ํ–ˆ์ง€๋งŒ ๊ฒฐ๊ตญ ๋‹น์ผ์—๋„ ๋ฌธ์ œ๋Š” ๋ฐœ๊ฒฌ๋˜์—ˆ๋‹ค. ์ ˆ๋Œ€ ์™„๋ฒฝํ•˜๋‹ค๊ณ  ํ™•์‹ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด ์†Œํ”„ํŠธ์›จ์–ด์ด๊ธฐ์— ๋‹น์—ฐํ•œ ์ผ์ด์ง€๋งŒ, ์‹ฌ์ ์ธ ์••๋ฐ•๊ฐ์€ ์–ด์ฉ” ์ˆ˜ ์—†์ด ๋”ฐ๋ผ์™”๋‹ค...๐Ÿฅฒ

1. ํŠน์ • ์ฃผ๋ฌธ์ด ์ค‘๋ณต ์ƒ์„ฑ๋˜๋Š” ๋ฌธ์ œ

ํ•˜๋‚˜๋งŒ ์ƒ์„ฑ๋˜์–ด์•ผ ํ•˜๋Š” ์ฃผ๋ฌธ์ด ๋™์‹œ์— 3๊ฐœ์”ฉ ์ƒ์„ฑ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.
ํ™•์ธํ•ด ๋ณด๋‹ˆ '์ž…๊ธˆ ์™„๋ฃŒ' ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ  API ์š”์ฒญ์ด ์™„๋ฃŒ๋˜๊ธฐ๊นŒ์ง€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š”๋ฐ, ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ๋ฒ„ํŠผ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ˆ„๋ฅด๋ฉด ๋ˆ„๋ฅธ๋งŒํผ ์š”์ฒญ์ด ๋ณด๋‚ด์ง„ ๊ฒƒ์ด์—ˆ๋‹ค.

์ด๋Š” ํ•˜๋‚˜์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ๋ฒ„ํŠผ์ด ๋ˆŒ๋ฆฌ์ง€ ์•Š๋„๋ก ์ˆ˜์ •ํ•ด ํ•ด๊ฒฐํ–ˆ๋‹ค.

2. ์˜ˆ์•ฝ ๋ฒˆํ˜ธ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ

Main์—์„œ ๋ถ€์Šค ์˜ˆ์•ฝ ์‹œ ํ‘œ์‹œ๋˜๋Š” ์˜ˆ์•ฝ ๋Œ€๊ธฐ ํŒ€ ์ˆ˜์™€ Admin์—์„œ ํ‘œ์‹œ๋˜๋Š” ์‹ค์ œ ์˜ˆ์•ฝ ๋Œ€๊ธฐ ํŒ€ ์ˆ˜๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

์ด๋Š” ์ถ•์ œ ๋‘ ๋ฒˆ์งธ ๋‚ ์— ๋ฐœ๊ฒฌ๋˜์—ˆ๋Š”๋ฐ, ํ™•์ธํ•ด ๋ณด๋‹ˆ ์ „๋‚ ์— ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ (์˜ˆ์•ฝ ๋Œ€๊ธฐ ์ƒํƒœ์ธ) ์˜ˆ์•ฝ๋“ค์ด ๋‚จ์•„ ์žˆ์–ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ž„์„ ํ™•์ธํ–ˆ๋‹ค.

๋ฌธ์ œ ํŒŒ์•… ์‹œ์ ์—๋Š” ์ด๋ฏธ ๋ถ€์Šค๊ฐ€ ์šด์˜๋˜๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์ด๋ผ ๋กœ์ง์„ ์ˆ˜์ •ํ•˜๊ธฐ์— ์ ์ ˆํ•˜์ง€ ์•Š์•˜๊ธฐ์—, ์•„์ง ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ์˜ˆ์•ฝ๋“ค์„ ์ง์ ‘ ์™„๋ฃŒ ์ƒํƒœ๋กœ ๋ณ€๊ฒฝํ•จ์œผ๋กœ์จ ์ž„์‹œ๋กœ ํ•ด๊ฒฐํ–ˆ๋‹ค.


โ†’ ์œ„์™€ ๊ฐ™์€ ์ด์Šˆ๋“ค์ด ์žˆ์—ˆ์ง€๋งŒ, ์‚ฌ๊ณ ๋ผ ํ•  ๋งŒํผ์˜ ํฐ ๋ฌธ์ œ๋Š” ํ„ฐ์ง€์ง€ ์•Š์•„ ๊ฐœ์ธ์ ์œผ๋กœ๋Š” ๋‹คํ–‰์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค!๐Ÿ˜Ž (๋ฌผ๋ก  ์ด๋Š” ์ง€์†์ ์ธ ํ…Œ์ŠคํŠธ์™€ ์—ฌ๋Ÿฌ ์ƒํ™ฉ์— ๋Œ€ํ•œ ๋Œ€๋น„์— ํž˜์จ์ค€ ๋ชจ๋“  ํŒ€์›๋“ค ๋•์ด๋‹ค)






๐Ÿ† ํ”„๋กœ์ ํŠธ ์„ฑ๊ณผ ๐Ÿ†


์œ„๋Š” ์ถ•์ œ ์ฒซ๋‚ ์ธ 9์›” 11์ผ์˜ ํ†ต๊ณ„์ด๋ฉฐ, ์„œ๋น„์Šค๊ฐ€ ์ด๋ฃจ์–ด์ง„ 5์ผ(9/9 ~ 9/13) ๊ฐ„์˜ ์ตœ์ข…์ ์ธ ํ†ต๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๐Ÿ“Š
๋ˆ„์  ์‚ฌ์šฉ์ž์ˆ˜ 3091๋ช…
๋ˆ„์  ์ „์ฒด ์กฐํšŒ์ˆ˜ 80357ํšŒ

๋ˆ„์  ์ „์ฒด ์˜ˆ์•ฝ ๊ฑด์ˆ˜ 72๊ฑด
๋ˆ„์  ์ „์ฒด ์ฃผ๋ฌธ ๊ฑด์ˆ˜ 1308๊ฑด

๐Ÿ”ฅ๊ฒฐ๋ก ์ ์œผ๋กœ ์•ฝ 3์ฒœ ๋ช…์˜ ์‚ฌ์šฉ์ž ์ˆ˜, 8๋งŒ ํšŒ์˜ ์กฐํšŒ ์ˆ˜๋ฅผ ๋‹ฌ์„ฑํ–ˆ๊ณ , ์•ฝ 1,300 ๊ฑด์˜ ์ฃผ๋ฌธ์„ ๋ฐ›์•˜๋‹ค!!๐Ÿ”ฅ
์•ฝ 7์ฒœ ๋ช…์˜ ์žฌํ•™์ƒ ์ˆ˜ ๋Œ€๋น„ 10๋ฐฐ๊ฐ€ ๋„˜๋Š” ์กฐํšŒ ์ˆ˜๋ฅผ ๋‹ฌ์„ฑํ•œ ๊ฒƒ์ด ๋ฟŒ๋“ฏํ•˜๊ณ , ๊ฐ’์ง„ ๊ฒฝํ—˜์„ ์–ป์€ ๊ฒƒ ๊ฐ™์•„ ๊ต‰์žฅํžˆ ๋งŒ์กฑ์Šค๋Ÿฝ๋‹ค! ๐Ÿ˜Š






๐Ÿ˜“ ์•„์‰ฌ์šด ์  ๐Ÿฅฒ


์ดํ•™๊ณผ ํ˜‘์—… X

  • ์—ฐ์˜ˆ์ธ ๊ณต์—ฐ ์ •๋ณด X
    : ์ดํ•™์ƒํšŒ์™€ ๊ธฐํš์‚ฌ์—์„œ ๊ณ„์•ฝ ์‹œ, ์—ฐ์˜ˆ์ธ ๊ณต์—ฐ ๊ด€๋ จ ์ •๋ณด๋Š” ์ดํ•™์ƒํšŒ ์ธ์Šคํƒ€๊ทธ๋žจ์„ ํ†ตํ•ด์„œ๋งŒ ๊ฒŒ์žฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‚ด์šฉ์ด ํฌํ•จ๋˜์–ด ์žˆ์—ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ Festino ์›น์‚ฌ์ดํŠธ์—์„œ ์—ฐ์˜ˆ์ธ ๊ณต์—ฐ ์ •๋ณด๋ฅผ ์ œ์™ธํ•œ ๋™์•„๋ฆฌ ๊ณต์—ฐ ์ •๋ณด๋งŒ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , '์ดํ•™์ƒํšŒ ์ธ์Šคํƒ€๊ทธ๋žจ ๋ฐ”๋กœ๊ฐ€๊ธฐ' ๋ฒ„ํŠผ์„ ๋‘๋Š” ์ •๋„๋กœ ๋งˆ๋ฌด๋ฆฌ๋˜์—ˆ๋‹ค.
  • ๊ณต์ง€์‚ฌํ•ญ X
    : ์ดํ•™์ƒํšŒ๊ฐ€ ์ž‘์„ฑํ•ด ์ดํ•™์ƒํšŒ ์ธ์Šคํƒ€๊ทธ๋žจ์— ์—…๋กœ๋“œ๋œ ๊ธ€์ด Festino ์›น์‚ฌ์ดํŠธ์—๋„ ๊ฒŒ์žฌ๋œ๋‹ค๋ฉด ํ•™์šฐ๋“ค์˜ ํ˜ผ๋ž€์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ดํ•™์ƒํšŒ์˜ ์šฐ๋ ค์— ๊ณต์ง€์‚ฌํ•ญ ๊ธฐ๋Šฅ์ด ์‚ฌ์‹ค์ƒ ์ค‘์‹ฌ์„ ์žƒ์—ˆ๋‹ค.

โ†’ ์‚ฌ์‹ค์ƒ ์ฒ˜์Œ์— ์ƒ๊ฐํ–ˆ๋˜ "ํ•˜๋‚˜์˜ ์›น์‚ฌ์ดํŠธ์—์„œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์‰ฝ๊ณ  ํŽธ๋ฆฌํ•˜๊ฒŒ ๋ณด์ž!" ๋ผ๋Š” ๋ชฉํ‘œ๋ฅผ ์˜จ์ „ํ•˜๊ฒŒ ๋‹ฌ์„ฑํ•˜์ง€๋Š” ๋ชปํ–ˆ๋‹ค. ์ดํ•™์ƒํšŒ์™€ ํ˜‘์—…์ด ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•„ ๊ทธ๋ ‡๊ฒŒ ๋œ ์ ์—์„œ ์•„์‰ฌ์›€์ด ๋งŽ์ด ๋‚จ๋Š”๋‹ค.

๋ฆฌํŒฉํ† ๋ง

  • ์ผ์ •์ด ๋‹น๊ฒจ์ง์— ๋”ฐ๋ผ ๋ฆฌํŒฉํ† ๋ง X
    : ์ถ•์ œ ๊ธฐ๊ฐ„์„ ์˜ˆ์ƒํ–ˆ๋˜ 9์›” 3~4์ฃผ์ฐจ์— ์ถ”์„ ์—ฐํœด๊ฐ€ ๊ฑธ์นจ์— ๋”ฐ๋ผ ์ถ•์ œ๊ฐ€ 9์›” 2์ฃผ์ฐจ๋กœ ํ‰์†Œ๋ณด๋‹ค ์•ž๋‹น๊ฒจ ์ง„ํ–‰๋˜์—ˆ๊ณ , ์˜ˆ์ƒ ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์ด ์•ฝ ์ผ์ฃผ์ผ ์ถ•์†Œ๋˜์—ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ ๊ธฐํšํ–ˆ๋˜ ์ „์ฒด ๋ฆฌํŒฉํ† ๋ง์€ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ–ˆ๊ธฐ์— ์•„์‰ฌ์›€์ด ๋‚จ๋Š”๋‹ค.
  • ํŠนํžˆ, Converter
    : Map ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ DB์—์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ง๋ ฌํ™”/์—ญ์ง๋ ฌํ™”ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์—ˆ๋‹ค. ๋ง‰๊ฐ„์— ์ง„ํ–‰ํ•œ ๋ฆฌํŒฉํ† ๋ง ๊ณผ์ • ์ค‘ ๊ธ‰ํ•˜๊ฒŒ ์‚ฝ์ž…ํ•œ DTO๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ์ œ๋Œ€๋กœ ๋ณ€ํ™˜๋˜์ง€ ๋ชปํ•œ ๋ฐ์ดํ„ฐ๋กœ ์ธํ•œ ๊ฒƒ์ด์—ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ Converter๋ฅผ ์‚ฌ์šฉํ•ด String์œผ๋กœ ์šฐ์„  ๋ณ€ํ™˜ ํ›„ ๋‹ค์‹œ Map์œผ๋กœ ๋งคํ•‘ํ•˜๋Š” ๋กœ์ง์„ ์‚ฌ์šฉํ•ด ํ•ด๊ฒฐํ–ˆ์œผ๋‚˜, ๋” ๊น”๋”ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„ ์•„์‰ฌ์›€์ด ๋‚จ๋Š”๋‹ค.





๐Ÿซง ๋งˆ์น˜๋ฉฐ


์ด๋ ‡๊ฒŒ ๋‘ ๋‹ฌ ๋ฐ˜์ด๋ผ๋Š”, ๊ธธ์ง€๋งŒ ์ด‰๋ฐ•ํ–ˆ๋˜ ์‹œ๊ฐ„์ด ๋ชจ๋‘ ์ง€๋‚˜๊ฐ”๋‹ค :>
์•ž์„œ ์งš์€ ๊ฒƒ์ฒ˜๋Ÿผ ์•„์‰ฌ์šด ์ ๋„ ์žˆ์—ˆ์ง€๋งŒ, ๊ฒฐ๊ณผ๋„ ๋งŒ์กฑ์Šค๋Ÿฝ๊ณ , ๋ถ„๋ช…ํžˆ ๊ฐ’์ง„ ๊ฒฝํ—˜์„ ๋งŒ๋“ค์–ด์ค€ ํ”„๋กœ์ ํŠธ์˜€๋‹ค.
์ด๋ฒˆ์— ์•„์‰ฌ์› ๋˜ ์ ๋“ค์€ ๊ธฐํšŒ๊ฐ€ ๋œ๋‹ค๋ฉด ๋‹ค์Œ ํ•ด ๋Œ€๋™์ œ์—์„œ ๋ฆฌํŒฉํ† ๋ง์„ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ฐ˜์˜ํ•ด ๋ฐœ์ „์‹œํ‚จ๋‹ค๋ฉด ๋”์šฑ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค!๐Ÿ˜Š

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

comment-user-thumbnail
2026๋…„ 1์›” 19์ผ

์•ˆ๋…•ํ•˜์„ธ์š”! ๋ธ”๋กœ๊ทธ ๋„ˆ๋ฌด ์ž˜ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹คใ…Žใ…Ž
์ €๋„ ์˜ฌํ•ด ์ €ํฌ ํ•™๊ต ์ถ•์ œ ์•ฑ ๊ฐœ๋ฐœ์„ ๋ชฉํ‘œ์ค‘์ธ๋ฐ ๋ธ”๋กœ๊ทธ๋ฅผ ๋ณด๊ณ ๋‚˜๋‹ˆ ๋„ˆ๋ฌด ์ž˜ ์ฝํ˜€์„œ ๊นƒํ—ˆ๋ธŒ๋ž‘ erd ๊ตฌ์„ฑ๋„ ๊ถ๊ธˆํ•ด์กŒ์Šต๋‹ˆ๋‹ค..! ํ˜น์‹œ ๋ณด์—ฌ์ฃผ์‹ค ์ˆ˜ ์žˆ์œผ์‹ ์ง€ ์—ฌ์ญค๋ด…๋‹ˆ๋‹คโ˜บ๏ธ

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