안녕하세요! 오늘은 IT 입문자들을 위해 API에 대해 쉽고 간단하게 설명해드리겠습니다.
간단한 개념이고 쉽게쉽게 쓰는 용어이지만, 아직도 많은 사람들이 제대로 알지 못하면서 쓰는 그 API...!
저도 어느샌가 습관적으로 사용하고 있는데,,,
개념을 정확하게 이해하고 정리해서 사용해야! 실무에서 잘 활용할 수 있다고 생각합니다.
API란 무엇인가요?
API는 "Application Programming Interface"의 약자로, 우리말로는 "응용 프로그램 인터페이스"라고 합니다. 이는 소프트웨어 간 상호 작용을 위한 규칙들의 모음이라고 생각하시면 됩니다. 우리가 컴퓨터 프로그램을 사용할 때, 그 프로그램이 우리에게 제공하는 기능과 서비스를 활용하는 방법을 결정하는데 사용되는 도구와 규약이라고 할 수 있죠.
제가 실무를 하며 가장 쉽게 이해한 방법은 응용 프로그램 간의 소통 창구, 상호작용 개념으로 정의를 했습니다. 그런데 여러분, API가 소통 창구이자 상호작용이라면, 어떻게 동작하는 것일까요?
API의 작동원리
이건 사실 예시를 통해 이해하는 게 가장 빠르다고 생각이 드는데요. 우리가 날씨를 제공하는 어플리케이션 앱을 하나 만든다고 가정해보죠! 이 때 가상의 날씨 API를 내가 이용하겠다! 라고 생각해보겠습니다.
1. 요청 ( 날씨정보를 가져와줘 )
날씨 제공앱은 사용자가 지역을 선택하면 해당 지역의 날씨 정보를 보여줘야 합니다. 사용자가 지역을 선택하면, 앱은 사용자의 선택에 따라 해당 지역의 날씨 정보를 알아내기 위해 날씨 API에 리퀘스트를 보냅니다.
예를 들어, "날씨 조회 API"에 사용자가 선택한 지역 정보가 담긴 리퀘스트를 보내면, 날씨 API는 해당 지역의 날씨 정보를 알려주는 구조인 것이죠!
2. 응답 ( 날씨 정보를 가져오기 )
날씨 API가 받은 리퀘스트를 처리하고 해당 지역의 날씨 정보를 알아냈습니다. 물론 날씨 API는 기상청에서 제공하는 API 규격에 맞게 요청하고 받아와야겠죠? 잘 요청한다면 이제 날씨 API는 앱으로 다시 응답을 보냅니다.
"날씨 정보 응답 API"를 통해 날씨 API가 앱으로 해당 지역의 날씨 정보를 담은 응답을 보내면, 우리는 날씨정보를 날씨 앱에 띄울 수 있게 되는 접니다!
아래 그림으로 간단하게 설명해봤는데요! 이렇게 상호작용을 한다는거죠!
여기까지는 문제가 없는데요. 어떻게 데이터를 요청하고 응답받는거지? 라는 생각이 드실겁니다.
데이터를 주고받기 위해서는 일종의 주문서와 같이 어떤 데이터를 어떻게 요청해야할지를 규정해주어야 합니다. 형식이 맞지 않게 요청을 한다면 당연히 응답을 제대로 받을 수 없겠죠?
API의 데이터 형식
주문서 양식은... 크게 2가지를 사용합니다! XML 과 JSON 형식인데요! 우선은 맛만 볼까요?
1. JSON
JSON은 데이터를 간결하고 가독성 있게 표현하기 위해 개발된 경량의 데이터 형식입니다. 자바스크립트 객체와 비슷한 형태를 가지며, 키-값 쌍으로 데이터를 표현합니다. 주로 JavaScript에서 사용되지만 다른 프로그래밍 언어에서도 지원되고 널리 사용됩니다. 데이터를 괄호 {}와 대괄호 []를 이용하여 표현합니다.
예시
{
"lognalssi": "흐림",
"logdt": 20230725,
"isture": true
}
2. XML(eXtensible Markup Language)
XML은 태그를 이용하여 데이터를 표현하며, 태그들은 사용자가 원하는 형태로 정의할 수 있습니다. 주로 웹 서비스에서 이전에 널리 사용되었으나, 요즘은 JSON이 더 많이 사용됩니다. 개인적으로는 XML데이터 파싱하는 게 저에게는 더 익숙하네요.
예시
<nalssi>
<lognalssi>흐림</lognalssi>
<logdt>25</logdt>
<isture>true</isture>
</nalssi>
아무튼 이러한 방식으로 데이터를 요청하고 가져옵니다!
보통 이러한 경우, 제공업체(EX_기상청)에서는 연동 규약에 대한 가이드나 OPEN API 연동가이드 등을 제공하죠!
마치며
오늘은 API(application programming interface)에 대해서 알아보았는데요!
전공하셨던 분들이나 실무를 하시는 분들에게는 사실 너무 자주 접하는 개념이라 쉽지만, 저와 같은(?) 비전공자들에게는 쉬운 개념은 아니었을 겁니다.
아무튼 실생활에 널리 퍼져있는 API를 이해해보자구요!
궁금한 내용은 댓글로 남겨주시면 같이 공부하겠습니다.
좋은 하루 보내세요!
'IT공부하기 > IT상식' 카테고리의 다른 글
IT입문자를 위한 입사 이후 업무절차 이해하기 (0) | 2023.08.02 |
---|---|
IT입문자를 위한 IT인프라 이해하기 (0) | 2023.07.28 |
IT입문자를 위한 클라우드 컴퓨팅 이해하기(1) (0) | 2023.07.24 |
WMI provider Host 개념부터 CPU 문제 해결까지...! (1) (0) | 2023.07.13 |
Cortana 삭제 방법 - MS의 끼워 팔기에 저항하기 (0) | 2023.07.07 |