[질문] API

sookyoung.k·2023년 6월 27일
0
post-thumbnail

서버 프로그래밍 수업을 들으면서... 따로 공부를 한다고 했지만 크게 와닿지 않는 개념들이 많았다. 흑흑... 개발 공부는 정말 끝이 없어~ 그러다가 어제(06.26) 강사님께 질문을 드릴 시간이 있어서 거의 1:1로 과외를 받고 왔다. 흐뭇... 이런 시간은 귀하죠... 그래서 어제 질문 했던 부분들을 정리하면서 추가로 보충한 내용들을 적어보는 시간을~! 가져보겠습니다~!

🤔 API

매번 'REST API'라던가,,, 'API를 끌어와서 쓴다(api 호출)'거나,,, 'API를 만든다(api 생성)' << new 등의 말을 들으면서도 "그래서 대체 api가 뭔데..." 라고 생각하면서 유야무야 넘어갔었다. 제가... 생성한다구요? api를...? 정말 아무것도 모르고~~~

API = Application Programming Interface (응용 프로그램 프로그래밍 인터페이스)
→ 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

위키백과의 설명은 이렇다...

무슨 말인지 전혀 모르겠어요...

api가 무엇인지 이해하기 위한 쉬운 예시를 들자면 식당인 것 같다. (강사님도, 인터넷에서도 같은 예시를 들고 있음)

🧙🏻 API = 식당의 점원

  1. 손님 -(요청)→ 점원 -(요청)→ 요리사
  2. 요리사 -(요구사항 전달)→ 점원 -(요구사항 전달)→ 손님

식당에서 손님이 메뉴를 주문하면 이런 과정을 거쳐서 주문한 식사가 손님에게 도달하게 된다.

API는 식당의 점원의 역할과 같다.

  1. 프로그램 -(요청, req)→ API -(요청, req) → 프로그램
  2. 프로그램 -(데이터 전달, res)→ API -(데이터 전달, res)→ 프로그램

쉽게 요약하자면 이런 과정을 거쳐서 데이터의 요청과 전송이 일어나고, 그 과정을 중개해주는 것이 API인 것이다.

➡️ 해당 주소에 맞는 데이터를 보내주는 것

API는 애플리케이션을 서로 연결해서 통신할 수 있게 해준다는 것이 핵심이다.
(연결 통로라고 이해하는 것이 가장 편한 것 같다.)

ex. 네이버에서 맵 API를 제공한다
= API(통로)를 통해 네이버의 맵 기능을 여러 사람이 이용할 수 있도록 프로그래밍하여 제공한다.

📍 API 문서 = 사용법과 규격을 제공하는 문서

API는 API 문서가 있어야 (데이터를 주고 받기 위한 방법과 그 규격을 공개한 문서가 있어야) 사용할 수 있다

데이터는 주로 JSON, XML 형식으로 주고 받는다.

API의 역할

  1. 서버와 DB에 대한 출입구 역할
    → 허용된 사람들에게만 접근성 부여

  2. 애플리케이션과 기기가 원활하게 통신할 수 있게 해준다
    → 데이터를 원활히 주고받을 수 있도록 돕는 역할

  3. 모든 접속을 표준화

API 유형

  1. private API
    → 내부 API (제 3자에게 노출되지 않음)

  2. public API
    → 개방형 API (모두에게 공개)

  3. partner API
    → 기업이 데이터 공유에 동의하는 특정인들만 사용할 수 있게 함

API를 사용하는 이유

  1. 개발 및 관리의 효율성
    → 애플리케이션 코드를 표준화하여 간소화되고 빠른 프로세스 처리를 할 수 있게 해준다

  2. 유연성, 확장성
    → 소프트웨어 통합 시 협업을 용이하게 해 준다

🤔 REST API

API를 구현하는 가장 대표적인 방식, Representational State Transfer
➡️ 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍쳐 스타일

🤔 그래서 이게 뭔 말이냐고요,,

"요청 자체만으로 내가 뭘 원하는지 알 수 있게 하자"
= 나를 "표현하자(represent)"

→ url만 보면 어떤 요청인지 바로 추론할 수 있는 방식이다.

일단은 여기까지만... 알아두자...

* 참고 링크
https://dev-dain.tistory.com/50
https://brunch.co.kr/@operator/65
https://blog.wishket.com/api%EB%9E%80-%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85-%EA%B7%B8%EB%A6%B0%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8/
https://blog.wishket.com/soap-api-vs-rest-api-%EB%91%90-%EB%B0%A9%EC%8B%9D%EC%9D%98-%EA%B0%80%EC%9E%A5-%ED%81%B0-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%80/
https://enjoyinjoanne.tistory.com/56

profile
영차영차 😎

0개의 댓글