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


์‹ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ํ”„๋กœ์„ธ์Šค

  1. ์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘ ๋ฐ ๋ถ„์„
  2. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง
  3. ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž์™€ API ํ˜‘์˜ ๋ฐ ๋ฌธ์„œ ์ •๋ฆฌ
  4. DB, ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ

 

1. ์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘ ๋ฐ ๋ถ„์„

 

1-1. ์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘

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

  • ์‚ฌ์šฉ์ž ์‹๋ณ„
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์šฉ๋„ ์‹๋ณ„
  • ์‚ฌ์šฉ์ž ์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘ ๋ฐ ๋ช…์„ธ

์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘ ๋ฐฉ๋ฒ•

  1. ์‹ค์ œ ๋ฌธ์„œ ์ˆ˜์ง‘ ๋ฐ ๋ถ„์„
  2. ๋‹ด๋‹น์ž์™€์˜ ์ธํ„ฐ๋ทฐ
  3. ์„ค๋ฌธ์กฐ์‚ฌ
  4. ๋น„์Šทํ•œ ์—…๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ์กด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ„์„
  5. ๊ธฐํƒ€ ๋ฐฉ๋ฒ• : ๊ฐ ์—…๋ฌด์™€ ์—ฐ๊ด€๋œ ๋ชจ๋“  ๋ถ€๋ถ„ ์‚ดํŽด๋ณด๊ธฐ

 

1-2. ๊ธฐ๋Šฅ ๋ฆฌ์ŠคํŠธ ์ž‘์„ฑ

์ˆ˜์ง‘ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ •๋ฆฌํ•˜์—ฌ ๊ธฐ๋Šฅ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

๋Œ€๋ถ„๋ฅ˜ ๊ธฐ๋Šฅ ๋ชฉ๋ก ์„ค๋ช…
ํšŒ์› ๊ฐ€์ž… ์ด์šฉ ์•ฝ๊ด€ ์ด์šฉ ์•ฝ๊ด€ ์ •๋ณด ๋…ธ์ถœ
ํšŒ์› ๊ฐ€์ž… ID, PW, ์ด๋ฆ„, e-mail, ์ „ํ™”๋ฒˆํ˜ธ, ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ
๋กœ๊ทธ์ธ ๋กœ๊ทธ์ธ ID, PW ์ธ์ฆ์„ ํ†ตํ•œ ๋กœ๊ทธ์ธ
ID ์ฐพ๊ธฐ ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ or ์ „ํ™”๋ฒˆํ˜ธ๋กœ ID ์ฐพ๊ธฐ
๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ ID๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ „ํ™”๋ฒˆํ˜ธ, ๋˜๋Š” ๋ฉ”์ผ๋กœ ์ฐพ๊ธฐ

 

 

 

2. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

๊ธฐ๋Šฅ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์™„์„ฑ๋˜๋ฉด, ๊ฐ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ •๋ฆฌํ•œ๋‹ค.

 

2-1. ERD ๋ชจ๋ธ ์ž‘์„ฑ

= E-R ๋‹ค์ด์–ด๊ทธ๋žจ, ERD(Entity Relationship Diagram)
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ ๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ ๋ผˆ๋Œ€ ์—ญํ• ์„ ํ•˜๋ฉฐ, ๋ฆด๋ ˆ์ด์…˜ ๊ฐ„์˜ ๊ด€๊ณ„๋“ค์„ ์ •์˜ํ•œ ๊ฒƒ

 

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

* ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ : ๋น„๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ. ๋ฏธ๋ฆฌ ์ •์˜๋œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ์—†๊ฑฐ๋‚˜, ๋ฏธ๋ฆฌ ์ •์˜๋œ ๋ฐฉ์‹์œผ๋กœ ์ •๋ฆฌ๋˜์ง€ ์•Š๋Š” ์ •๋ณด

 

2-2. ERD ์ž‘์„ฑ ๊ทœ์น™

