api란 무엇일까요?

상호작용을 하는 프로그램들의 매개체입니다. 일상생활에서 예를들면 도어락 이라고 할 수 있겠네요.

도어락.png

api는 도어락과 같은 역할을 합니다. 집의 비밀번호를 알고 있는 사람은 도어락을 통해 누릅니다. 그래서 집에 들어갈 수 있습니다. 그리고 집에 있는 물건을 가져올 수 있습니다. 하지만 비밀번호를 모르면 들어가질 못합니다.

api.png

이와 마찬가지로 하나의 프로그램과 또 다른 프로그램이 상호작용 할 수 있게 만들어주는 매개체 역할을 합니다.

왼쪽의 프로그램을 카카오톡 화면을 개발하는 사람이라고 생각하시고 오른쪽의 프로그램을 카카오톡 서버를 개발하는 사람이라고 생각하시면 됩니다. 그래서 카카오 로그인을 구현할 때 상호간에 규칙을 정한다고 생각하시면 이해가 쉽습니다.

api없이 그냥 데이터베이스에 있는 데이터들을 꺼내 쓰면 안되냐구요?

그렇다면 보안상 위험합니다. 허가되지 않은 ip에서 마음대로 데이터를 가져다 쓰면 개인정보의 유출 위험이 굉장히 큽니다. 결론적으로 프로그램을 만드는 개발자간에 허용된 주소, 허가된 비밀번호, 요청할 데이터 형식을 조율해야합니다.

그래서 협의된 api 명세서를 통해서 개발자는 본인이 원하는 데이터를 가져오거나 조작할 수 있습니다.

위도경도.drawio.png

예를들겠습니다. 제가 지도어플을 만들려고 합니다. 그렇다면 현재 위치의 위도와 경도를 알아야 합니다. 해당 데이터를 관리하는 업체에게 위도와 경도 데이터를 요청하면 원하는 데이터를 받을 수 있습니다. 그래서 api만 잘 이용해도 간단한 어플정도는 만들 수 있습니다.