Home > Network > 2024 > ๐ŸŒ[Network] HTTP, API, URL, ์ฟผ๋ฆฌ, ๋ฐ”๋””

๐ŸŒ[Network] HTTP, API, URL, ์ฟผ๋ฆฌ, ๋ฐ”๋””
Network

๐ŸŒ[Network] HTTP, API, URL, ์ฟผ๋ฆฌ, ๋ฐ”๋””

1๏ธโƒฃ HTTP๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

  • HTTP(Hypertext Transfer Protocol) ๋Š” WWW(World Wide Web)์—์„œ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.
  • ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๊ทœ์•ฝ์œผ๋กœ, ํด๋ผ์ด์–ธํŠธ(Client, ์‚ฌ์šฉ์ž์˜ ์›น ๋ธŒ๋ผ์šฐ์ €)๊ฐ€ ์„œ๋ฒ„(Server)์— ์š”์ฒญ(Request)์„ ๋ณด๋‚ด๊ณ , ์„œ๋ฒ„๊ฐ€ ์ด์— ๋Œ€ํ•œ ์‘๋‹ต(Response)์„ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

1. HTTP์˜ ์ฃผ์š” ํŠน์ง•.

  • 1. ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ.
    • HTTP๋Š” ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ…์ŠคํŠธ ํ˜•์‹์œผ๋กœ ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฃผ๊ณ ๋ฐ›์Šต๋‹ˆ๋‹ค.
    • ์š”์ฒญ ๋ฉ”์‹œ์ง€์—๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”๊ตฌํ•˜๋Š” ์ž‘์—…์ด, ์‘๋‹ต ๋ฉ”์‹œ์ง€์—๋Š” ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์— ๋Œ€ํ•ด ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • 2. ๋น„์—ฐ๊ฒฐ์„ฑ.
    • HTTP๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.
    • ์ฆ‰, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ๋งŒ ์—ฐ๊ฒฐ์„ ๋งบ๊ณ , ์‘๋‹ต์ด ์™„๋ฃŒ๋˜๋ฉด ์—ฐ๊ฒฐ์„ ๋Š์Šต๋‹ˆ๋‹ค.
    • ์ดํ›„ ์š”์ฒญ์ด ์žˆ์„ ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ์„ ๋งบ์Šต๋‹ˆ๋‹ค.
    • ์ด๋ฅผ ํ†ตํ•ด ์ž์› ์‚ฌ์šฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ง€์†์ ์ธ ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • 3. ๋ฌด์ƒํƒœ์„ฑ.
    • HTTP๋Š” ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.
    • ์ฆ‰, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ์ด์ „ ์š”์ฒญ์˜ ์ƒํƒœ๋‚˜ ์ •๋ณด๋ฅผ ๊ธฐ์–ตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฟ ํ‚ค(cookie), ์„ธ์…˜(session), JWT(Json Web Token)๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒํƒœ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • 4. ํฌํŠธ ๋ฒˆํ˜ธ.
    • HTTP๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 80๋ฒˆ ํฌํŠธ ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋œ HTTPS๋Š” 443๋ฒˆ ํฌํŠธ ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

2. HTTP์˜ ๋™์ž‘ ๋ฐฉ์‹.

  • HTTP๋Š” ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ตฌ์กฐ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ์ฃผ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์—ญํ• ์„ ํ•˜๊ณ , ์›น ์„œ๋ฒ„๊ฐ€ ์„œ๋ฒ„ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ์ ์ธ ์š”์ฒญ๊ณผ ์‘๋‹ต ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • 1. ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ.
      • ์‚ฌ์šฉ์ž๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €์— http://example.com๊ณผ ๊ฐ™์€ URL์„ ์ž…๋ ฅํ•˜๋ฉด, ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €)๊ฐ€ ์„œ๋ฒ„์— HTTP ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
      • ์ด ์š”์ฒญ์€ ์›น ํŽ˜์ด์ง€๋‚˜ ์ด๋ฏธ์ง€ ํŒŒ์ผ๊ณผ ๊ฐ™์€ ์ž์›์„ ์š”๊ตฌํ•˜๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.
    • 2. ์„œ๋ฒ„ ์‘๋‹ต.
      • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ํ›„, ์š”์ฒญํ•œ ์ž์›(์˜ˆ: HTML ๋ฌธ์„œ)์„ HTTP ์‘๋‹ต์œผ๋กœ ๋Œ๋ ค์ค๋‹ˆ๋‹ค.
    • 3. ์›น ํŽ˜์ด์ง€ ํ‘œ์‹œ.
      • ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฐ›์€ ์‘๋‹ต์„ ํ•ด์„ํ•˜์—ฌ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๊ฑฐ๋‚˜ ์ž์›์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

3. HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ.

  • HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
    • 1. ์š”์ฒญ ๋ผ์ธ(Request Line)
      • ๋ฉ”์„œ๋“œ(Method) : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญํ•˜๋Š” ์ž‘์—…์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
        • GET : ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญ.
        • POST : ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก.
        • PUT : ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธ.
        • DELETE : ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œ.
      • URL : ์š”์ฒญํ•˜๋ ค๋Š” ์ž์›์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
      • HTTP ๋ฒ„์ „ : ์‚ฌ์šฉ ์ค‘์ธ HTTP ํ”„๋กœํ† ์ฝœ์˜ ๋ฒ„์ „ ์ •๋ณด์ž…๋‹ˆ๋‹ค.(์˜ˆ: HTTP/1.1)
        • ์˜ˆ: GET /index.html HTTP/1.1
    • 2. ํ—ค๋”(Header)
      • ์š”์ฒญ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
      • ์˜ˆ๋ฅผ ๋“ค์–ด, User-Agent ํ—ค๋”๋Š” ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ํด๋ผ์ด์–ธํŠธ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ, Accept ํ—ค๋”๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ˆ˜๋ฝํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
    • 3. ๋ณธ๋ฌธ(Body)
      • POST ๋‚˜ PUT๊ณผ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ์ „์†กํ•  ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
      • GET ์š”์ฒญ์—์„œ๋Š” ๋ณธ๋ฌธ์ด ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

4. HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ.

  • 1. ์ƒํƒœ ๋ผ์ธ(Status Line)
    • HTTP ๋ฒ„์ „
      • ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” HTTP ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
    • ์ƒํƒœ ์ฝ”๋“œ(Status Code)
      • ์š”์ฒญ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.
    • ์ƒํƒœ ์„ค๋ช…(Status Text)
      • ์ƒํƒœ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.
    • ์˜ˆ: HTTP/1.1 200 OK
  • 2. ํ—ค๋”(Header)
    • ์‘๋‹ต์— ๋Œ€ํ•œ ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
      • ์˜ˆ๋ฅผ ๋“ค์–ด, Content-Type ํ—ค๋”๋Š” ์‘๋‹ต ๋ณธ๋ฌธ์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์ง€์ •ํ•˜๋ฉฐ, Content-Length๋Š” ์‘๋‹ต ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • 3. ๋ณธ๋ฌธ(Body)
    • ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, HTML ๋ฌธ์„œ, ์ด๋ฏธ์ง€, JSON ๋ฐ์ดํ„ฐ ๋“ฑ์ด ๋ณธ๋ฌธ์— ๋‹ด๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. HTTP ์ƒํƒœ ์ฝ”๋“œ.

  • HTTP ์‘๋‹ต์—์„œ ์ƒํƒœ ์ฝ”๋“œ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ์˜ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ฃผ์š” ์ƒํƒœ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • 1xx (์ •๋ณด) : ์š”์ฒญ์ด ์ˆ˜์‹ ๋˜์–ด ์ฒ˜๋ฆฌ ์ค‘์ž…์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • 2xx (์„ฑ๊ณต) : ์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
      • 200 OK : ์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ์Œ.
    • 3xx (๋ฆฌ๋‹ค์ด๋ ‰์…˜) : ์š”์ฒญํ•œ ์ž์›์ด ์˜๊ตฌ์ ์œผ๋กœ ๋‹ค๋ฅธ ์œ„์น˜๋กœ ์ด๋™ํ–ˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
      • 301 Moved Permanently : ์š”์ฒญํ•œ ์ž์›์ด ์˜๊ตฌ์ ์œผ๋กœ ๋‹ค๋ฅธ ์œ„์น˜๋กœ ์ด๋™ํ•จ.
      • 302 Found : ์š”์ฒญํ•œ ์ž์›์ด ์ผ์‹œ์ ์œผ๋กœ ๋‹ค๋ฅธ ์œ„์น˜๋กœ ์ด๋™ํ•จ.
    • 4xx(ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜) : ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
      • 400 Bad Request : ์ž˜๋ชป๋œ ์š”์ฒญ.
      • 404 Not Found : ์š”์ฒญํ•œ ์ž์›์ด ์กด์žฌํ•˜์ง€ ์•Š์Œ.
    • 5xx(์„œ๋ฒ„ ์˜ค๋ฅ˜) : ์„œ๋ฒ„์—์„œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ค‘์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
      • 500 Internal Server Error : ์„œ๋ฒ„์—์„œ ๋ฐœ์ƒํ•œ ์ผ๋ฐ˜์ ์ธ ์˜ค๋ฅ˜.
      • 503 Service Unavailable : ์„œ๋ฒ„๊ฐ€ ํ˜„์žฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Œ.

6. HTTP์˜ ํ•œ๊ณ„์™€ HTTPS

  • HTTP๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ํ”„๋กœํ† ์ฝœ ์ž…๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ, ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๊ฐ„์— ๊ฐ€๋กœ์ฑ„๊ธฐ(์Šค๋‹ˆํ•‘) ๋‹นํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฏผ๊ฐํ•œ ์ •๋ณด๊ฐ€ ๋ณดํ˜ธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด HTTPS(Hypertext Transfer Protocol Secure) ๊ฐ€ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • HTTPS๋Š” HTTP์— SSL/TLS ์•”ํ˜ธํ™” ๊ณ„์ธต ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ํ†ตํ•ด ์›น ์‚ฌ์ดํŠธ์™€ ์‚ฌ์šฉ์ž ๊ฐ„์˜ ํ†ต์‹ ์ด ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค.

7. ์š”์•ฝ.

  • HTTP๋Š” ์›น์—์„œ ํด๋ผ์ด์–ธํŠธ(์ฃผ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €)์™€ ์„œ๋ฒ„ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ๋กœ, ์š”์ฒญ(Request)-์‘๋‹ต(Response) ๊ตฌ์กฐ๋กœ ๋™์ž‘ํ•˜๋ฉฐ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • ๋น„์—ฐ๊ฒฐ์„ฑ๊ณผ ๋ฌด์ƒํƒœ์„ฑ์„ ๊ฐ€์ง€๋ฉฐ, ์ƒํƒœ ์ฝ”๋“œ์™€ ํ—ค๋”๋ฅผ ํ†ตํ•ด ์š”์ฒญ ๋ฐ ์‘๋‹ต์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์›น ์ƒ์—์„œ์˜ ํ†ต์‹ ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • HTTPS๋Š” HTTP์˜ ๋ณด์•ˆ ๊ฐ•ํ™”๋ฅผ ์œ„ํ•ด ๋„์ž…๋œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

2๏ธโƒฃ API(Application Programming Interface)

  • API(Application Programming Interface)๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐ„์— ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •์˜๋œ ๊ทœ์น™๊ณผ ๋„๊ตฌ์˜ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค.
  • ์ฆ‰, API๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„œ๋กœ ํ†ต์‹ ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

