시작하는 중
API란 본문
API란 Application Programming Interface이다.
application은 카카오톡, 크롬 같은 흔히 말하는 App을 말하고
programming은 프로그래밍하는 것 자체를 말하는 것이면
Interface란 무엇인가??
인터페이스 (컴퓨팅) - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 인터페이스(interface)는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이다. 즉, 사용자가 기기를 쉽게 동작시키는
ko.wikipedia.org
위키피디아의 Interface에 대한 설명이다.
여기서 소프트웨어 인터페이스가 API의 I인데 저 말로는 솔직히 제대로 이해가 가진 않는다.
큰 의미의 인터페이스란 서로 다른 두 개체 이상의 사람, 사물, 시스템이나 소프트웨어 간에 커뮤니케이션이 가능하도록 설계한 상호 작용 방식을 말한다.
예를 들어, 우리가 가위를 들고 종이를 자르는 행위를 할 때 가위를 이용하는 방식은 흔하게 보는 가위를 잡고 손을 모으면 가위로 자를 수 있다. 가위를 흔하게 생각하는 방식으로 잡지 않거나 두 개의 쇠가 엇갈리며 자르지 않는 방식을 가진 가위를 우리는 가위라고 부를 수 있을까?
즉, 가위와 우리와의 인터페이스는 이렇게 정해져 있는 것이다.
이제 이것을 하드웨어로 끌고온다면 간단하게 두 개 이상의 하드웨어들을 연결해주는 것이다.
예를 들어, 우리가 마우스를 움직이면 우리의 컴퓨터는 모니터는 마우스 커서의 움직임을 보여준다. 이 둘을 이어주는 매개체는 바로 시스템 소프트웨어인 운영체제이다. 운영체제의 Graphic User Interface를 통해 마우스 커서를 보여주는 것이다.
소프트웨어 측면에서 본다면 파일 or 프로그램이 서로 요청/응답할 수 있게 해주는 창구이다.
근데 "창구" 이렇게 말하면 안 와닿는다.. 나는 그랫음
그래서 어떻게 이해했냐?? 우리가 어떤 웹 사이트에 로그인할 때 다른 웹 사이트의 로그인 정보를 바탕으로 로그인할 수 있는 것이 있다. 깃허브에 로그인하는 방법 중 하나는 google을 통한 로그인이다. 깃허브는 구글의 로그인 로직이나 회원정보 DB를 알고 있을까???? 절대 아니다.
하지만 우리는 깃허브를 구글 계정을 통해 로그인한다. 깃허브는 그저 구글의 로그인 기능을 쓴 것이다. 구글은 아마 깃허브에게 구글에서 암호화된 정보를 넘길 것이다. 이렇듯 서로 다른 프로그램 간에 소통이 이뤄지는 것.
즉, interface는 소통의 도구이다. API는 어떤 Application이 programming을 위해 제공하는 interface이다.
구글의 login api는 1. api의 사용 방법과 api를 사용하는 다른 application으로부터 정보 요청이 들어오면 제공할 것이고 2. 어떻게 제공하겠다. 라고 명시되어 있다.
API는 application을 programming하기 위한 interface이며 이는 다른 프로그램 간에 데이터 교환을 가능하게 해준다.
REST API도 DOM API도 이와 같은 API이다.