이 글은 API가 무엇인지를 잘 모르는 분들을 위해 이해를 목적으로 쓰였습니다.

 

내놔, 그 데이터.


 프로그래밍을 하다 보면 API란 단어를 참 많이 듣게 됩니다. 먼저 위키백과에서 뭐라고 정의하는지를 살펴볼게요.

 

API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.

 

 네, 저도 무슨 말인지 잘 모르겠으니까 어떻게 사용되고 있는지를 보면서 정의를 느낌으로 이해해보는 방향으로 설명해볼게요.

 

 먼저 쉽게 이해할 수 있는 API 하나를 살펴볼게요. 날씨입니다.

https://openweathermap.org/

 

Current weather data - OpenWeatherMap

Access current weather data for any location on Earth including over 200,000 cities! Current weather is frequently updated based on global models and data from more than 40,000 weather stations. Data is available in JSON, XML, or HTML format. We provide 40

openweathermap.org

 위 웹사이트는 API를 오픈해서 세계 날씨를 확인할 수 있는 곳입니다. 현재 날씨가 어떤지, 그동안 어땠었는지 알 수 있는데 어떻게 알 수 있는지는 아래와 같습니다.

api.openweathermap.org/data/2.5/weather?q={city name}&appid={your api key}

 

 위의 주소를 URL로 입력하면 날씨에 대한 데이터를 주는 방식입니다. 주소 내용 중에 {city name}에는 London 또는 Seoul 같은 도시의 이름이 들어가고 {your api key}에는 회원가입을 하면 무료로 주는 랜덤 문자열인 key값이 있습니다. 만약 현재 서울의 날씨를 확인하고 싶고 나의 app key가 "deOxndvhO201sAW" (임의로 대충 쳐봤습니다. 해봐도 소용없어요.)라고 한다면 주소가 아래 형식이 되겠죠?

api.openweathermap.org/data/2.5/weather?q=Seoul&appid=deOxndvhO201sAW

 

 자 주소가 완성되었습니다. 위에 주소를 입력을 하면 아래처럼 텍스트로 된 데이터를 던져줘요. JSON형식이라고 하죠.

{
	"coord": {
		"lon": 126.98,
		"lat": 37.57
	},
	"weather": [
		{
			"id": 800,
			"main": "Clear",
			"description": "clear sky",
			"icon": "01n"
		}
	],
	"base": "stations",
	"main": {
		"temp": 302.25,
		"feels_like": 306.05,
		"temp_min": 301.15,
		"temp_max": 303.15,
		"pressure": 1005,
		"humidity": 70
	},
	"visibility": 10000,
	"wind": {
		"speed": 2.11,
		"deg": 16
	},
	"clouds": {
		"all": 1
	},
	"dt": 1598359440,
	"sys": {
		"type": 1,
		"id": 8117,
		"country": "KR",
		"sunrise": 1598302594,
		"sunset": 1598350333
	},
	"timezone": 32400,
	"id": 1835848,
	"name": "Seoul",
	"cod": 200
}

 

 뭔가 길고 복잡한 것 같지만 대충 보면, 날씨는 Clear 하고 온도는 어떻고 하는 내용이 쭉 나열되어 있어요. 정말 자세한 정보를 간단한 방법으로 지속적으로 얻을 수 있다니 이 API만 가지고 있어도 본인이 필요한 방식으로 요리를 한다면 정말 유용하게 사용할 수 있을 것 같지 않나요?

 

 이제 대략적으로 감을 잡으셨나요? 위 정의를 다시 한번 확인해볼까요?

 

API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.

 

 우리는 URL 방식으로 https://openweathermap.org/ 라는 웹사이트에서 날씨 정보를 제공받았습니다. 이 정보를 우리가 만든 웹사이트나 응용프로그램에서 돌린다면 우리는 "API를 이용했다!"라고 할 수 있는 것입니다. 간단하죠?

 


 

 이렇게 외부의 응용프로그램이나 웹사이트의 기능을 통해 무어인가를 받는 것도 API의 종류이고, 나의 웹사이트의 경우 Front-End와 Back-End의 데이터 교환도 API 방식으로 만들 수 있고, 그것도 API라고 부를 수 있습니다. 또 누구나 쓸 수 있게 오픈되어 있는 API가 있는 반면에 접근을 제한해 놓은 API도 많죠. 그런 것들은 신청하고 승인을 받고 사용하게 됩니다.

 

 어떤가요? API에 대한 감을 잡는 정도가 되었으면 좋겠습니다. 감을 잡는데 너무 장황하게 설명을 한 게 아닌가 싶기도 하네요. 팁을 하나 드리자면 나라에서도 공공정보에 대한 데이터를 API를 통해 제공하고 있는데 어떤 내용이 있는지 대충 살펴보시면 본인에게 필요한 데이터를 찾을 수 있을지도 모르겠네요.

 

공공데이터포털

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase

www.data.go.kr

 오늘의 API 설명은 여기까지입니다. 코로나가 유행 중인데 모두 몸조심하시기를!

+ Recent posts