ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ๐Ÿ“’ | IT์ง€์‹- API์™€ JSON
    ๐Ÿ“’ ๋ถ ์Šคํ„ฐ๋””/๋น„์ „๊ณต์ž๋ฅผ ์œ„ํ•œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” IT์ง€์‹ 2024. 8. 13. 18:32

    ๋น„์ „๊ณต์ž๋ฅผ ์œ„ํ•œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” IT ์ง€์‹ - 4์žฅ. API์™€ JSON

     

    1. API์™€ CRUD

    API

    • ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  : ์ปดํ“จํ„ฐ๋Š” ํ•œ๊ธ€์„ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์‚ฌ๋žŒ์˜ ์š”์ฒญ์„ ์ปดํ“จํ„ฐ๊ฐ€ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฒด๊ณ„๋ฅผ ์žก์€ ๊ฒƒ
    • ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„์™€ ๊ฐ™์€ ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ(์†Œํ”„ํŠธ์›จ์–ด)์—์„œ ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  ์ฒด๊ณ„
    • ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  ์ฒด๊ณ„
    • ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ์ชฝ๊ณผ ์‘๋‹ต์„ ์ฃผ๋Š” ์ชฝ์ด ๋‚˜๋‰˜์–ด ์žˆ์Œ

     

     

    ์„œ๋ฒ„์ฃผ์†Œ

    • ์„œ๋ฒ„ ์ปดํ“จํ„ฐ๊ฐ€ ์œ„์น˜ํ•œ ๊ณณ์˜ ์ฃผ์†Œ(IP) ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋“ค๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋Š” ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์ด ๋œ๋‹ค.
    • ์ฆ‰ API๋Š” ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ์ž๋Š” ๊ทธ API๋ฅผ ์‚ฌ์šฉ
    • IP์ฃผ์†Œ : 000.000.000.000๊ณผ ๊ฐ™์€ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง
    • ๋„๋ฉ”์ธ ๋„ค์ž„ : IP์ฃผ์†Œ๋ณด๋‹ค ๋”์šฑ ์ดํ•ดํ•˜๊ธฐ ์ข‹๊ฒŒ ๋ฌธ์ž๋กœ ๋งŒ๋“  ๊ฒƒ. ex. https://sini12.tistory.com/

     

     

     

     

    API๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ธฐ๋Šฅ๋„ ํ•จ๊ป˜ ๋„ฃ๋Š”๋‹ค. ๋”ฐ๋ผ์„œ API๋ฅผ ํ†ตํ•ด ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ๋Š” ๋ฐ์ดํ„ฐ๋„ ๊ฐ™์ด ๋‹ด๊ธด๋‹ค.

    ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ๊ธฐ์ค€์ด ๋˜๋Š” ์š”์ฒญ, CRUD (๋ธ”๋กœ๊ทธ๋ฅผ ๊ฐ€์ •ํ–ˆ์„ ๋•Œ)

    • Create : (Post ์ƒ์„ฑํ•ด์ค˜)ํƒ€์ž„๋ผ์ธ์— ์‚ฌ์ง„์„ '์˜ฌ๋ฆฌ๋Š”'์š”์ฒญ
    • Read : (Get ๋ถˆ๋Ÿฌ์™€์ค˜)ํƒ€์ž„๋ผ์ธ์— ์‚ฌ์ง„์„ '๋ถˆ๋Ÿฌ์˜ค๋Š”'์š”์ฒญ
    • Update : (Put์ „์ฒด / Patch์ผ๋ถ€ ๋ฐ”๊ฟ”์ค˜)ํƒ€์ž„๋ผ์ธ์— ์‚ฌ์ง„์„ '๋ฐ”๊พธ๋Š”'์š”์ฒญ
    • Delete : (Delete ์ง€์›Œ์ค˜)ํƒ€์ž„๋ผ์ธ์— ์‚ฌ์ง„์„ '์ง€์šฐ๋Š”'์š”์ฒญ

    ๊ฐœ๋ฐœ์ž๋“ค์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ๋•Œ ํ•ญ์ƒ CRUD์˜ ๊ด€์ ์—์„œ ์ƒ๊ฐํ•œ๋‹ค. ์ดˆ๋ณด ๊ธฐํš์ž๋“ค์€ ์‰ฝ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— '๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜๋Š” ์žˆ๋Š”๋ฐ ๋งŒ๋“œ๋Š” ๊ธฐํš์€ ์—†๋Š”'์‹ค์ˆ˜๋ฅผ ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ์ด๋Ÿฐ ์‹ค์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” CRUD๊ด€์ ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋ผ๋ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ CRUD ์ค‘ ํŠน์ • ๊ธฐ๋Šฅ์ด ์—†๋Š” ๊ธฐํš์ด๋ผ๋ฉด, ๊ทธ ๊ธฐํš ์˜๋„๊ฐ€ ๋ช…ํ™•ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด์œ ๋„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

     

     

     

    ํƒ€์ž„๋ผ์ธ์˜ CRUD์š”์ฒญ์€ ๊ฐ๊ฐ์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ, ์ฃผ์†Œ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์ง€๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ํž˜๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ฒด๊ณ„์ ์ธ API์‚ฌํšŒ ์šด๋™์ธ ๋งŒ๋“ค์–ด์ง„๋‹ค.

    REST(Respresentational State Transfer)ํ•œ API ์ฆ‰, RESTful API๋ผ๊ณ  ํ•œ๋‹ค.

    ์œ„ (๋ณผ๋“œ์ฒด)์Šคํ‹ฐ์ปค(๋ฉ”์†Œ๋“œMethod)๋ฅผ ์‚ฌ์šฉ

    • ๋ฉ”์†Œ๋“œ : 'ํ•จ์ˆ˜'์™€ ๊ฐ™์€์˜๋ฏธ. x๋ผ๋Š” ์ž…๋ ฅ๊ฐ’์— ๋”ฐ๋ผ์„œ y๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ด
    • ๋ณ€์ˆ˜, ํŒŒ๋ผ๋ฏธํ„ฐ : x๋ผ๋Š” ์ž…๋ ฅ๊ฐ’
      • ex. ๋กœ๊ทธ์ธ ์š”์ฒญ์—์„œ ํ•„์š”ํ•œ ID์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ : ๋กœ๊ทธ์ธ ์š”์ฒญ์— ํ•„์š”ํ•œ ์š”์ฒญ ๋ณ€์ˆ˜ ํ˜น์€ ํŒŒ๋ผ๋ฏธํ„ฐ

     

     

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

    ์ปดํ“จํ„ฐ๊ฐ€ ๋ณด๋‚ด๋Š” ์‘๋‹ต์€ 2๊ฐ€์ง€์ด๋‹ค. "์ž˜ ๋์–ด", "์ž˜ ์•ˆ๋์–ด"

    • 2xx : ์ž˜๋์–ด

    ์ž˜ ์•ˆ๋œ ๊ฒฝ์šฐ๋Š” ๋ณดํ†ต ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ๋•Œ๋ฌธ์—, ์„œ๋ฒ„ ๋‚ด๋ถ€์ ์œผ๋กœ ์•ˆ๋œ 2๊ฐ€์ง€์˜ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

    • 4xx : ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
      • 404 ์—๋Ÿฌ ์ฝ”๋“œ : ์ •์˜๋˜์ง€ ์•Š์€ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ. ์ฆ‰, ์„œ๋ฒ„๋Š” ๋ฌธ์ œ ์—†์ด ์ž˜ ๋Œ์•„๊ฐ€๊ณ  ์žˆ๋Š”๋ฐ ์š”์ฒญ์ด ์ด์ƒ
    • 5xx : ์„œ๋ฒ„์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ

     

     

    SDK(Software Development Kit)

    ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํ™œ์šฉํ•  ๋•Œ, API๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” '๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด'๋ฅผ ๋ถ€๋ฅด๋Š” ๋ช…์นญ

    • ex. ๋‚ด ์†Œํ”„ํŠธ์›จ์–ด์— ๊ตฌ๊ธ€ ์ง€๋„ SDK ์„ค์น˜ → ๊ตฌ๊ธ€์ง€๋„ SDK์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” API์‚ฌ์šฉ

     

     

    OPEN API

    ์„œ๋ฒ„๊ฐ€ ์ œ๊ณตํ•˜๋Š” API๋ฌธ์„œ๋กœ, ์ผ๋ฐ˜ ์‚ฌ๋žŒ๋“ค์ด ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์—ด์–ด๋‘” API

     

     


     

    2. JSON

    JSON : API์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ํ˜•์‹ ์ค‘ ํ•˜๋‚˜

    "๊ทธ ์ •๋ณด๋Š” JSON์œผ๋กœ ๋ณด๋ƒˆ์–ด์š”."
    "๋กœ๊ทธ์ธ API์‘๋‹ต ๋ณด๋‚ผ ๋•Œ, JSON์•ˆ์— ๊ฐ™์ด ๋„ฃ์–ด์„œ ๋ณด๋‚ผ๊ฒŒ์š”."
    "๊ทธ๊ฑด JSON์— ๋“ค์–ด์žˆ์–ด์š”"

    ๋Œ€ํ™”๋ฅผ ๋ณด๋ฉด ๋งˆ์น˜ JSON์„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ์ฃผ๋จธ๋‹ˆ ์ฒ˜๋Ÿผ ์—ฌ๊ธด๋‹ค. ํด๋ผ์™€ ์„œ๋ฒ„๋Š” ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฃผ๊ณ ๋ฐ›๊ณ , ๊ทธ ๋•Œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋“ค์„ JSONํ˜•์‹์œผ๋กœ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค.

     

    {
    "id":"sini12",
    "pw":"a12345"
    }
    • ํ˜•์‹ : ์ค‘๊ด„ํ˜ธ๋กœ ์‹œ์ž‘, ํ‚ค(Key)์™€ ๊ฐ’(Value)์€ ์ฝœ๋ก (:)์œผ๋กœ ๊ตฌ๋ถ„
    • ์˜ˆ์‹œ : ๋กœ๊ทธ์ธ ์š”์ฒญ์—์„œ ID์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ

     

    {
    "category":"์Œ๋ฃŒ"
    "sort":"desc",
    "items":["์นดํŽ˜๋ชจ์นด","์นดํŽ˜๋ผ๋–ผ","์•„๋ฉ”๋ฆฌ์นด๋…ธ"]
    }
    • ๋ฐฐ์—ด(Array) : []๋Œ€๊ด„ํ˜ธ๋กœ ํ‘œ์‹œ
      • ์—ฌ๋Ÿฌ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉ

     

     

     

     

     

     

Designed by Tistory.