웹은 어떻게 동작할까의 과정을 통해서 브라우저는 최종적으로 웹을 화면에 그렸다.
그 이후 사용자들이 웹을 사용하게 되는데, 페이지 이동을 제외하고는 대부분 API 서버와 통신하게 된다.
API는 프로그램과 프로그램을 연결시켜주는 매개체이다. 실제로 프로그램끼리 통신하는 경우가 많다.
보통 프로그램끼리 통신을 하기 위해선 프로그램을 만드는 개발자가 해당 프로그램이 잘 통신할 수 있도록 규칙을 잘 설계하는것이 중요하다.
이때 아래와 같은 경우에는 프로그램끼리!
1. 접근할 프로그램의 규칙이 잘 짜여지지 않고 복잡한 경우
2. 프로그램 보안 상 외부에서 누구나 사용할 수 없고 제한된 기능들을 간접적으로 제공하고 싶을때
그럴때 API 라는 것이 프로그램과 프로그램 사이에 중개자 역할을 해준다.
이때 API (Application Programming Interface)는 쉽게 이야기하면 규칙들의 집합이다. API가 대신해주는 프로그램의 기능들을 미리 정리해서 규칙을 잘 세워두면 클라이언트는 접근할 프로그램을 모르더라도 API에 따라 손쉽게 통신을 할 수 있게 된다.
보통 API를 개발한다는 것은 중개해주는 프로그램을 대신해주는 것이기에 해당 프로그램을 충분히 이해하며 규격화해야 한다.
클라이언트 프로그램은 접근해야 하는 프로그램에 접근하지 않고 편하게 API를 통해 정보를 요청할 수 있도록 된다. 이때 API서버는 API를 제공하는 서버라고 생각하면 된다.
대표적으로 API 서버는 데이터베이스를 대신해서 규칙들이 정의되어 있으며 ( 로그인하기, 상품정보 보기, 결제하기 등 ) 클라이언트는 데이터베이스가 아닌 AP 서버와 통신한다.
API의 사용 사례
더 쉽게 설명해보자면, API는 메뉴판이다. 내가 웹툰 서비스를 보고싶을때
1. 신과함께 2. 복학왕 3. 이말년시리즈 중 3번을 보여줘!
즉, 웹툰서버와 사용자가 웹툰을 주고받기위한 방법이다.
코드로 주고받는다.
1. (GET 요청) 2. comic.naver.com/webtoon/detail ? 3.id=318995
(GET요청) -> 요청방식이 들어가야한다. (method) 데이터를 달라고할것인지, 보낼것인지
[1-1. CRUD데이터 : Create(Post) - 올려줘, Read(Get) - 불러와줘, Update(Put(전체)Patch(일부)) - 바꿔줘, Delet - 지워줘 ]
무슨 자료를 요청할것인지 (endponit) url형식
자료요청에 필요한 추가정보 -> 내 아이디,이름,몇화를 보고싶은지
*웹의 경우 REST API라는 원칙에 따라 작성하면 좋다. ( 이해가 쉽고 관리도 쉬운 방법론 )
4-1. Public API / 4-2. Private API / 4-3. Partner API / 4-4. Window API
4-1. Public API : 누구나 사용가능한 공개 API
4-2. Private API : 사내에서 몰래쓰는 API
4-3. Partner API : 미리 정해놓은 사용자들만 쓰는 API
4-4. Window API : 운영체제 API 윈도우가 제공하는 알림등을 사용할 수 있다.