Tiny Bunny
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป/Server

[์„œ๋ฒ„] CRUD ๋ž€? + CRUD์™€ REST

by soonybutter 2024. 10. 31.
728x90

 
 

 

1. CRUD ๋ž€?


Create, Read, Update, Delete์˜ ์•ฝ์–ด๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ์˜ ์‹œ์Šคํ…œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์„ ์˜๋ฏธํ•œ๋‹ค.
 
CRUD ๊ฐœ๋…์€ ์›น์‹œ์Šคํ…œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฑฐ์˜ ๋ชจ๋“  ์‹œ์Šคํ…œ์—์„œ ์ ์šฉ๋œ๋‹ค.
 
 
 
 

 

2. DB์™€ CRUD


 

CRUD๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ช…๋ น์ด๋‹ค. 
 
 
1. Create (์ƒ์„ฑ)
 
   ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ” ๋ฐ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ž‘์—….
 
2. Read (์ฝ๊ธฐ)
 
   ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰, ์ฝ์–ด์˜ค๋Š” ์ž‘์—…
 
3. UPDATE (๊ฐฑ์‹ , ์ˆ˜์ •)
 
   ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค. ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ๊ฐฑ์‹ ์ด๋‹ค.
 
4. DELETE (์‚ญ์ œ)
 
   ๋ฐ์ดํ„ฐ ์‚ญ์ œ. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ ˆ์ฝ”๋“œ ์‚ญ์ œํ•˜๋Š” ์ž‘์—….
 
 
 

 

3. REST API ์™€ CRUD


 

REST API๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ HTTP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ REST ํ˜•์‹์„ ๋”ฐ๋ฅด๋Š” API๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
 
*REST
(Representational State Transfer)- ์ž์›์„ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž์›์˜ ์ƒํƒœ(์ •๋ณด)๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ.
 
1. HTTP URI(Uniform Resource Identifier)๋ฅผ ํ†ตํ•ด ์ž์›(Resources)์„ ๋ช…์‹œํ•˜๊ณ 
2. HTTP Method (POST / GET / PUT / DELETE / PATCH )๋ฅผ ํ†ตํ•ด 
3. ํ•ด๋‹น ์ž์› (URI)์— ๋Œ€ํ•œ CRUD๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค! 
 
์ฆ‰, REST ๋ฅผ ํ†ตํ•ด ๋‘๊ฐœ์˜ ์„œ๋ฒ„๊ฐ€ ์ „์„ธ๊ณ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ ๊ฒƒ์ด๋‹ค.
 
*REST ํ˜ธํ™˜ ์‹œ์Šคํ…œ : RESTful ์‹œ์Šคํ…œ (REST ๋ฐฉ์‹์„ ๋”ฐ๋ฅด๋Š” ์‹œ์Šคํ…œ.)
 
 
- Rest๋Š” ํ‘œ์ค€ API ์•„ํ‚คํ…์ฒ˜ ์ด๊ณ , CRUD๋Š” ํ•จ์ˆ˜ ํ˜•์‹์ด๋‹ค.
 
 
 
1. Create (์ƒ์„ฑ)
 
   - HTTP ๋ฉ”์„œ๋“œ: POST
      (body์— ๋ฐ์ดํ„ฐ ํฌํ•จ์‹œํ‚ด(post๋‹ˆ๊นŒ))
 
 ์˜ˆ์‹œ: ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ

  • ์š”์ฒญ: POST /users
  • ์š”์ฒญ ๋ณธ๋ฌธ(body): ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” JSON ๋˜๋Š” XML ๋ฐ์ดํ„ฐ
  • ์‘๋‹ต: ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž์˜ ID์™€ ํ•จ๊ป˜ ์„ฑ๊ณต ๋ฉ”์‹œ์ง€ ๋˜๋Š” ์ ์ ˆํ•œ ์ƒํƒœ ์ฝ”๋“œ (์˜ˆ: 201 Created)

 
     
 

2. Read (์ฝ๊ธฐ)
 
 HTTP ๋ฉ”์„œ๋“œ: GET

  • ์˜ˆ์‹œ: ๋ชจ๋“  ์‚ฌ์šฉ์ž ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒฝ์šฐ
    • ์š”์ฒญ: GET /users
    • ์‘๋‹ต: ๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ ๋ชฉ๋ก์„ ํฌํ•จํ•˜๋Š” JSON ๋˜๋Š” XML ๋ฐ์ดํ„ฐ ๋˜๋Š” ์ ์ ˆํ•œ ์ƒํƒœ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์„ฑ๊ณต ๋ฉ”์‹œ์ง€ (์˜ˆ: 200 OK)

 
 

3. UPDATE (๊ฐฑ์‹ , ์ˆ˜์ •)
 
 HTTP ๋ฉ”์„œ๋“œ: PUT ๋˜๋Š” PATCH

    • ์˜ˆ์‹œ: ํŠน์ • ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒฝ์šฐ
      • ์š”์ฒญ: PUT /users/{id} ๋˜๋Š” PATCH /users/{id}
      • ์š”์ฒญ ๋ณธ๋ฌธ: ์—…๋ฐ์ดํŠธํ•  ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” JSON ๋˜๋Š” XML ๋ฐ์ดํ„ฐ
      • ์‘๋‹ต: ์ ์ ˆํ•œ ์ƒํƒœ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์„ฑ๊ณต ๋ฉ”์‹œ์ง€ ๋˜๋Š” ์—…๋ฐ์ดํŠธ๋œ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด

 
 

4. DELETE (์‚ญ์ œ)
 
HTTP ๋ฉ”์„œ๋“œ: DELETE

    • ์˜ˆ์‹œ: ํŠน์ • ์‚ฌ์šฉ์ž๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ
      • ์š”์ฒญ: DELETE /users/{id}
      • ์‘๋‹ต: ์ ์ ˆํ•œ ์ƒํƒœ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์„ฑ๊ณต ๋ฉ”์‹œ์ง€ ๋˜๋Š” ์‚ญ์ œ๋œ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด




 

 
REST์™€ CRUD์˜ ๋ช…๋ น์„ ์ž์„ธํžˆ ๋ณด๋ฉด ๋‘˜ ์‚ฌ์ด์˜ ์œ ์‚ฌ์ ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 
 
 
 
 
 
 
 
 

4. REST  & CRUD ์ฐจ์ด


 

REST๋Š” HTTP ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ์ž์›์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ์•„ํ‚คํ…์ฒ˜ ์‹œ์Šคํ…œ์ด๋‹ค. ์ฆ‰ HTTP๋ช…๋ น์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์–ดํ•œ๋‹ค.
๋ฐ˜๋ฉด์— CRUD๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ฃผ๊ธฐ์ด๋‹ค. ๋™์‹œ์— ์ •๋ณด๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
๋‘˜์˜ ๊ธฐ๋Šฅ์€ ์œ ์‚ฌํ•˜์ง€๋งŒ, ๋™์ผํ•˜์ง„ ์•Š๋‹ค.
 
 
- Rest๋Š” ํ‘œ์ค€ API ์•„ํ‚คํ…์ฒ˜ ์ด๊ณ , CRUD๋Š” ํ•จ์ˆ˜ ํ˜•์‹์ž„์„ ๊ธฐ์–ตํ•˜์ž.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
* ๊นƒํ—ˆ๋ธŒ ์ฐธ๊ณ (idkim97.github)

728x90

'๐Ÿ’ป > Server' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Tomcat] '404์—๋Ÿฌ' ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด?  (6) 2024.10.07

TOP

Designed by ํ‹ฐ์Šคํ† ๋ฆฌ