* 'B๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค' = 'B๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค' ๋กœ ์ดํ•ดํ•˜๋ฉด ์‰ฝ๋‹ค.

  • ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„ : A ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ํ‚ค๋ฅผ B ํ…Œ์ด๋ธ”์ด ๊ฐ€์ง€๊ณ  ์žˆ์Œ  →  Aํ…Œ์ด๋ธ”์ด ๋ถ€๋ชจ, B ํ…Œ์ด๋ธ”์ด ์ž์‹ ํ…Œ์ด๋ธ”
  • ์‹ค์„  : ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ž์‹ํ…Œ์ด๋ธ”์ด ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ๊ธฐ๋ณธํ‚ค๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
  • ์ ์„  : ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ž์‹ํ…Œ์ด๋ธ”์ด ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ์ด๋ฅผ ๊ธฐ๋ณธํ‚ค๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

์˜ˆ์‹œ ์ž๋ฃŒ : ํ•™์ƒ ํ…Œ์ด๋ธ”๊ณผ ์ˆ˜๊ฐ•๋‚ด์—ญ ํ…Œ์ด๋ธ”๊ณผ์˜ ๊ด€๊ณ„

  • <์ˆ˜๊ฐ•๋‚ด์—ญ> ํ…Œ์ด๋ธ”์ด <ํ•™์ƒ> ํ…Œ์ด๋ธ” ๊ธฐ๋ณธํ‚ค๋ฅผ ์™ธ๋ž˜ํ‚ค๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์Œ ⇒ <์ˆ˜๊ฐ•๋‚ด์—ญ> = ์ž์‹, <ํ•™์ƒ> = ๋ถ€๋ชจ
  • <ํ•™์ƒ>ํ…Œ์ด๋ธ”์ชฝ : 1์„ ๋œปํ•จ. ํ•˜๋‚˜์˜ ํ•™์ƒ
  • <์ˆ˜๊ฐ•๋‚ด์—ญ> ํ…Œ์ด๋ธ”์ชฝ : 0~N์„ ๋œปํ•จ. '0~N๊ฐœ์˜ ์ˆ˜๊ฐ•๋‚ด์—ญ'
๐Ÿ‘‰๐Ÿป
์ฆ‰, ํ•™์ƒ ์ž…์žฅ์—์„œ๋Š” 'ํ•˜๋‚˜์˜ ํ•™์ƒ์€ 0~N๊ฐœ์˜ ์ˆ˜๊ฐ•๋‚ด์—ญ์„ ๊ฐ€์ง„๋‹ค.'
๐Ÿ‘‰๐Ÿป
์ˆ˜๊ฐ•๋‚ด์—ญ์˜ ์ž…์žฅ์—์„œ๋Š” '0~N๊ฐœ์˜ ์ˆ˜๊ฐ•๋‚ด์—ญ์€ ํ•˜๋‚˜์˜ ํ•™์ƒ์—๊ฒŒ ํฌํ•จ๋˜์–ด์ง„๋‹ค.'
  •  ์‹ค์„  : <์ˆ˜๊ฐ•๋‚ด์—ญ> ํ…Œ์ด๋ธ”์—์„œ <ํ•™์ƒ> ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ž์‹ ๋„ ๊ธฐ๋ณธํ‚ค๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ
๐Ÿ‘‰๐Ÿป
์ˆ˜๊ฐ•๋‚ด์—ญ ํ…Œ์ด๋ธ”์€ ํ•™์ƒ ํ…Œ์ด๋ธ”์˜ PK์ธ [ ํ•™์ƒID ]๋ฅผ FK๋กœ ๊ฐ€์ง„๋‹ค.

 

์˜ˆ์‹œ 2: ๋ถ€์„œ ํ…Œ์ด๋ธ”๊ณผ ์‚ฌ์› ํ…Œ์ด๋ธ”

  • ๋ถ€๋ชจ ํ…Œ์ด๋ธ” : <๋ถ€์„œ>, ์ž์‹ ํ…Œ์ด๋ธ” : <์‚ฌ์›>
  • โ€‹์ ์„  : ์ž์‹ ํ…Œ์ด๋ธ”์ด ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์˜ PK๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ์ด๋ฅผ PK๋กœ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.
  • ๊ด€๊ณ„ : โ€‹ํ•˜๋‚˜์˜ ๋ถ€์„œ๋Š” 0~N ๋ช…์˜ ์‚ฌ์›์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • โ€‹์‚ฌ์› ํ…Œ์ด๋ธ”์€ ๋ถ€์„œ ํ…Œ์ด๋ธ”์˜ PK์ธ ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ FK๋กœ ๊ฐ€์ง„๋‹ค.

 

2-3. ๋Œ€ํ‘œ์ ์ธ ERD Tool

  • draw.io
  • Gliffy

