[CS]API(Application Programming Interface)

god1hyuk·2022년 8월 11일
0

CS

목록 보기
7/13
post-thumbnail

1. API란 무엇인가?

API(Application Programming Interface)

정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 매커니즘

쉽게 말해, 컴퓨터나 컴퓨터 프로그램 사이의 연결. 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공한다.

Application Programming Interface의 약칭이며, 애플리케이션(Application)은 특정 기능을 가진 모든 소프트웨어를 말한다. 인터페이스(Interface)는 두 애플리케이션 간의 약속이다. 요청과 응답을 하며 두 애플리케이션이 서로 통신하는 약속.

API 아키텍쳐는 일반적으로 클라이언트(Client)와 서버(Server) 측면에서 실행된다. 요청(Request)을 보내는 애플리케이션을 클라이언트, 응답(Response)을 보내는 애플리케이션을 서버라고 한다.

예를 들어 온라인 쇼핑몰에서 데이터베이스(DB)는 서버, 사용자가 직접 마주하는 브라우저의 요소들은 클라이언트라고 볼 수 있다.


2. API 작동 방식

2-1. SOAP API

  • 단순 객체 접근 프로토콜을 사용
  • 클라이언트와 서버는 XML을 사용하여 메시지를 교환
  • 과거에 많이 사용되던 방식이며 유연성 ↓

2-2. RPC API

  • 원격 프로시저(Procedure) 호출
  • 클라이언트가 서버에서 함수나 프로시저를 완료하면 클라이언트로 다시 전송

2-3. REST API

  • 웹에서 가장 많이 사용되는 API
  • 클라이언트가 서버에 요청을 데이터로 전송하면 서버가 클라이언트의 요청을 내부 로직으로 처리하여 다시 클라이언트로 응답 및 반환

2-3. Websocket API

  • JSON 객체를 사용하여 데이터 전달
  • 최신 웹 API 개발 방식
  • 클라이언트와 서버 간 양방향 통신 지원
  • 서버가 클라이언트에 콜백 메시지를 전송할 수 있어 REST API보다 효율 ↑

3. API 생성 과정 5단계

범용성 좋고 모두가 신뢰하는 API를 만들기 위해서는 이러한 과정을 거친다.

3-1. API 설계

여러 사례를 미리 생각하고 API가 현재 API 개발 표준을 준수하는지도 확인하며 보통은 API 명세서를 작성한다.

3-2. API 구축

개발자는 설계를 토대로 API 프로토타입을 상용 코드를 사용하여 생성한다.

3-3. API 테스트

버그 및 결함을 방지하기 위해 테스트를 수행한다. API 테스트 도구로 웹 공격에 대비하여 API를 보완할 수도 있다.

API 테스트는 테스트 코드 작성 통하여 가능하며 API 테스트 도구를 사용해서도 가능하다.

API 테스트 도구 예시

  • Post Man
  • ARC(Advanced REST Client)
  • Swagger
  • Git Book
    ...

4. API 문서화

좋은 API라면 그 자체로도 설명 필요 없이 충분하겠지만 사용 편의성을 높이기 위해 가이드 역할로써 사용된다. 다양한 기능과 사례를 문서화로 작성이 잘 된 API는 서비스지향 아키텍쳐에서 많이 사용된다.

5. API 마케팅

대표적으로 AWS 같은 API 마켓플레이스 처럼 개발자들이 API를 사고 팔 수도 있다. 범용성과 신뢰도가 높은 API는 수익 창출을 일으킬 수도 있다.

0개의 댓글