J1Yun
ZU-TECHLOG
J1Yun
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ“‘ Category (135)
    • Algorithm (61)
      • ๐Ÿ“š Concept (6)
      • ๐Ÿ“˜ Baekjoon Judge (53)
      • ๐Ÿ“— Programmers (2)
    • Computer Science (42)
      • ๐Ÿ”’ Operating System (14)
      • ๐Ÿ“ก Network (15)
      • ๐Ÿ’พ Database (8)
      • ๐Ÿงฉ Design Pattern (4)
      • ๐Ÿ”‘ Security (1)
    • Activities (12)
      • ๐Ÿฆ ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ (6)
      • ๐Ÿ’ป SW๋งˆ์—์ŠคํŠธ๋กœ 13๊ธฐ (6)
    • Infra (1)
      • โ˜๏ธ AWS (1)
    • Languages (1)
      • ๐Ÿ’™ Python (1)
    • Backend (7)
      • ๐Ÿ”ต Django (4)
      • ๐ŸŸข Node.js (3)
    • Ect. (8)
      • ๐Ÿ’ฌ Talk (0)
      • ๐Ÿ—‚๏ธ ๊ฐœ๋ฐœ์ง๊ตฐ ์ทจ์—… ์ค€๋น„์ž๋ฃŒ (8)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

250x250
hELLO ยท Designed By ์ •์ƒ์šฐ.
J1Yun

ZU-TECHLOG

[๋„คํŠธ์›Œํฌ] REST, REST API, RESTful ์•Œ์•„๋ณด๊ธฐ
Computer Science/๐Ÿ“ก Network

[๋„คํŠธ์›Œํฌ] REST, REST API, RESTful ์•Œ์•„๋ณด๊ธฐ

728x90

REST

  • ์ž์›์„ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ ๋ฐ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์˜๋ฏธ
  • ์›น์˜ ๊ธฐ์กด ๊ธฐ์ˆ ๊ณผ HTTP ํ”„๋กœํ† ์ฝœ์„ ํ™œ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์›น์˜ ์žฅ์ ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ
  • ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ Client์™€ Server ์‚ฌ์ด์˜ ํ†ต์‹  ๋ฐฉ์‹
  • HTTP URI๋ฅผ ํ†ตํ•ด ์ž์›์„ ๋ช…์‹œํ•˜๊ณ , HTTP Method(GET, POST, PUT, DELETE)๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ž์›์— ๋Œ€ํ•œ CRUD๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒƒ

 

REST ๊ตฌ์„ฑ ์š”์†Œ

  • ์ž์›(Resource)
    • URI๋กœ ํ‘œ์‹œ
    • ๋ชจ๋“  ์ž์›์— ๋Œ€ํ•œ ๊ณ ์œ  ID(URI)๊ฐ€ ์กด์žฌํ•˜๊ณ , ์ด ์ž์›์€ Server์— ์กด์žฌ
    • Client๋Š” URI๋ฅผ ์ด์šฉํ•ด์„œ ์ž์›์„ ์ง€์ •ํ•˜๊ณ  ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ(์ •๋ณด)์— ๋Œ€ํ•œ ์กฐ์ž‘์„ Server์— ์š”์ฒญ
  • ํ–‰์œ„(Verb)
    • HTTP ํ”„๋กœํ† ์ฝœ์˜ Method ์‚ฌ์šฉ
  • ํ‘œํ˜„(Representation of Resource)
    • Client๊ฐ€ ์ž์›์˜ ์ƒํƒœ(์ •๋ณด)์— ๋Œ€ํ•œ ์กฐ์ž‘์„ ์š”์ฒญํ•˜๋ฉด Server๋Š” ์ด์— ์ ์ ˆํ•œ ์‘๋‹ต(Representation)์„ ๋ณด๋ƒ„
    • REST์—์„œ ํ•˜๋‚˜์˜ ์ž์›์€ JSON, XML, TEXT, RSS ๋“ฑ ์—ฌ๋Ÿฌ ํ˜•ํƒœ์˜ Representation์œผ๋กœ ๋‚˜ํƒ€๋‚ด์–ด ์งˆ ์ˆ˜ ์žˆ์Œ
    • JSON์ด๋‚˜ XML๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ 

 