draw.io ์˜ˆ์‹œ ํ™”๋ฉด

 

 

 

3. ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž์™€ API ํ˜‘์˜ ๋ฐ ๋ฌธ์„œ ์ •๋ฆฌ

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ์„œ, ํ”„๋ก ํŠธ์—์„œ ์–ด๋–ค parameter ์š”์ฒญ/์–ด๋–ค URI ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ ๋‚ด๊ฐ€ ์–ด๋–ค ๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค์ค„ ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•ด ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž์™€ ์ƒ์„ธํ•œ ํ˜‘์˜๋ฅผ ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์˜ˆ์™ธ ์ผ€์ด์Šค๋“ค๊ณผ ์˜ˆ์ œ ์‘๋‹ต๊นŒ์ง€ ๊ฐ„๋žตํžˆ ์ •๋ฆฌํ•œ API ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

ํ•„์ˆ˜์ ์œผ๋กœ ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š” ํ•ญ๋ชฉ์€ Request Field, Field Type, Field Description ๋“ฑ์ด ์žˆ๋‹ค. 

์ „ํ†ต์ ์ธ ๋ฐฉ์‹์€ excel ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ API ๋ฌธ์„œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ, ์ตœ๊ทผ์—๋Š” POSTMAN,  Swagger ๋“ฑ์˜ ๋ณ„๋„ ํˆด์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

* Swagger

API๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ๋ฌธ์„œํ™” ๋ฐ ํ…Œ์ŠคํŒ…ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ํ”„๋ ˆ์ž„์›Œํฌ
  • ๋ฌด๋ฃŒ ๋ฒ„์ „ / ์ƒ์šฉ ๋ฒ„์ „์ด ์กด์žฌํ•œ๋‹ค.
  • ๊ธฐ๋Šฅ
    • API ๋””์ž์ธ(์„ค๊ณ„)
    • API ๋นŒ๋“œ
    • API ๋ฌธ์„œํ™”
    • API ํ…Œ์ŠคํŠธ
    • API ํ‘œ์ค€ํ™”
  • ์˜คํ”ˆ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋˜์–ด ์žˆ๋Š” ํˆด
    • Swagger Codegen : ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์— ์„ค๊ณ„๋œ API ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํˆด
    • Swagger Editor : API๋ฅผ ์„ค๊ณ„ ๋ฐ ๋ฌธ์„œํ™”ํ•˜๋Š” ํˆด
    • Swagger UI : ์„ค๊ณ„๋œ API๋ฅผ HTML ํŽ˜์ด์ง€๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํˆด

 

 

 

4. DB, ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ

๊ฐœ๋ฐœ๊ณผ ๋™์‹œ์— ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

  • ๋‹จ์ˆœ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ (๊ฐœ๋ฐœํ•œ API ํ…Œ์ŠคํŠธ) : ๊ฐœ๋ฐœํ•œ ๊ธฐ๋Šฅ ํ•˜๋‚˜ํ•˜๋‚˜์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ
  • ์—ฐ๊ด€ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ (์‹ ๊ทœ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ) : ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ ๊ฐœ๋ฐœ → ์‹ ๊ทœ ํšŒ์› / ํƒˆํ‡ดํ•œ ํšŒ์›์˜  ๋กœ๊ทธ์ธ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ๋“ฑ
  • ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ : ์˜ˆ์ƒ๋˜๋Š” ํšŒ์›์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ฐ€์ง€๊ณ  ์ผ๋ จ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•œ ๋ฌถ์Œ์œผ๋กœ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ → ๋ฌธ์ œ๋ฅผ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ „๋‹ฌ

์ด๋ ‡๊ฒŒ ํ…Œ์ŠคํŠธ๊ฐ€ ์„ธ๋ถ„ํ™”๋œ ๊ฒƒ๋งŒ ๋ณด์•„๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, ์‹ค์ œ ๊ฐœ๋ฐœ์—์„œ๋„ ํ…Œ์ŠคํŠธ๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธ ๊ด€๋ จ QA ์ง๋ฌด๋„ ๋งŽ์ด ์ƒ๊ฒจ๋‚˜๊ณ  ์žˆ๋‹ค.

 

 

 


์ฐธ๊ณ ์ž๋ฃŒ

BELATED ARTICLES

more