Requirement - NuBiFoRMs/order-backend GitHub Wiki

๊ณ ๊ฐ, ์ฃผ๋ฌธ๊ด€๋ฆฌ RestFul Back-End API ๊ฐœ๋ฐœ๊ณผ์ œ

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

  • ํด๋ผ์ด์–ธํŠธ(ios, android, web app)์—์„œ ์‚ฌ์šฉํ•  ๋‹ค์Œ API๋ฅผ ๊ฐœ๋ฐœํ•˜์„ธ์š”.

    • ๋‹ค์Œ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์ฐธ๊ณ 

    ํšŒ์›์†์„ฑ

    ์†์„ฑ ๊ธธ์ด ํ•„์ˆ˜์—ฌ๋ถ€ ๊ฐ’์˜์ œ์•ฝ
    ์ด๋ฆ„ 20 ํ•„์ˆ˜ ํ•œ๊ธ€, ์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋งŒ ํ—ˆ์šฉ
    ๋ณ„๋ช… 30 ํ•„์ˆ˜ ์˜๋ฌธ ์†Œ๋ฌธ์ž๋งŒ ํ—ˆ์šฉ
    ๋น„๋ฐ€๋ฒˆํ˜ธ ์ตœ์†Œ 10์ž ์ด์ƒ ํ•„์ˆ˜ ์˜๋ฌธ ๋Œ€๋ฌธ์ž, ์˜๋ฌธ ์†Œ๋ฌธ์ž, ํŠน์ˆ˜ ๋ฌธ์ž, ์ˆซ์ž ๊ฐ 1๊ฐœ ์ด์ƒ์”ฉ ํฌํ•จ
    ์ „ํ™”๋ฒˆํ˜ธ 20 ํ•„์ˆ˜ ์ˆซ์ž
    ์ด๋ฉ”์ผ 100 ํ•„์ˆ˜ ์ด๋ฉ”์ผ ํ˜•์‹
    ์„ฑ๋ณ„ ์„ ํƒ

    ์ฃผ๋ฌธ์†์„ฑ

    ์†์„ฑ ๊ธธ์ด ํ•„์ˆ˜์—ฌ๋ถ€ ๊ฐ’์˜์ œ์•ฝ
    ์ฃผ๋ฌธ๋ฒˆํ˜ธ 12 ํ•„์ˆ˜ ์ค‘๋ณต์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ž„์˜์˜ ์˜๋ฌธ ๋Œ€๋ฌธ์ž, ์ˆซ์ž ์กฐํ•ฉ
    ์ œํ’ˆ๋ช… 100 ํ•„์ˆ˜ emoji ๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ๋ฌธ์ž
    ๊ฒฐ์ œ์ผ์‹œ Datetime ํ•„์ˆ˜ Timezone ์„ ๊ณ ๋ คํ•œ ์‹œ๊ฐ„ ์ •๋ณด
    • ํšŒ์› ๊ฐ€์ž…
    • ํšŒ์› ๋กœ๊ทธ์ธ(์ธ์ฆ)
    • ํšŒ์› ๋กœ๊ทธ์•„์›ƒ
    • ๋‹จ์ผ ํšŒ์› ์ƒ์„ธ ์ •๋ณด ์กฐํšŒ
    • ๋‹จ์ผ ํšŒ์›์˜ ์ฃผ๋ฌธ ๋ชฉ๋ก ์กฐํšŒ
    • ์—ฌ๋Ÿฌ ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ :
      • ํŽ˜์ด์ง€๋„ค์ด์…˜์œผ๋กœ ์ผ์ • ๋‹จ์œ„๋กœ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
      • ์ด๋ฆ„, ์ด๋ฉ”์ผ์„ ์ด์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
      • ๊ฐ ํšŒ์›์˜ ๋งˆ์ง€๋ง‰ ์ฃผ๋ฌธ ์ •๋ณด
  • API๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” MySQL์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

    • MySQL ์—”์ง„์€ innodb๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • MySQL์€ ์“ฐ๊ธฐ ์ „์šฉ ์„œ๋ฒ„์™€ ์ฝ๊ธฐ ์ „์šฉ ์„œ๋ฒ„๋กœ replication ์„ค์ •์ด ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • MySQL์„ ๊ตฌ์„ฑํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ” ์„ค๊ณ„๋Š” ํšŒ์› ์†์„ฑ์„ ์ถฉ์กฑํ•œ๋‹ค๋ฉด ์ž์œ ๋กญ๊ฒŒ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์ฟผ๋ฆฌ๋ฌธ๋„ ์†Œ์Šค์ฝ”๋“œ์— ํฌํ•จํ•ด์„œ ์ œ์ถœํ•ด ์ฃผ์„ธ์š”.

  • ์ƒ์—…์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด ์‚ฌ์šฉ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • ์œ„ ํ•ญ๋ชฉ์„ ๋ชจ๋‘ ๊ฐœ๋ฐœํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„๊นŒ์ง€ ์ˆ˜ํ–‰ํ•œ ํ›„ ์ œ์ถœํ•ด ์ฃผ์„ธ์š”.

  • ์†Œ์Šค์ฝ”๋“œ๋Š” github, bitbucket, gitlab ๋“ฑ์˜ ๋งํฌ๋กœ ์ œ์ถœํ•ด ์ฃผ์„ธ์š”.

Java ๊ณผ์ œ

  • ์œ„ ์š”๊ตฌ ์‚ฌํ•ญ์„ java์™€ Spring-boot๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•ด ์ฃผ์„ธ์š”.
  • Spring-boot 2.3 ์ด์ƒ ์ด์šฉํ•˜์—ฌ ์ฃผ์„ธ์š”.
  • Gradle์„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.
  • API๋ฌธ์„œ๋Š” Swagger-ui๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๊ณตํ•ด ์ฃผ์„ธ์š”.
  • ์ด์™ธ ํ”„๋ ˆ์ž„์›Œํฌ ์„ ํƒ์€ ์ž์œ ๋กญ๊ฒŒ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.