APIs는 Application Programming Interfaces의 약자이다.
우리는 자판기가 어떤 원리로 작동하는지 몰라도 동전 투입구에 금액을 넣고 음료수를 고르는 버튼을 누르면 원하는 음료수를 살 수 있다.
이처럼 윈도우스에서 동작하는 애플리케이션을 만들고싶다면 윈도우즈에서 제공하는 API를 이용해서 간단하게 애플리케이션을 만들 수 있고 YouTube의 백엔드 서비스에서 제공하는 API를 이용해서 Youtube에 있는 데이터들을 받아올 수 도있다.
이런 OS나 플랫폼에서 제공하는 API 이외에도 만약 우리가 작성하는 프로젝트에서 userStorage라는 class에서 로그인, 로그아웃을 할 수 있는 함수들을 만들었다면 이것도 우리가 작성한 즉 userStorage에서 제공하는 API이다. 그래서 user들은 로그인 로그아웃이 어떤 원리로 작동하는지 몰라도 아이디/비밀번호만 있으면 우리가 준비한 API를 통해 로그인/로그아웃을 할 수 있는 것이다.
WEB APIs는 브라우저 자체에서 제공하는 API들이다.
브라우저마다 공통적으로 제공하기로 약속한 APIs가 굉장히 많다.
DOM APIs 웹페이지에 존재하는 요소들을 생성하거나 삭제 또는 스타일 변경 등 조작하는 기능을 하는 APIs
Network APIs 서버와 통신하는 기능들을 제공
Graphics APIs 캔버스나 webgl 같은 그래픽 관련
Audio/Video APIs 오디오나 비디오를 재생, 중지하는 등 멀티미디어 관련
Device APIs 사용자가 온라인인지 오프라인인지 디바이스의 상태정보를 받아오는
File APIs 사용자의 파일을 가져오거나 저장하는
Storage APIs 사용자의 정보를 저장하는
정말 다양한 APIs들이 있기 때문에 하나하나 다 설명할 수 는 없다.
mdn사이트에 가면 다양한 web APIs들에 대해 알아볼 수 있으니 참고하자.
👉 mdn web APIs링크텍스트
어떤 apis들은 보안상의 이유로 사용자의 권한 요청이나, HTTPs를 요구할 수 있다.
HTTP는 Hypertext Transfer Protocal의 약자로, 웹 클라이언트와 서버가 어떻게 통신할지 정해놓은 통신규약이다. 클라이언트가 서버에게 정보를 요청(request)하고 다시 서버에서 정보를 받아오는(response) 방식으로 이루어져있다.
HTTPS는 HTTP에 Secure가 추가된것으로 즉 정보를 주고받을 때 보안처리가 잘 되었다는 의미이다.
예를 들어 HTTP에서 유저가 로그인할 때 비밀번호를 서버에 전송하면 보안처리가 되지 않아 입력한 그대로가 전송되기 때문에 해커에게 바로 노출 될 수 있는 반면, HTTPs에서 전송하면 암호화되어 전송되기 때문에 노출 가능성이 훨씬 줄어든다.
위에서 언급한 유튜브뿐만 아니라 트위터, 핀터레스트 등 다양한 회사에서 백엔드 APIs를 제공하고 있다.