REST ํŠน์ง•

  • Server-Client(์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ ๊ตฌ์กฐ)
    • ์ž์›์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ชฝ์€ Server, ์ž์›์„ ์š”์ฒญํ•˜๋Š” ์ชฝ์€ Client
    • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์„œ๋กœ ๊ฐ„์˜ ์˜์กด์„ฑ ๋‚ฎ์Œ
  • Stateless(๋ฌด์ƒํƒœ)
    • HTTP ํ”„๋กœํ† ์ฝœ์˜ Stateless ์†์„ฑ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
    • Client์˜ context ์ •๋ณด(์ฟ ํ‚ค, ์„ธ์…˜ ๋“ฑ)๋ฅผ Server์— ์ €์žฅํžˆ์ง€ ์•Š์•„ ๊ตฌํ˜„ ๋‹จ์ˆœ
    • Server๋Š” ๊ฐ๊ฐ์˜ ์š”์ฒญ์„ ๋ณ„๊ฐœ๋กœ ์ธ์‹ํ•˜๊ณ  ๊ฐ๊ฐ ์ฒ˜๋ฆฌ -> ์ฒ˜๋ฆฌ ๋ฐฉ์‹์˜ ์ผ๊ด€์„ฑ ๋ถ€์—ฌ, ์„œ๋น„์Šค ์ž์œ ๋„ ํ–ฅ์ƒ
  • Cacheable(์บ์‹œ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ)
    • HTTP ํ”„๋กœํ† ์ฝœ์˜ ์บ์‹ฑ ๊ธฐ๋Šฅ ํ™œ์šฉ ๊ฐ€๋Šฅ
    • ๋Œ€์šฉ๋Ÿ‰ ์š”์ฒญ์˜ ํšจ์œจ์  ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
    • ์บ์‹œ ์‚ฌ์šฉ์„ ํ†ตํ•ด ์„œ๋ฒ„์˜ ํŠธ๋žœ์žญ์…˜์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ์‘๋‹ต์‹œ๊ฐ„, ์„ฑ๋Šฅ, ์„œ๋ฒ„์˜ ์ž์› ์ด์šฉ๋ฅ  ํ–ฅ์ƒ
  • Layered System(๊ณ„์ธตํ™”)
    • Client๋Š” REST API Server๋งŒ์„ ํ˜ธ์ถœ
    • REST Server๋Š” ๋‹ค์ค‘ ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ
      • ์ˆœ์ˆ˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” API ์„œ๋ฒ„ ์•ž์— ๋ณด์•ˆ, ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ, ์•”ํ˜ธํ™”, ์‚ฌ์šฉ์ž ์ธ์ฆ ๋“ฑ์˜ ์„œ๋ฒ„ ๊ณ„์ธต์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ตฌ์กฐ์ƒ์˜ ์œ ์—ฐ์„ฑ ์ œ๊ณต ๊ฐ€๋Šฅ
    • ํ”„๋ก์‹œ, ๊ฒŒ์ดํŠธ์›จ์ด์™€ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ๊ธฐ๋ฐ˜์˜ ์ค‘๊ฐ„ ๋งค์ฒด ํ™œ์šฉ ๊ฐ€๋Šฅ
  • Code-On-Demand(optional)
    • Server๋กœ๋ถ€ํ„ฐ ์ œ๊ณต๋ฐ›์€ ๋ฆฌ์†Œ์Šค ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ Client์—์„œ ์‹คํ–‰
    • ๋ฐ˜๋“œ์‹œ ์ถฉ์กฑํ•  ํ•„์š” X
  • Uniform Interface(์ธํ„ฐํŽ˜์ด์Šค ์ผ๊ด€์„ฑ)
    • URI๋กœ ์ง€์ •ํ•œ ์ž์›์— ๋Œ€ํ•œ ์กฐ์ž‘์„ ํ†ต์ผ๋˜๊ณ  ํ•œ์ •์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ˆ˜ํ–‰
    • HTTP ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ์— ๋”ฐ๋ฅด๋Š” ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

