[์ผ์ •๊ด€๋ฆฌ์•ฑ ๋งŒ๋“ค๊ธฐ-1] Level 0: API ๋ช…์„ธ์„œ ๋ฐ ERD ์ž‘์„ฑ

2025. 3. 21. 16:04ยท๋‚ด์ผ๋ฐฐ์›€์บ ํ”„/๋ณธ์บ ํ”„ ๊ณผ์ œ

ํ•„์ˆ˜ ๊ธฐ๋Šฅ(Lv2, DB์—ฐ๊ฒฐ ๋ณด๋ฅ˜...)๊นŒ์ง€๋งŒ ๊ตฌํ˜„ํ•œ๋‹ค๋Š” ์ „์ œ ํ•˜์— ์ž‘์„ฑ๋œ API๋ช…์„ธ์„œ ๋ฐ ERD์ž…๋‹ˆ๋‹ค.


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

๊ธฐ๋Šฅ Method URL request response ์ƒํƒœ์ฝ”๋“œ
์ผ์ • ์ƒ์„ฑ POST /schedules ์š”์ฒญ body
{
"content" : "ํ• ์ผ",
"writer" : "์ž‘์„ฑ์ž๋ช…",
"password" : "๋น„๋ฐ€๋ฒˆํ˜ธ"
}

"recordDate" : ์ž‘์„ฑ์ผ",
"modifyDate" : "์ˆ˜์ •์ผ"
"scheduleID" :์‹๋ณ„์žID"

๋“ฑ๋ก ์ •๋ณด
{
"scheduleID" : "์‹๋ณ„์ž"
}
200: ์ •์ƒ๋“ฑ๋ก
์ „์ฒด ์ผ์ • ์กฐํšŒ GET /schedules ์š”์ฒญ param ๋‹ค๊ฑด ์‘๋‹ต ์ •๋ณด
[ 
{
"modifyDate" : "์ˆ˜์ •์ผ",
"name" : "์ž‘์„ฑ์ž๋ช…"
}
]
200: ์ •์ƒ์กฐํšŒ
์„ ํƒ ์ผ์ • ์กฐํšŒ GET /schedules/{scheduleId} ์š”์ฒญ param ๋‹จ๊ฑด ์‘๋‹ต ์ •๋ณด
{
"content" : "ํ• ์ผ",
"name" : "์ž‘์„ฑ์ž๋ช…",
"recordeDate" : "์ž‘์„ฑ์ผ"
}
200: ์ •์ƒ์กฐํšŒ
์„ ํƒ ์ผ์ • ์ˆ˜์ • PUT /schedules/{scheduleId} ์š”์ฒญ body
{
"content" : "ํ• ์ผ",
"name" : "์ž‘์„ฑ์ž๋ช…",
"password" : "๋น„๋ฐ€๋ฒˆํ˜ธ"
}
์ˆ˜์ • ์ •๋ณด
{
"content" : "ํ• ์ผ",
"name" : "์ž‘์„ฑ์ž๋ช…",
"recordeDate" : "์ˆ˜์ •์ผ"
}
200: ์ •์ƒ์ˆ˜์ •
์„ ํƒ ์ผ์ • ์‚ญ์ œ DELETE /schedules/{scheduleId} ์š”์ฒญ param
{
"password" : "๋น„๋ฐ€๋ฒˆํ˜ธ"
}
- 200: ์ •์ƒ์‚ญ์ œ

 

๐Ÿ“ ํŠœํ„ฐ๋‹˜ ํ”ผ๋“œ๋ฐฑ

โœ”๏ธ ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ’์€ request์˜ body์— ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค.

request body์—๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ž…๋ ฅ๋ฐ›์„ ๊ฐ’๋งŒ ๋„ฃ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ’์€ ์•ˆ๋„ฃ๋Š”๊ฒŒ ๋งž์Œ
(์ž‘์„ฑ์ผ,์ˆ˜์ •์ผ,์‹๋ณ„์žID)

 

โœ”๏ธ ์ผ์ • ์ƒ์„ฑ ํ›„ ์‹๋ณ„์ž(ID)๋Š” ์‘๋‹ต(Response)์œผ๋กœ ํฌํ•จํ•œ๋‹ค.

ํ•„์ˆ˜๋Š” ์•„๋‹ˆ์ง€๋งŒ, ์ผ๋ฐ˜์ ์œผ๋กœ ์ผ์ •์„ ์ƒ์„ฑํ•˜๋ฉด ์ƒ์„ฑํ•œ ID๋ฅผ ์‘๋‹ตํ•ด์ค€๋‹ค.

 

