๐ ๊ณต๊ณต(์คํ) ๋ฐ์ดํฐ API
๊ณต๊ณต๋ฐ์ดํฐ๋ ๊ณต๊ธฐ์ , ๊ณต๊ณต๊ธฐ๊ด, ๋๊ธฐ์ , ํฌํธ์ฌ์ดํธ ๋ฑ์์๋ ์คํ๋ฐ์ดํฐ๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๊ณต๊ฐํ๊ณ ์๋ค.
๊ณต๊ฐ ๋ฐ์ดํฐ API๋ฅผ ์ด๋ป๊ฒ ์ธ์ฆํค๋ฅผ ๋ฑ๋กํ๊ณ ๋ฐ๊ธ๋ฐ์ ์ฌ์ฉํด์ผ ํ ๊น?
๐ API ๋?
API๊ฐ ๋ ๊ถ๊ธํ๋ค๋ฉด ํด๋ฆญ
API ๊ฐ ๋ฌด์์ธ๊ฐ?
๐ API Application Programming Interface ์ ์ฝ์. ํ๋ก๊ทธ๋จ๋ค์ด ์๋ก ํต์ ํ๊ฑฐ๋ ์ํธ์์ฉ ํ ์ ์๋๋ก ๋์์ฃผ๋ ๋งค๊ฐ์ฒด์ด์ ์ฝ์์ด๋ค. ๐ค ํ๋ก๊ทธ๋จ์์ API๋ฅผ ์ ์ํ๋ฉด ๋ญ๊ฐ ์ข์๊ฐ? โ client ํ๋ก๊ทธ๋จ
irro.tistory.com
Application Programming Interface -> API
ํ๋ก๊ทธ๋จ๋ค์ด ์๋ก ํต์ ํ๊ฑฐ๋ ์ํธ์์ฉํ ์ ์๋๋ก ๋์์ฃผ๋ ๋งค๊ฒ์ฒด์ด์ ์ฝ์.
ex ) ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค๋ ์ง, ํธ์ถํ๋ค๋ ์ง, ๊ธฐ๋ฅ์ ์ํ ํ ์ฌ์ฉํ๋๋ก ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ.
์ฝ๊ฒ ์ค๋ช ํด์ค
API | ์๋น์ ๋ฉ๋ดํ |
๊ณ ๊ฐ๊ณผ ์ฃผ๋ฐฉ์ ์ด์ด์ฃผ๋ ์ญํ ์ ํ๋ ๊ฒ์ด ๋ฉ๋ดํ์ด๋ฉฐ, ๊ณ ๊ฐ์ ๋ฉ๋ดํ ์ฌ์ฉ๋ฒ๋ง ์ ์ตํ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋ง์ฝ ์๋ฐ์ ์ฒด์ ์์ฝ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ ๋ง๋ ๋ค๋ฉด?
1. ์๋ฐ ์ ์ฒด๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ทจํฉ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ. |
2. ์ธ๋ถ์ ์๋น์คํ ๋ (1) ์ง์ ์ ์ธ ๋ฐ์ดํฐ ์ ๋ฌ & (2) DB ์ง์ ์ ๊ทผ & (3) API ๋ฐฉ์์ผ๋ก ์ด์ฉ ๋ฑ์ ํตํด์ ์ฒ๋ฆฌ. |
๐ JSON ๋?
JavaScript Object Notation = ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด ํ๊ธฐ๋ฒ ( ํํ )
JavaScript ์์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉํ๋ ํํ์.
์ฃผ๋ก ์๋ฒ์ ์นํ์ด์ง๊ฐ์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ๋ง์ด ์ฌ์ฉํ๋ ํฌ๋งท ํ์์ด๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด X / ๋ฌธ๋ฒ X -> ๋จ์ง ํ๋์ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐฉ์์ด๋ค. ( ๊ทธ๋ฌ๋ JSON ๊ท์น์ ์๋ค. )
์ ์ฌ์ฉํ์ง?
์๋น์ค์์๋ ์ํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
์ด๋ ๊ฐ์ฒด ์ํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์๋ ์๊ธฐ์ ๊ฐ์ฒด ( Object ) ๋ฅผ ๋ฌธ์์ด ( String ) ๋ก ๋ณํํด์ ์ ๋ฌํด์ผ ํ๋ค.
๋ฐ์ ์ชฝ์ ๋ค์ ๋ฌธ์์ด์ ๊ฐ์ฒด๋ก ๋ณํํด์ผ์ง๋ง ํด๋น ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๊ฐ์ฒด๋ก์จ ์ฌ์ฉํ ์ ์๋ค.
์ด๋ฌํ ๋ณํ ๊ณผ์ ์ฌ์ฉ๋ฒ์ ์ด์ฉํ์ฌ ์นํ์ด์ง๋จ์์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์์๊ฒ ์ถ๋ ฅํด์ค๋ค.
๊ฐ ์ธ์ด๋ง๋ค ์ด๋ฌํ ๋ณํ ์์ ์ ํธ๋ฆฌํ๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์๋ค.
์ด๋ป๊ฒ ๋ง๋๋?
{
{"name" : "ํด์ฐฌ", "age" : 20, "nationality" : "ํ๊ตญ"},
{"name" : "์๋", "age" : 30, "nationality" : "๋ฏธ๊ตญ"},
{"name" : "๋งํฌ", "age" : 40, "nationality" : "์บ๋๋ค"}
}
3๊ฐ์ ์์ดํ ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐฐ์ด์ด๋ค. ๊ฐ ํญ๋ชฉ์ 3๊ฐ์ Property๋ฅผ ๊ฐ์ง๋ ๊ฐ์ฒด๋ก ๊ตฌ์ฑ.
ํ๋กํผํฐ, ๊ฐ์ ์๋ฐ์ดํ๋ก ์ฒ๋ฆฌํ๋ค.
JSON | "์์ฑ : ๊ฐ" of "key : value" ์ ์์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ํฌ๋งท. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ์ฌ์ฉ๋ฐฉ์๊ณผ ๋น์ท -> ์ฆ, ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด๋ฅผ ํ๋์ ๋ฐ์ดํฐ์ ์ ์ฉํ ๊ฒ์ด๋ค. |
๐ค JSON์ ํน์ง
1. ์ฌ๋์ด ์ฝ๊ธฐ์ ์ข์ ๊ตฌ์กฐ์ ํ ์คํธ๋ฅผ ์ฌ์ฉํ๋ค.
2. ์น์์์์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๊ธฐ๋ฐ์ ๋ธ๋ผ์ฐ์ /์๋ฒ ํต์ ๋ฑ์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ๋ง์ด ์ฌ์ฉํ๋ค.
3. ์์ ์ ๋ง์ด ์ฌ์ฉํ๋ XML์ ๋์ฒดํ๋ค. ( XML์ ๋ฌด๊ฒ๊ณ , ๋ณต์กํ๋ค. )
4. JSON์ XML๋ณด๋ค ๊ฐ๋ณ๊ณ , ๊ฐ๊ฒฐํ๊ณ ์ฝ๋ค.
5. ๊ฑฐ์ ๋ชจ๋ ์ธ์ด๋ฅผ ์ง์ํ๋ค.
6. ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ( XML๋ ๋ง์ฐฌ๊ฐ์ง)
JSON ๊ณผ XML ์ด๋ ๋ฌด์์ด ๋ค๋ฅธ๊ฐ?
1. JSON์ XML๊ณผ ๋ฌ๋ฆฌ ์ข ๋ฃํ๋ end tag๊ฐ ํ์์๋ค. -> JSON์ด ๋ ๊ฐ๊ฒฐํ๊ณ ์งง์ ์ฆ๊ฑฐ.
2. JSON์ ๋ฐฐ์ด์ ์ฌ์ฉํ ์ ์๋ค. -> ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด๋ฅผ ํ๋์ ๋ฐ์ดํฐ์ ์ ์ฉํ ํฌ๋งท์ด๊ธฐ ๋๋ฌธ.
JSON vs XML ๋น๊ต
//JSON
{
"nct" : {
{"firstName" : "ํด์ฐฌ", "lastName" : "์ด"},
{"firstName" : "์๋", "lastName" : "์"},
{"firstName" : "๋งํฌ", "lastName" : "์ด"}
}
}
//XML
<nct>
<person>
<firstName>ํด์ฐฌ</firstName><lastName>์ด</lastName>
</person>
<person>
<firstName>์๋</firstName><lastName>์</lastName>
</person>
<person>
<firstName>๋งํฌ</firstName><lastName>์ด</lastName>
</person>
</nct>
JSON ๊ฐ์ฒด์ ๊ฐ์ฒด ์์ ๊ฐ์ฒด
// [1] : JSON ๊ฐ์ฒด --> ์ค๊ดํธ {} ์ฌ์ฉ.
// JSON์์ ๊ฐ์ฒด(Object)๋? --> key:value์ ํ ์์ผ๋ก ์ด๋ฃจ์ด์ง ์ ๋ ฌ๋์ง ์์ ์์ฑ(property)๋ค์ ์งํฉ.
// ์ฝค๋ง(,)๋ก ๊ตฌ๋ถํ์ฌ ์ฌ๋ฌ๊ฐ์ ์์ฑ์ ๊ฐ์ง๋ค.
// ๋ฌธ์์ด์ ํฐ๋ฐ์ดํ("")๋ก ๋ฌถ์ด์ค๋ค.
{
"name" : "๊ณ ์์ด",
"age" : 20,
"nationality" : "๋ํ๋ฏผ๊ตญ",
"hobby" : "์์ ๊ฑฐํ๊ธฐ"
}
// [2] : ๊ฐ์ฒด ์์ ๊ฐ์ฒด --> ๊ณ์ธต์ ๊ตฌ์กฐ.
{
"group1": {
"name" : "๊ณ ์์ด",
"age" : 20,
"nationality" : "๋ํ๋ฏผ๊ตญ",
"hobby" : "์์ ๊ฑฐํ๊ธฐ",
"company" : {
"cname" : "ํํ์์คํ
",
"cphone" : "02-1234-5678",
"caddress" : "์์ธ์ ๊ฐ๋จ๊ตฌ 1234"
}
}
}
// [3] : JSON ๋ฐฐ์ด --> ๋๊ดํธ [] ์ฌ์ฉ.
// ์ฝค๋ง(,)๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ JSON ๊ฐ์ฒด๋ฅผ ์ถ๊ฐ,๊ตฌ๋ถํ๋ค.
// ๋ฐฐ์ด์ ์ด๋ฆ์ด person์ด๊ณ , 3๊ฐ์ JSON ๊ฐ์ฒด๋ฅผ ์ด ๋ฐฐ์ด์ ์์๋ก ๊ฐ์ง๋ JSON ๋ฐฐ์ด์ ๋ง๋์์ค.
"person" : [
{"name":"๊ณ ์์ด", "age":20, "nationality":"ํ๊ตญ"},
{"name":"๊ฐ์์ง", "age":30, "nationality":"๋ฏธ๊ตญ"},
{"name":"๊ณ ๋ผ๋", "age":40, "nationality":"์บ๋๋ค"}
]
//์ฝ๋ ์ถ์ฒ
//์ธํ๋ฐ_๊ณต๊ณต ๋ฐ์ดํฐ API ์ ๋๋ก ๋ฐฐ์ฐ๊ธฐ
- <๊ฐ์ข> ๊ณต๊ณต๋ฐ์ดํฐ (์คํ ๋ฐ์ดํฐ) API ์ ๋๋ก ๋ฐฐ์ฐ๊ธฐ Part.1
๊ณต๊ณต ๋ฐ์ดํฐ (์คํ ๋ฐ์ดํฐ) API ์ ๋๋ก ๋ฐฐ์ฐ๊ธฐ Part.1 - ์ธํ๋ฐ | ๊ฐ์
๊ณต๊ณต ๋ฐ์ดํฐ ํฌํธ์์ ์ ๊ณตํ๋ ๋ค์ํ ์คํ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ด๋ป๊ฒ ํธ์ถํ๊ณ , ํธ์ถ๋ ๊ฒฐ๊ณผ๋ก ์ ๊ณต๋ฐ๋ JSON ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์ง์ ๋ํด์ ๋ค์ํ ์ธ์ด๋ก ํ
www.inflearn.com