REST ์žฅ๋‹จ์ 

  • ์žฅ์ 
    • HTTP ํ”„๋กœํ† ์ฝœ์˜ ์ธํ”„๋ผ๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ REST API ์‚ฌ์šฉ์„ ์œ„ํ•œ ๋ณ„๋„์˜ ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถœํ•  ํ•„์š” X
    • HTTP ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ์— ๋”ฐ๋ฅด๋Š” ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    • URI ์ž์› ๋ช…์‹œ๋ฅผ ํ†ตํ•ด REST API ๋ฉ”์‹œ์ง€๊ฐ€ ์˜๋„ํ•˜๋Š” ๋ฐ”๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ์˜๋„ํ•˜๋Š” ๋ฐ”๋ฅผ ์‰ฝ๊ฒŒ ํŒŒ์•… ๊ฐ€๋Šฅ
    • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์˜ ์—ญํ• ์ด ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌ
    • ๊ฐ์ข… ๋ธŒ๋ผ์šฐ์ €, ๋ชจ๋ฐ”์ผ ๋””๋ฐ”์ด์Šค ๋“ฑ ๋‹ค์–‘ํ•œ ํด๋ผ์ด์–ธํŠธ ๋ฐ ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์„œ๋น„์Šค ์ง€์› ์šฉ์ด
  • ๋‹จ์ 
    • ํ‘œ์ค€ ์กด์žฌ X
    • ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜•ํƒœ๊ฐ€ ์ œํ•œ์  (only HTTP Method)
    • ๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฒฝ์šฐ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„์ด ์กด์žฌ

 

<์ฐธ๊ณ > REST vs GraphQL

  • REST
    • HTTP URI๋ฅผ ํ†ตํ•ด ์ž์›์„ ๋ช…์‹œํ•˜๊ณ  HTTP Method๋ฅผ ํ†ตํ•ด ์ž์›์— ๋Œ€ํ•œ CRUD๋ฅผ ์ ์šฉ
    • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์˜ ์—ญํ• ์ด ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌ๋˜๋ฉฐ RestAPI์˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์˜๋„ํ•˜๋Š” ๋ฐ”๋ฅผ ์‰ฝ๊ฒŒ ํŒŒ์•… ๊ฐ€๋Šฅ
    • ์—ฌ๋Ÿฌ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ฐ€์ง€๋ฉฐ ์—”๋“œํฌ์ธํŠธ์— ๋”ฐ๋ผ ์ •ํ•ด์ง„ ์‘๋‹ต๋งŒ์„ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ์Œ
  • GraphQL
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๋„๋ก ํ•˜๋Š” ์ผ์ข…์˜ ์ฟผ๋ฆฌ ์–ธ์–ด
    • ๋ฐฑ์—”๋“œ๊ฐ€ ์ •ํ•ด๋†“๋Š” ํ‹€์ด ์—†์–ด ์œ ์—ฐํ•จ
    • ํ•˜๋‚˜์˜ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ฐ€์ง€๋ฉฐ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ฟผ๋ฆฌ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์‘๋‹ต(์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ)์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ

 

 

REST API

  • REST๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋น„์Šค API๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒƒ
  • REST ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ์Šคํ…œ์„ ๋ถ„์‚ฐํ•ด ํ™•์žฅ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์—ฌ ์œ ์ง€๋ณด์ˆ˜ ๋ฐ ์šด์šฉ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Œ
  • REST๋Š” HTTP ํ‘œ์ค€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ฏ€๋กœ, HTTP๋ฅผ ์ง€์›ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ

 

REST API ์„ค๊ณ„ ์›์น™