โœ”๏ธ ์ „์ฒด์ผ์ • ์กฐํšŒ ์‹œ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์‘๋‹ตํ•œ๋‹ค.

์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ผ์ • ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ๋ฐฐ์—ด[] ํ˜•์‹์œผ๋กœ ํ‘œํ˜„ (๋ธ”๋กœ๊ทธ ๋“ค์–ด๊ฐ€๋ฉด ์ œ๋ชฉ๋งŒ ๋ณด์ด๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ!!) 

์˜ˆ์‹œ ์ฝ”๋“œ โฌ‡๏ธ

[
  { "id": 1, "title": "ํšŒ์˜", "date": "2025-03-12" },
  { "id": 2, "title": "์Šคํ„ฐ๋””", "date": "2025-03-13" }
]

 

โœ”๏ธ DELETE ์š”์ฒญ์€ body๊ฐ€ ๋ณดํ†ต ์—†์–ด์•ผ ํ•œ๋‹ค.

RESTful ์„ค๊ณ„ ์›์น™์— ๋”ฐ๋ผ DELETE ์š”์ฒญ์€ ์š”์ฒญ ๋ฐ”๋””๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.
(ํ•˜์ง€๋งŒ ์ง€๊ธˆ ์ˆ˜์ค€์—์„œ ์ผ๋‹จ ๋„˜์–ด๊ฐ€๋„ ๋œ๋‹ค. ์ˆ™๋ จ๋‹จ๊ณ„์—์„œ ํ† ํฐ์ด๋ž‘ ์ด๊ฒƒ์ €๊ฒƒ ๋ฐฐ์šฐ๋ฉด ์•Œ๊ฒŒ๋  ๋‚ด์šฉ์ด๋ผ๊ณ  ํ•˜์…จ๋‹ค)


๐Ÿ“ ERD

๋”๋ณด๊ธฐ

์ˆ˜์ • ์ „

 

๐Ÿ“ ํŠœํ„ฐ๋‹˜ ํ”ผ๋“œ๋ฐฑ

ERD
<Schedule>
- scheduleID (int)
- content (varchar)
- recordDate (date)
- modifyDate (date)
- password (varchar)

<Writer>
- writer(varchar)

์ด๋ ‡๊ฒŒ ๋จผ์ € ๋“ค๊ณ ๊ฐ”๋‹ค๊ฐ€ ๋ฐ›์€ ํ”ผ๋“œ๋ฐฑ

- ๋ฐ์ดํ„ฐํƒ€์ž… varchar ์‚ฌ์šฉ์‹œ ๋ช‡๊ธ€์ž ํ• ์ง€ ์ž‘์„ฑํ•˜๊ธฐ

- ๋„์ „๊ณผ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ERD์—์„œ ๊ฐœ์ฒด ํ•˜๋‚˜๋กœ๋งŒ ํ•ด๋„ ๊ดœ์ฐฎ์Œ

 

+ ํŒ€์›๋ถ„์ด ๋ฐ›์€ ํ”ผ๋“œ๋ฐฑ ๋‚ด์šฉ!

(๋‚˜๋Š” ๋„์ „๊ณผ์ œ(DB์—ฐ๊ฒฐ)์€ ํฌ๊ธฐํ•˜๊ณ , ํ•„์ˆ˜๋‹จ๊ณ„ ๊ตฌํ˜„์ด ๋ชฉํ‘œ๋ผ๊ณ  ํ•ด์„œ ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๋”ฐ๋กœ ์•ˆํ•ด์ฃผ์‹  ๋“ฏ ํ•˜๋‹ค.)

1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค ์‚ฌ์šฉ

2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ '๋„๋ฉ”์ธ'์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

ใ€€ ๋”ฐ๋ผ์„œ ๋„๋ฉ”์ธ ์ข…๋ฅ˜์™€ ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋–ค ๋„๋ฉ”์ธ๊ณผ ์—ฐ๊ฒฐ๋˜๋Š”์ง€ ์•Œ์•„์•ผ ํ•œ๋‹ค!

3. API๋ช…์„ธ์„œ์— URL์„ /plans์œผ๋กœ ์ž‘์„ฑํ–ˆ์œผ๋ฉด, ERD ์ œ๋ชฉ๋„ ๋™์ผํ•˜๊ฒŒ plan์œผ๋กœ ๋งž์ถฐ์•ผ ํ•จ.