1. API์˜ ์ฃผ์š” ๊ฐœ๋….

  • 1. ์ธํ„ฐํŽ˜์ด์Šค.
    • API๋Š” ๋‘ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ„์— ์ค‘๊ฐœ ์—ญํ• ์„ ํ•˜์—ฌ, ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์ด๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ผ์ •ํ•œ ๊ทœ์น™ ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
    • ์ด๋ฅผ ํ†ตํ•ด ๊ฐ ์‹œ์Šคํ…œ์ด ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉด์„œ๋„ ๋…๋ฆฝ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • 2. ํ‘œ์ค€ํ™”๋œ ๊ทœ์น™.
    • API๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ํŠน์ • ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ‘œ์ค€ํ™”๋œ ๋ฐฉ์‹ ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ์›น API๋Š” HTTP ์š”์ฒญ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ฑฐ๋‚˜ ๋ฐ›๋Š” ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
  • 3. ์ถ”์ƒํ™”.
    • API๋Š” ๋‚ด๋ถ€ ๊ตฌํ˜„ ๋ฐฉ์‹์„ ์ˆจ๊ธฐ๊ณ , ์™ธ๋ถ€์—์„œ๋Š” ๋‹จ์ˆœํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์ œ๊ณตํ•˜์—ฌ ๋ณต์žกํ•œ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, Google Maps API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณต์žกํ•œ ์ง€๋„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ณผ์ •์„ ๋ชฐ๋ผ๋„ ๊ฐ„๋‹จํ•œ ๋ช…๋ น์„ ํ†ตํ•ด ์ง€๋„ ์ •๋ณด๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. API์˜ ์œ ํ˜•.

  • 1. ์›น API
    • REST API(Representational State Transfer API)
      • ์ฃผ๋กœ HTTP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๋Š” ์›น API์ž…๋‹ˆ๋‹ค. RESTful API๋Š” URL์„ ํ†ตํ•ด ์ž์›(Resource)์„ ์‹๋ณ„ํ•˜๊ณ , HTTP ๋ฉ”์„œ๋“œ(GET, POST, PUT, DELETE ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • SOAP API(Simple Object Access Protocol)
      • XML ๊ธฐ๋ฐ˜์˜ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์›น API์ž…๋‹ˆ๋‹ค.
      • REST API๋ณด๋‹ค ๋ณต์žกํ•˜์ง€๋งŒ, ๋” ์—„๊ฒฉํ•œ ํ‘œ์ค€์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
  • 2. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ API
    • ๊ฐœ๋ฐœ์ž๊ฐ€ ํŠน์ • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ œ๊ณต๋˜๋Š” ํ•จ์ˆ˜์™€ ๋ช…๋ น์–ด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, Python์˜ math ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ˆ˜ํ•™ ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” API์ž…๋‹ˆ๋‹ค.
  • 3. ์šด์˜ ์ฒด์ œ API
    • ์šด์˜ ์ฒด์ œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, Windows API๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ์ ‘๊ทผ, ๊ทธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ, ๋„คํŠธ์›Œํฌ ๊ธฐ๋Šฅ ๋“ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • 4. ํ•˜๋“œ์›จ์–ด API
    • ํ•˜๋“œ์›จ์–ด ์žฅ์น˜(์˜ˆ: ํ”„๋ฆฐํ„ฐ, ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ)์™€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ API์ž…๋‹ˆ๋‹ค.
    • ์ด๋ฅผ ํ†ตํ•ด ์†Œํ”„ํŠธ์›จ์–ด๋Š” ํ•˜๋“œ์›จ์–ด์˜ ๊ธฐ๋Šฅ์„ ์ง์ ‘ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. API์˜ ๊ตฌ์„ฑ ์š”์†Œ.

  • 1. ์š”์ฒญ(Request)
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.
    • ์ผ๋ฐ˜์ ์œผ๋กœ ์›น API์—์„œ๋Š” HTTP ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์š”์ฒญ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
      • URL : ์ž์›์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
      • HTTP ๋ฉ”์„œ๋“œ : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ˆ˜ํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ์ž‘์—…์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
        • GET : ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
        • POST : ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
        • PUT : ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
        • DELETE : ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
      • ํ—ค๋”(Header) : ์š”์ฒญ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ, ์ธ์ฆ ์ •๋ณด๋‚˜ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
      • ๋ณธ๋ฌธ(Body) : ์ฃผ๋กœ POST ๋‚˜ PUT ์š”์ฒญ์—์„œ ์„œ๋ฒ„๋กœ ์ „์†กํ•  ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  • 2. ์‘๋‹ต(Response)
    • ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋Œ€ํ•ด ๋ฐ˜ํ™˜ํ•˜๋Š” ์ •๋ณด์ž…๋‹ˆ๋‹ค.
    • ์‘๋‹ต์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
      • ์ƒํƒœ ์ฝ”๋“œ : ์š”์ฒญ์ด ์„ฑ๊ณตํ–ˆ๋Š”์ง€, ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.
        • 200 OK : ์š”์ฒญ ์„ฑ๊ณต.
        • 404 Not Found : ์š”์ฒญํ•œ ์ž์›์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ.
        • 500 Internal Server Error : ์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜.
  • 3. ๋ณธ๋ฌธ(Body)
    • ์„œ๋ฒ„๊ฐ€ ๋ฐ˜ํ™˜ํ•˜๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ๋กœ, ๋ณดํ†ต JSON, XML, HTML ํ˜•์‹์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

4. API์˜ ์˜ˆ์‹œ.

  • 1. ์›น API ์˜ˆ์‹œ.
    • Google Maps API
      • ๊ฐœ๋ฐœ์ž๋Š” Google Maps API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น ์‚ฌ์ดํŠธ๋‚˜ ์•ฑ์— ์ง€๋„๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ , ์œ„์น˜ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • ์‚ฌ์šฉ์ž๋Š” ์ง€๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์•„๋„ Google์˜ ์„œ๋ฒ„์—์„œ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Twitter API
      • Twitter API๋Š” ํŠธ์œ„ํ„ฐ ๋ฐ์ดํ„ฐ(ํŠธ์œ—, ์‚ฌ์šฉ์ž ์ •๋ณด ๋“ฑ)์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
      • ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ํŠธ์œ„ํ„ฐ์™€ ๊ด€๋ จ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ๋ถ„์„ ๋„๊ตฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ API ์˜ˆ์‹œ
      • Java Standard Library
        • Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜ ๋ฐ ๋ฉ”์„œ๋“œ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค.
        • ์˜ˆ๋ฅผ ๋“ค์–ด, java.util.List API๋ฅผ ํ†ตํ•ด ๋ฆฌ์ŠคํŠธ ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. API์˜ ์žฅ์ .

  • 1. ์žฌ์‚ฌ์šฉ์„ฑ.
    • API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ์กด ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด, ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฐœ๋ฐœํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.
    • ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ ํšจ์œจ์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค.
  • 2. ํ™•์žฅ์„ฑ.
    • API๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ, ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์–‘ํ•œ ์•ฑ์ด Facebook API๋ฅผ ์‚ฌ์šฉํ•ด ์†Œ์…œ ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • 3. ์œ ์ง€๋ณด์ˆ˜.
    • API๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ธก(์„œ๋ฒ„, ์„œ๋น„์Šค ์ œ๊ณต์ž)๊ณผ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ธก(ํด๋ผ์ด์–ธํŠธ)์ด ๋…๋ฆฝ์ ์œผ๋กœ ์œ ์ง€๋ณด์ˆ˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
    • ์ฆ‰, API์˜ ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ์ด ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ํด๋ผ์ด์–ธํŠธ๋Š” ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ API๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • 4. ๋ณด์•ˆ.
    • API๋Š” ๋ฐ์ดํ„ฐ๋‚˜ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • API ํ‚ค, OAuth ๋“ฑ์˜ ์ธ์ฆ ๋ฐฉ์‹์ด ์ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

6. API์˜ ๋ณด์•ˆ.

  • API๋Š” ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ธ์ฆ(Authentication) ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ(Authorization)๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฃผ์š” ๋ณด์•ˆ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • API ํ‚ค
      • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ณ ์œ  ํ‚ค๋กœ, API ์š”์ฒญ์ด ์˜ฌ๋ฐ”๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์™”๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    • OAuth
      • ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ž์‹ ์˜ ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์Šน์ธํ•˜๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.
    • HTTPS
      • API ํ†ต์‹  ์‹œ ์•”ํ˜ธํ™”๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†ก๋˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

7. ์š”์•ฝ.

  • API๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ณ  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • ์›น, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์šด์˜ ์ฒด์ œ ๋“ฑ ๋‹ค์–‘ํ•œ API๊ฐ€ ์žˆ์œผ๋ฉฐ, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์‹œ์Šคํ…œ ๊ฐ„์˜ ํ†ตํ•ฉ์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.
  • API๋Š” ์žฌ์‚ฌ์šฉ์„ฑ, ํ™•์žฅ์„ฑ, ๋ณด์•ˆ์„ฑ ์ธก๋ฉด์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

3๏ธโƒฃ URL(Uniform Resource Locator)

  • URL(Uniform Resource Locator) ์€ ์ธํ„ฐ๋„ท ์ƒ์—์„œ ํŠน์ • ์ž์›์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.
  • ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” URL์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ ์›น ํŽ˜์ด์ง€๋‚˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.
  • ์‰ฝ๊ฒŒ ๋งํ•ด, URL์€ ์ธํ„ฐ๋„ท ์ƒ์—์„œ ์ž์›์ด ์–ด๋””์— ์œ„์น˜ํ•ด ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” โ€œ์›น ์ฃผ์†Œโ€ ์ž…๋‹ˆ๋‹ค.

1. URL์˜ ๊ตฌ์„ฑ ์š”์†Œ.

  • URL์€ ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ฐ๊ฐ์˜ ๋ถ€๋ถ„์€ ์ž์›์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์ผ๋ฐ˜์ ์ธ URL ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํ”„๋กœํ† ์ฝœ://์‚ฌ์šฉ์ž ์ •๋ณด@ํ˜ธ์ŠคํŠธ:ํฌํŠธ/๊ฒฝ๋กœ?์ฟผ๋ฆฌ#ํ”„๋ž˜๊ทธ๋จผํŠธ
  • 1. ํ”„๋กœํ† ์ฝœ(Scheme)
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž์›์— ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•  ํ†ต์‹  ๋ฐฉ์‹์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • ์˜ˆ: http, https, ftp ๋“ฑ
    • ์˜ˆ: https://www.example.com์—์„œ https๋Š” HTTPS ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • 2. ํ˜ธ์ŠคํŠธ(Host)
    • ์ž์›์ด ์œ„์น˜ํ•œ ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„ ๋˜๋Š” IP ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.
    • ์˜ˆ: www.example.com, 198.168.1.1
    • ์˜ˆ: https://www.example.com์—์„œ www.example.com์€ ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
  • 3. ํฌํŠธ ๋ฒˆํ˜ธ(Port) (์„ ํƒ ์‚ฌํ•ญ)
    • ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•  ํŠน์ • ๋„คํŠธ์›Œํฌ ํฌํŠธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ๋ณธ์ ์œผ๋กœ HTTP๋Š” ํฌํŠธ 80, HTTPS๋Š” ํฌํŠธ 443์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ํฌํŠธ๋ฅผ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ ํฌํŠธ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ: https://www.example.com:8080์—์„œ 8080์€ ํฌํŠธ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.
  • 4. ๊ฒฝ๋กœ(Path)
    • ์„œ๋ฒ„ ๋‚ด์—์„œ ํŠน์ • ์ž์›์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฒฝ๋กœ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ์ž์›(์›น ํŽ˜์ด์ง€, ์ด๋ฏธ์ง€, ํŒŒ์ผ ๋“ฑ)์˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ: https://www.example.com/about ์—์„œ /about์€ example.com ์„œ๋ฒ„ ๋‚ด์˜ about ํŽ˜์ด์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • 5. ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด(Query String)(์„ ํƒ ์‚ฌํ•ญ)
    • ์ถ”๊ฐ€์ ์ธ ๋งค๊ฐœ๋ณ€์ˆ˜(parameters)๋ฅผ ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ์ฃผ๋กœ URL ๋์— ? ๋’ค์— ์œ„์น˜ํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” &๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ: https://www.example.com/search?q=example&lang=en์—์„œ q=example๊ณผ lang=en์€ ๊ฒ€์ƒ‰์–ด์™€ ์–ธ์–ด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
  • 6. ํ”„๋ž˜๊ทธ๋จผํŠธ(Fragment)(์„ ํƒ ์‚ฌํ•ญ)
    • ํŽ˜์ด์ง€ ๋‚ด ํŠน์ • ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • # ๊ธฐํ˜ธ ๋’ค์— ์œ„์น˜ํ•˜๋ฉฐ, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•ด๋‹น ์œ„์น˜๋กœ ์Šคํฌ๋กคํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ: https://www.example.com/docs#section2 ์—์„œ #section2๋Š” ํŽ˜์ด์ง€ ๋‚ด ํŠน์ • ์„น์…˜์œผ๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ž˜๊ทธ๋จผํŠธ์ž…๋‹ˆ๋‹ค.

2. URL ์˜ˆ์‹œ.

  • ๋‹ค์Œ์€ URL์˜ ์‹ค์ œ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.
https://www.example.com:8080/docs/tutorial.html?name=test#section1
  • ์ด URL์„ ๋ถ„์„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • ํ”„๋กœํ† ์ฝœ : https(๋ณด์•ˆ๋œ HTTP ์—ฐ๊ฒฐ)
    • ํ˜ธ์ŠคํŠธ : www.example.com (์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„)
    • ํฌํŠธ : 8080 (์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ ๋ฒˆํ˜ธ)
    • ๊ฒฝ๋กœ : /docs/tutorial.html (์„œ๋ฒ„ ๋‚ด ์ž์›์˜ ๊ฒฝ๋กœ)
    • ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด : ?name=test (์ถ”๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜ name์ด test๋ผ๋Š” ๊ฐ’์„ ๊ฐ€์ง)
    • ํ”„๋ž˜๊ทธ๋จผํŠธ : #section1 (๋ฌธ์„œ ๋‚ด ํŠน์ • ์ƒ‰์…˜์œผ๋กœ ์ด๋™)

3. URL์˜ ์—ญํ• .

  • 1. ์›น ์ž์› ์‹๋ณ„
    • URL์€ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ๊ณ ์œ ํ•œ ์ž์›์„ ์‹๋ณ„ํ•˜์—ฌ, ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์›น ํŽ˜์ด์ง€๋‚˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
    • ์ด๋Š” ํ…์ŠคํŠธ ๋ฌธ์„œ, ์ด๋ฏธ์ง€, ๋™์˜์ƒ, API ์—”๋“œํฌ์ธํŠธ ๋“ฑ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ์ž์›์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • 2. ๋ฐ์ดํ„ฐ ์ „์†ก
    • URL์€ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋Š” ๋ฐ์—๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ํŠนํžˆ ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์„ ํ†ตํ•ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒ€์ƒ‰ ์—”์ง„์—์„œ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด URL์— ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด๋กœ ์„œ๋ฒ„์— ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
  • 3. ๋„คํŠธ์›Œํฌ ๋ฆฌ์†Œ์Šค ์—ฐ๊ฒฐ
    • URL์€ ๋‹จ์ˆœํ•œ ์›น ํŽ˜์ด์ง€๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, FTP ์„œ๋ฒ„, ๋ฉ”์ผ ์„œ๋ฒ„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ์˜ ๋„คํŠธ์›Œํฌ ์ž์›๊ณผ๋„ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. URL๊ณผ URI์˜ ์ฐจ์ด.

  • URI(Uniform Resource Identifier) ๋Š” URL์„ ํฌํ•จํ•˜๋Š” ๋” ๋„“์€ ๊ฐœ๋…์œผ๋กœ, ์ž์›์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์—ด์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
  • URI๋Š” ๋‘ ๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.
    • URL : ์ž์›์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์‹๋ณ„์ž.
    • URN(Uniform Resource Name) : ์ž์›์˜ ์ด๋ฆ„๋งŒ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์‹๋ณ„์ž.
      • ์˜ˆ: ISBN ๋ฒˆํ˜ธ(urn:isbn:041450523)
  • URL์€ ์ž์›์˜ ์œ„์น˜(์ฃผ์†Œ)๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” URI์˜ ํ•œ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.

5. URL์˜ ์ค‘์š”์„ฑ.

  • 1. ์›น ํƒ์ƒ‰.
    • ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ URL์„ ์ž…๋ ฅํ•จ์œผ๋กœ์จ ์›ํ•˜๋Š” ์›น ํŽ˜์ด์ง€์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋˜ํ•œ ํ•˜์ดํผ๋งํฌ๋กœ URL์„ ์—ฐ๊ฒฐํ•ด ์‚ฌ์šฉ์ž๋Š” ์‰ฝ๊ฒŒ ์›น ํŽ˜์ด์ง€ ๊ฐ„์„ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • 2. API ํ˜ธ์ถœ.
    • URL์€ ์›น API ํ˜ธ์ถœ ์‹œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
    • API๋Š” URL์„ ํ†ตํ•ด ํŠน์ • ์ž์›์— ์ ‘๊ทผํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
    • RESTful API์—์„œ๋Š” URL์ด ์ž์›์„ ์‹๋ณ„ํ•˜๊ณ  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค.
  • 3. ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”(SEO).
    • URL ๊ตฌ์กฐ๋Š” ๊ฒ€์ƒ‰ ์—”์ง„์—์„œ ์›น ํŽ˜์ด์ง€๋ฅผ ํฌ๋กค๋งํ•˜๊ณ  ์ธ๋ฑ์‹ฑํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค.
    • ์ž˜ ๊ตฌ์„ฑ๋œ URL์€ ๊ฒ€์ƒ‰ ์—”์ง„์ด ํŽ˜์ด์ง€ ๋‚ด์šฉ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค.

6. ์š”์•ฝ.

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

4๏ธโƒฃ ์ฟผ๋ฆฌ(Query)

  • ์ฟผ๋ฆฌ(Query) ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋–„ URL์˜ ์ผ๋ถ€ ๋กœ ํฌํ•จ๋˜์–ด ์„œ๋ฒ„๋กœ ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ์ฃผ๋กœ GET ์š”์ฒญ์— ์‚ฌ์šฉ๋˜๋ฉฐ, URL ๋์— ? ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์„ ์‹œ์ž‘ํ•˜๊ณ , ํ•˜๋‚˜ ์ด์ƒ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜(ํŒŒ๋ผ๋ฏธํ„ฐ)๋ฅผ & ๊ธฐํ˜ธ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์„œ๋ฒ„์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

1. ์ฟผ๋ฆฌ์˜ ์ฃผ์š” ๊ฐœ๋….

  • 1. GET ์š”์ฒญ์—์„œ์˜ ์ฟผ๋ฆฌ ์‚ฌ์šฉ.
    • GET ์š”์ฒญ์€ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ URL์— ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜์—ฌ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
    • ์ฟผ๋ฆฌ๋Š” URL์˜ ๊ฒฝ๋กœ ๋’ค์— ๋ถ™์œผ๋ฉฐ, ? ๋กœ ์‹œ์ž‘ํ•œ ํ›„ ๋งค๊ฐœ๋ณ€์ˆ˜(key-value)๋ฅผ =๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
    • ์—ฌ๋Ÿฌ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ &๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
    • ์ฟผ๋ฆฌ๋Š” ์ฃผ๋กœ ๊ฒ€์ƒ‰ ์กฐ๊ฑด, ํ•„ํ„ฐ๋ง ์ •๋ณด, ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ, ์ •๋ ฌ ์ˆœ์„œ ๋“ฑ ์„ ์„œ๋ฒ„์— ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
https://www.example.com/search?q=shoes&color=red&size=10
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ์œ„์™€ ๊ฐ™์€ URL์„ ์‚ดํŽด๋ด…์‹œ๋‹ค.
    • q=shoes : q๋ผ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์— shoes๋ผ๋Š” ๊ฒ€์ƒ‰์–ด๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
    • color=red : color ๋ผ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์— red ๋ผ๋Š” ๊ฐ’์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
    • size=10 : size ๋ผ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์— 10 ์ด๋ผ๋Š” ๊ฐ’์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • 2. ์ฟผ๋ฆฌ์˜ ๊ตฌ์กฐ.
    • ?๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
    • key=value ํ˜•ํƒœ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๊ทธ ๊ฐ’์„ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.
    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ &๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ๋ณธ์ ์ธ ์ฟผ๋ฆฌ ํ˜•์‹์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
https://www.example.com/resource?key1=value1&key2=value2&key3=value3
  • 3. ์„œ๋ฒ„์—์„œ์˜ ์ฒ˜๋ฆฌ.
    • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ „๋‹ฌํ•œ ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์„ ํŒŒ์‹ฑํ•˜์—ฌ ๊ฐ๊ฐ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
    • ์ถ”์ถœ๋œ ๊ฐ’๋“ค์€ ์„œ๋ฒ„์—์„œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒ€์ƒ‰์–ด, ํ•„ํ„ฐ๋ง ์˜ต์…˜, ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ ๋“ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • 4. ๋ฐ์ดํ„ฐ์˜ ์ œํ•œ.
    • GET ์š”์ฒญ์€ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ ์ œํ•œ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ธŒ๋ผ์šฐ์ €๋‚˜ ์„œ๋ฒ„๋Š” ๋ณดํ†ต ์•ฝ 2048์ž ์ •๋„์˜ URL ๊ธธ์ด๋ฅผ ํ—ˆ์šฉํ•˜๋ฏ€๋กœ, ์ฟผ๋ฆฌ๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ์ ์Šต๋‹ˆ๋‹ค.
    • ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ(๋น„๋ฐ€๋ฒˆํ˜ธ, ๊ฐœ์ธ์ •๋ณด ๋“ฑ)๋Š” ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด๋กœ ์ „์†กํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
    • ์ฟผ๋ฆฌ๋Š” URL์— ๋…ธ์ถœ๋˜๋ฉฐ, ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ก์ด๋‚˜ ์„œ๋ฒ„ ๋กœ๊ทธ์— ์ €์žฅ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
    • ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋ ค๋ฉด POST ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.

2. ์ฟผ๋ฆฌ์˜ ์‚ฌ์šฉ ์˜ˆ์‹œ.

  • ์˜ˆ์‹œ 1: ๊ฒ€์ƒ‰.
https://www.example.com/search?query=laptop&category=electronics&sort=price
  • ์ด ์ฟผ๋ฆฌ๋Š” โ€œlaptopโ€์ด๋ผ๋Š” ๊ฒ€์ƒ‰์–ด๋กœ ์ „์ž ์ œํ’ˆ ์นดํ…Œ๊ณ ๋ฆฌ ๋‚ด์—์„œ ๊ฐ€๊ฒฉ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ๊ฒฐ๊ณผ๋ฅผ ์š”์ฒญํ•˜๋Š” ์˜ˆ์ž…๋‹ˆ๋‹ค.
    • query : laptop(๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ)
    • category : electronics(์นดํ…Œ๊ณ ๋ฆฌ)
    • sort : price(๊ฐ€๊ฒฉ์ˆœ ์ •๋ ฌ)
  • ์˜ˆ์‹œ 2: ํ•„ํ„ฐ๋ง ๋ฐ ํŽ˜์ด์ง•.
https://www.example.com/products?category=shoes&brand=nike&size=9&page=2
  • ์—ฌ๊ธฐ์„œ๋Š” ์‹ ๋ฐœ ์นดํ…Œ๊ณ ๋ฆฌ์—์„œ Nike ๋ธŒ๋žœ๋“œ์˜ ์‚ฌ์ด์ฆˆ 9์ธ ์ œํ’ˆ์„ ๋‘ ๋ฒˆ์งธ ํŽ˜์ด์ง€์—์„œ ์š”์ฒญํ•˜๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.
    • category : shoes(์ œํ’ˆ ์นดํ…Œ๊ณ ๋ฆฌ)
    • brand : nike (๋ธŒ๋žœ๋“œ ํ•„ํ„ฐ)
    • size : 9 (์‚ฌ์ด์ฆˆ ํ•„ํ„ฐ)
    • page : 2 (ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ)

3. ์ฟผ๋ฆฌ์˜ ์žฅ์ .

  • URL์„ ํ†ตํ•ด ๊ฐ„ํŽธํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ ์ „์†ก.
    • ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์„ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ๋Š” ์‰ฝ๊ฒŒ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ง์ ‘ ๋งํฌ๋กœ ๊ณต์œ  ๊ฐ€๋Šฅ.
    • ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์„ ํฌํ•จํ•œ URL์€ ๋ฐ”๋กœ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ๋™์ผํ•œ URL์„ ํ†ตํ•ด ๋™์ผํ•œ ์š”์ฒญ์„ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ํ•„ํ„ฐ๋ง ์˜ต์…˜์ด ์ ์šฉ๋œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ํŽ˜์ด์ง€์˜ URL์„ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”(SEO).
    • ๊ฒ€์ƒ‰ ์—”์ง„์ด ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ํŠน์ •ํ•œ ํŽ˜์ด์ง€ ๋‚ด์šฉ์„ ์ดํ•ดํ•˜๊ณ  ์ƒ‰์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ์ฟผ๋ฆฌ์™€ POST ์š”์ฒญ์˜ ์ฐจ์ด์ .

  • GET ์š”์ฒญ ์—์„œ์˜ ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์€ URL์— ๋…ธ์ถœ๋˜๋ฉฐ, ๋ธŒ๋ผ์šฐ์ € ํžˆ์Šคํ† ๋ฆฌ๋‚˜ ์„œ๋ฒ„ ๋กœ๊ทธ์— ์ €์žฅ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ด ๋•Œ๋ฌธ์— ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์ „์†กํ•  ๋•Œ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • POST ์š”์ฒญ ์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณธ๋ฌธ(body)์— ๋‹ด์•„ ์ „์†กํ•˜๋ฏ€๋กœ, URL์— ๋…ธ์ถœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํฐ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ฑฐ๋‚˜ ๋ณด์•ˆ์ด ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์ „์†กํ•  ๋•Œ๋Š” POST ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

5. ์š”์•ฝ.

  • ์ฟผ๋ฆฌ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ GET ์š”์ฒญ์˜ URL์— ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ํฌํ•จ๋˜์–ด ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์€ key=value ํ˜•ํƒœ๋กœ ์ „๋‹ฌ๋˜๋ฉฐ, ์—ฌ๋Ÿฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” &๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.
  • ๊ฒ€์ƒ‰์–ด, ํ•„ํ„ฐ ์กฐ๊ฑด, ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ ๋“ฑ์„ ์„œ๋ฒ„๋กœ ์ „์†กํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ URL์— ๋…ธ์ถœ๋˜๋Š” ๋งŒํผ ๋ฏผ๊ฐํ•œ ์ •๋ณด ์ „์†ก์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

5๏ธโƒฃ ๋ฐ”๋””(Body)

  • ๋ฐ”๋””(Body) ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ POST, PUT, PATCH ์™€ ๊ฐ™์€ HTTP ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ, ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„ ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋Š” ๋ถ€๋ถ„ ์ž…๋‹ˆ๋‹ค.
  • ํŠนํžˆ, ํฐ ์–‘์˜ ๋ฐ์ดํ„ฐ๋‚˜ ๋ณด์•ˆ์ด ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ๋ฐ”๋””๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ”๋””๋Š” URL์— ๋…ธ์ถœ๋˜์ง€ ์•Š๊ณ  ์š”์ฒญ ๋ฉ”์‹œ์ง€์˜ ๋ณธ๋ฌธ์— ํฌํ•จ๋˜๋ฏ€๋กœ, ๋ฐ์ดํ„ฐ ์ „์†ก์— ์žˆ์–ด ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

1. ๋ฐ”๋””๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์š” HTTP ๋ฉ”์„œ๋“œ.

  • 1. POST
    • ์„œ๋ฒ„์— ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ์š”์ฒญ ๋ฐ”๋””์— ์ „์†กํ•  ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜์—ฌ ์„œ๋ฒ„๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
    • ์˜ˆ: ์‚ฌ์šฉ์ž ๋“ฑ๋ก, ํŒŒ์ผ ์—…๋กœ๋“œ ๋“ฑ.
  • 2. PUT
    • ์„œ๋ฒ„์— ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ์š”์ฒญ ๋ฐ”๋””์— ์ˆ˜์ •ํ•  ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜์—ฌ ์„œ๋ฒ„๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
    • ์˜ˆ: ๊ธฐ์กด ์‚ฌ์šฉ์ž์˜ ์ •๋ณด ์—…๋ฐ์ดํŠธ.
  • 3. PATCH
    • ์„œ๋ฒ„์˜ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ์ „์ฒด ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ, ์ˆ˜์ •ํ•  ๋ถ€๋ถ„๋งŒ์„ ๋ฐ”๋””์— ํฌํ•จํ•˜์—ฌ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  • 4. DELETE
    • ์ผ๋ถ€ ๊ฒฝ์šฐ์—๋Š” ์„œ๋ฒ„์— ์‚ญ์ œํ•  ์ž์›์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ๋ฐ”๋””์— ๋‹ด์•„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ DELETE ์š”์ฒญ์€ ๋ฐ”๋”” ์—†์ด ์‹คํ–‰๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

2. ๋ฐ”๋””๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ .

  • 1. ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ „์†ก.
    • GET ์š”์ฒญ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์€ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ์— ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ฐ˜๋ฉด, ๋ฐ”๋””๋ฅผ ์‚ฌ์šฉํ•˜๋Š” POST๋‚˜ PUT ์š”์ฒญ์€ ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์ด๋‚˜ ์ด๋ฏธ์ง€ ๋“ฑ์„ ์ „์†กํ•  ๋•Œ ๋ฐ”๋””๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • 2. ๋ณด์•ˆ.
    • ๋ฐ”๋””์— ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ๋Š” URL์— ๋…ธ์ถœ๋˜์ง€ ์•Š์œผ๋ฉฐ, ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์†Œ ์ฐฝ์ด๋‚˜ ์„œ๋ฒ„ ๋กœ๊ทธ์— ๊ธฐ๋ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ, ๋น„๋ฐ€ ๋ฒˆํ˜ธ, ๊ฐœ์ธ์ •๋ณด, ๊ฒฐ์ œ ์ •๋ณด ๋“ฑ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ๋ฐ”๋””๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ์ ˆํ•ฉ๋‹ˆ๋‹ค.
  • 3. ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ์ „์†ก.
    • JSON, XML, HTML๊ณผ ๊ฐ™์€ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ฐ”๋””๋Š” ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋‹ด์•„์„œ ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

3. ์š”์ฒญ ๋ฐ”๋””์˜ ํ˜•์‹(Content-Type)

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ, ์š”์ฒญ ๋ฐ”๋””์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹์€ Content-Type ํ—ค๋”๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • 1. application/json
      • JSON(JavaScript Object Notation) ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
      • RESTful API์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค.
        {
          "username": "example_user",
          "password": "example_password"
        }
      
    • 2. application/x-www-form-urlencoded
      • HTML ํผ์—์„œ ์ „์†ก๋˜๋Š” ๊ธฐ๋ณธ ํ˜•์‹์œผ๋กœ, ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ URL ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์œผ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
      • ๋ฐ์ดํ„ฐ๋Š” URL ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด๊ณผ ์œ ์‚ฌํ•œ ํ˜•์‹์œผ๋กœ ๋ฐ”๋””์— ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
        username=example_user&password=example_password
      
    • 3. multipart/form-data
      • ํŒŒ์ผ ์—…๋กœ๋“œ์™€ ๊ฐ™์ด ๋‹ค์–‘ํ•œ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ์ „์†กํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
      • ๊ฐ ํŒŒ์ผ์ด๋‚˜ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์„ ๋ณ„๋„์˜ ํŒŒํŠธ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • ํŠนํžˆ ์ด๋ฏธ์ง€, ๋ฌธ์„œ์™€ ๊ฐ™์€ ํŒŒ์ผ์„ ์ „์†กํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
        Content-Type: multipart/form-data; boundary=------------------------boundary
        --------------------------boundary
        Content-Disposition: form-data; name="username"
      
        example_user
        --------------------------boundary
        Content-Disposition: form-data; name="file"; filename="example.png"
        Content-Type: image/png
      
        (ํŒŒ์ผ ๋ฐ์ดํ„ฐ)
        --------------------------boundary--
      
    • 4. text/plain
      • ๋‹จ์ˆœ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
      • ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ„๋‹จํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๊ฑฐ๋‚˜ ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ์š”์ฒญ ๋ฐ”๋”” ์‚ฌ์šฉ ์˜ˆ์‹œ.

  • 1. POST ์š”์ฒญ ์˜ˆ์‹œ (JSON ๋ฐ์ดํ„ฐ ์ „์†ก)
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ์‚ฌ์šฉ์ž ๋“ฑ๋ก ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ, JSON ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      POST /register HTTP/1.1
      Host: www.example.com
      Content-Type: application/json
        
      {
          "username": "new_user",
          "email": "user@example.com",
          "password": "user_password"
      }
    
    • Content-Type
      • ์š”์ฒญ ๋ฐ”๋””๊ฐ€ JSON ํ˜•์‹์ž„์„ ์„œ๋ฒ„์— ์•Œ๋ฆฝ๋‹ˆ๋‹ค.
    • ๋ฐ”๋””
      • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ „์†กํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ JSON ํ˜•์‹์œผ๋กœ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • 2. PUT ์š”์ฒญ ์˜ˆ์‹œ (ํผ ๋ฐ์ดํ„ฐ ์ „์†ก)
    • ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ, ํผ ๋ฐ์ดํ„ฐ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      PUT /update-profile HTTP/1.1
      Host: www.example.com
      Content-Type: application/x-www-form-urlencoded
        
      username=updated_user&email=updated@example.com
    
    • Content-Type
      • application/x-www-form-urlencoded ๋Š” ํ‚ค-๊ฐ’ ์Œ์˜ ํผ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค.
    • ๋ฐ”๋””
      • ์ˆ˜์ •๋œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

5. ๋ฐ”๋””์˜ ๋ณด์•ˆ.

  • ๋ฐ”๋””๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” URL์— ๋…ธ์ถœ๋˜์ง€ ์•Š์ง€๋งŒ, ์—ฌ์ „ํžˆ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†ก๋˜๋Š” ๋™์•ˆ ๋ณด์•ˆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ์œ„ํ•ด HTTPS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ์„ ์•”ํ˜ธํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.
  • HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ”๋””์— ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๊ฐ„์—์„œ ๊ฐ€๋กœ์ฑ„์ด๊ฑฐ๋‚˜ ๋ณ€์กฐ๋˜์ง€ ์•Š๋„๋ก ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

6. ์š”์•ฝ.

  • ๋ฐ”๋””๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ์š”์ฒญ ๋ฉ”์‹œ์ง€์˜ ๋ณธ๋ฌธ์— ํฌํ•จ๋˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.
  • ์ฃผ๋กœ POST, PUT, PATCH์™€ ๊ฐ™์€ ์š”์ฒญ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋‚˜ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†กํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ”๋””์—๋Š” JSON, ํผ ๋ฐ์ดํ„ฐ, ํŒŒ์ผ ๋“ฑ ๋‹ค์–‘ํ•œ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, URL์— ๋…ธ์ถœ๋˜์ง€ ์•Š์•„ ๋ณด์•ˆ ์ธก๋ฉด์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.