- ๋„ํ๋จผํŠธ : ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ ˆ์ฝ”๋“œ์™€ ์œ ์‚ฌํ•œ ๊ฐœ๋…
- ์ปฌ๋ ‰์…˜ : ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋ผ๋Š” ๋ฆฌ์†Œ์Šค
- ์Šคํ† ์–ด: ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ฆฌ์†Œ์Šค ์ €์žฅ์†Œ
  • URI์—์„œ ์ž์›์€ ๋™์‚ฌ๋ณด๋‹ค๋Š” ๋ช…์‚ฌ๋ฅผ, ๋Œ€๋ฌธ์ž๋ณด๋‹ค๋Š” ์†Œ๋ฌธ์ž ์‚ฌ์šฉ
  • URI์—์„œ ์ž์›์˜ ๋„ํ๋จผํŠธ ์ด๋ฆ„์€ ๋‹จ์ˆ˜ ๋ช…์‚ฌ ์‚ฌ์šฉ
  • URI์—์„œ ์ž์›์˜ ์ปฌ๋ ‰์…˜ ์ด๋ฆ„์€ ๋ณต์ˆ˜ ๋ช…์‚ฌ ์‚ฌ์šฉ
  • URI์—์„œ ์ž์›์˜ ์Šคํ† ์–ด ์ด๋ฆ„์€ ๋ณต์ˆ˜ ๋ช…์‚ฌ ์‚ฌ์šฉ

 

  • URI์— HTTP Method ์ด๋ฆ„ ๋ช…์‹œ X
    • ex) delete, post, get
  • URI์— ํ–‰์œ„์— ๋Œ€ํ•œ ๋™์‚ฌ ํ‘œํ˜„(๊ธฐ๋Šฅ ํ‘œํ˜„) ๋ช…์‹œ X
    • ex) show, insert
  • ๊ฒฝ๋กœ ๋ถ€๋ถ„ ์ค‘ ๋ณ€ํ•˜๋Š” ๋ถ€๋ถ„์€ ์œ ์ผํ•œ ๊ฐ’์œผ๋กœ ๋Œ€์ฒด (๊ณ ์œ  ID๋ฅผ ํ™œ์šฉํ•ด ์ž์› ํŠน์ •)
    • ex) students/12

 

  • ์Šฌ๋ž˜์‹œ ๊ตฌ๋ถ„์ž(/)๋Š” ๊ณ„์ธต ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ์— ์‚ฌ์šฉ
  • URI ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋ฅผ ์Šฌ๋ž˜์‹œ(/) ํฌํ•จ X
  • ํ•˜์ดํ”ˆ(-)์€ URI์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์–ธ๋”๋ฐ”(_)๋Š” ์‚ฌ์šฉ X
  • URI์— ํŒŒ์ผ ํ™•์žฅ์ž(.jpg ๋“ฑ) ํฌํ•จ X
  • ๋ฆฌ์†Œ์Šค ๊ฐ„ ์—ฐ๊ด€ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ: /๋ฆฌ์†Œ์Šค๋ช…/๋ฆฌ์†Œ์Šค ID/์—ฐ๊ด€ ์žˆ๋Š” ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค ๋ช…
    • ex) /users/{userid}/devices (์ผ๋ฐ˜์ ์œผ๋กœ ์†Œ์œ  ‘has’์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ)

 

 

RESTful

  • "RESTful ํ•˜๋‹ค": REST API๋ฅผ ์ œ๊ณตํ•˜๋Š” ์›น ์„œ๋น„์Šค
  • "RESTful ํ•˜์ง€ ์•Š๋‹ค": CRUD ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ POST๋กœ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ REST API ์„ค๊ณ„ ์›์น™์„ ๋”ฐ๋ฅด์ง€ ์•Š์€ ๊ฒฝ์šฐ
  • REST๋ฅผ REST๋‹ต๊ฒŒ ์“ฐ๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• (REST ์›๋ฆฌ๋ฅผ ๋”ฐ๋ฅด๋Š” ์‹œ์Šคํ…œ)
728x90

'Computer Science > ๐Ÿ“ก Network' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋„คํŠธ์›Œํฌ] TCP/IP ํ๋ฆ„์ œ์–ด์™€ ํ˜ผ์žก์ œ์–ด  (0) 2023.02.06
[๋„คํŠธ์›Œํฌ] HTTP ์ƒํƒœ/์‘๋‹ต ์ฝ”๋“œ ์ •๋ฆฌ  (0) 2023.02.02
[๋„คํŠธ์›Œํฌ] ์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session) ํŠน์ง•, ์ฐจ์ด  (0) 2022.04.02
[๋„คํŠธ์›Œํฌ] GET ๋ฉ”์„œ๋“œ์™€ POST ๋ฉ”์„œ๋“œ ํŠน์ง•, ์ฐจ์ด  (0) 2022.03.31
[๋„คํŠธ์›Œํฌ] HTTP์™€ HTTPS ํ”„๋กœํ† ์ฝœ  (0) 2022.02.09
    'Computer Science/๐Ÿ“ก Network' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€์ด๋‹ค
    • [๋„คํŠธ์›Œํฌ] TCP/IP ํ๋ฆ„์ œ์–ด์™€ ํ˜ผ์žก์ œ์–ด
    • [๋„คํŠธ์›Œํฌ] HTTP ์ƒํƒœ/์‘๋‹ต ์ฝ”๋“œ ์ •๋ฆฌ
    • [๋„คํŠธ์›Œํฌ] ์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session) ํŠน์ง•, ์ฐจ์ด
    • [๋„คํŠธ์›Œํฌ] GET ๋ฉ”์„œ๋“œ์™€ POST ๋ฉ”์„œ๋“œ ํŠน์ง•, ์ฐจ์ด
    J1Yun
    J1Yun
    ๊ฐœ๋ฐœ ๊ด€๋ จ ๊ธฐ์ˆ  ๋ฐ ๊ณต๋ถ€ ๋‚ด์šฉ ๊ธฐ๋ก์žฅ

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