+ ๊ฐ€์ด๋“œ์—์„œ ์ดํ•ด๊ฐ€ ์•ˆ๋๋˜ ๋ถ€๋ถ„...

๊ณผ์ œ ๊ฐ€์ด๋“œ์—์„œ ์ด ๋‚ด์šฉ์ด ์ดํ•ด๊ฐ€ ์•ˆ๋์—ˆ๋Š”๋ฐ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ํ•˜๋ผ๋Š” ๋œป์ธ ๊ฒƒ ๊ฐ™๋‹ค. (API ๋ช…์„ธ์„œ ํŠœํ„ฐ๋‹˜ ํ”ผ๋“œ๋ฐฑ 3๋ฒˆ์งธ๋ถ€๋ถ„)

'๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ > ๋ณธ์บ ํ”„ ๊ณผ์ œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์ผ์ •๊ด€๋ฆฌ์•ฑ ๋งŒ๋“ค๊ธฐ-3] ์ผ์ •๊ด€๋ฆฌ์•ฑ ๊ณผ์ œ ํšŒ๊ณ   (1) 2025.03.26
[์ผ์ •๊ด€๋ฆฌ์•ฑ ๋งŒ๋“ค๊ธฐ-2][ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…] DB์—†์ด CRUD ๋งŒ๋“ค๊ธฐ  (0) 2025.03.24
[ํ‚ค์˜ค์Šคํฌ ๋งŒ๋“ค๊ธฐ-8] ํ‚ค์˜ค์Šคํฌ ๊ณผ์ œ ํšŒ๊ณ   (0) 2025.03.14
[ํ‚ค์˜ค์Šคํฌ ๋งŒ๋“ค๊ธฐ-2][ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…] Level 2: ๋ฆฌ์ŠคํŠธ์™€ ์ƒ์„ฑ์ž ์‚ฌ์šฉ ์‹œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ๋“ค  (0) 2025.03.10
[ํ‚ค์˜ค์Šคํฌ ๋งŒ๋“ค๊ธฐ-1][ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…] Level 1: ๋ฒ„ํผ ์ฒ˜๋ฆฌ ๋ฌธ์ œ & ๋ฐฐ์šด ์   (0) 2025.03.10
'๋‚ด์ผ๋ฐฐ์›€์บ ํ”„/๋ณธ์บ ํ”„ ๊ณผ์ œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์ผ์ •๊ด€๋ฆฌ์•ฑ ๋งŒ๋“ค๊ธฐ-3] ์ผ์ •๊ด€๋ฆฌ์•ฑ ๊ณผ์ œ ํšŒ๊ณ 
  • [์ผ์ •๊ด€๋ฆฌ์•ฑ ๋งŒ๋“ค๊ธฐ-2][ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…] DB์—†์ด CRUD ๋งŒ๋“ค๊ธฐ
  • [ํ‚ค์˜ค์Šคํฌ ๋งŒ๋“ค๊ธฐ-8] ํ‚ค์˜ค์Šคํฌ ๊ณผ์ œ ํšŒ๊ณ 
  • [ํ‚ค์˜ค์Šคํฌ ๋งŒ๋“ค๊ธฐ-2][ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…] Level 2: ๋ฆฌ์ŠคํŠธ์™€ ์ƒ์„ฑ์ž ์‚ฌ์šฉ ์‹œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ๋“ค
aggeeeee
aggeeeee
ใ€€ φ(๏ผŽ๏ผŽ;)ใ€€๐Ÿ”œใ€€\_ใธ(โ–ญ-โ–ญ)โœจ
  • aggeeeee
    ๐Ÿฅ” ๋‹˜์˜ ๋ธ”๋กœ๊ทธ
    aggeeeee
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (155)
      • Today I Learned (25)
      • ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ (115)
        • ๋ณธ์บ ํ”„ ๊ณผ์ œ (17)
        • ์‚ฌ์ „์บ ํ”„ ๊ณผ์ œ (23)
        • SQL ์ฝ”๋“œ์นดํƒ€ (44)
        • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋“œ์นดํƒ€ (31)
      • ๐Ÿ’ป๐Ÿš€ (15)
        • Java (7)
        • Git & GitHub (1)
        • CS (4)
        • Spring & SpringBoot (3)
  • ๋งํฌ

  • ์ตœ๊ทผ ๊ธ€

  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
aggeeeee
[์ผ์ •๊ด€๋ฆฌ์•ฑ ๋งŒ๋“ค๊ธฐ-1] Level 0: API ๋ช…์„ธ์„œ ๋ฐ ERD ์ž‘์„ฑ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”