API에 대한 간단한 정리

Dasole Kwon·2022년 5월 20일
0

항해99

목록 보기
10/47

API란 무엇일까?
1. API는 서버와 데이터베이스에 대한 출입구 역할을 한다
:데이터베이스에 저장되어있는 소중한 정보들이 담겨있는 서버에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해준다.
2. API는 어플리케이션과 기기가 원활하게 통신할 수 있도록 한다.
:여기서 어플리케이션이란 우리가 흔히 알고 있는 스마트폰 어플을 말하며, API는 어플리케이션과 기기가 데이터를 원할히 주고받을수 있도록 돕는 역할을 한다.
3. API는 모든 접속을 표준화한다
:API는 모든 접속을 표준화 하기 때문에 기계/운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있음. 쉽게 말해, api는 범용 플러그처럼 작동한다고 볼 수 있다.

API의 유형
1. Private API: Private API는 내부 API로, 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행. 제 3자에게 노출 되지 않는다.
2. Public API: Public API는 개방형 API로 모두에게 공개 가능하다.
3. Partner API: Partner API는 기업이 데이터 공유에 동의하는 특정인들만 사용 할 수 있다. 비즈니스 관계에서 사용 되는 편이며, 종종 파트너 회사 간에 소프트 웨어를 통합하기 위해 사용한다.

API를 사용하면 뭐가 좋을까?
: Private API를 이용 할 경우, 개발자들이 어플리케이션 코드를 작성하는 방법을 표준화함으로써, 간소화되고 빠른 프로세스 처리를 가능하게 한다. 또한, 소프트 웨어를 통합하고자 할때는 개발자들 간의 협업을 용이하게 만들어 준다. Public API와 partner API를 사용하면 기업은 타사 데이터를 활용하여 브랜드 인지도를 높일 수 있으며 고객 데이터베이스를 확장하여 전환율까지 높일 수 있다.

Rest API란 무엇일까?
REST(Representational State Transfer)는 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍처 스타일. REST API는 인터넷 식별자(URI)와 HTTP 프로토콜을 기반으로 하며, '단순함'이 핵심. 데이터포맷으로는 브라우저 간 호환성이 좋은 JSON을 사용한다.

  • REST 기반으로 서비스 API를 구현한 것
  • 최근 OpenAPI(누구나 사용할 수 있도록 공개된 API: 구글 맵, 공공 데이터 등), 마이크로 서비스(하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처) 등을 제공하는 업체 대부분은 REST API를 제공한다.
  • 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다.
  • REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.
  • 즉, REST API를 제작하면 델파이 클라이언트 뿐 아니라, 자바, C#, 웹 등을 이용해 클라이언트를 제작할 수 있다.

RESTful(API)란?
REST를 REST답게 쓰기 위한 방법으로 공식적이지 않은 개발자들이 비공식적으로 제시한 것이다. 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것이 목적이다.

  • CRUD의 기능을 전부 활용해야한다. (예. POST로만 모든 것을 처리하면 RESTFUL이 아니다.)
  • URI에 자원과 id외 정보만 들어가야한다.

Spring에서 Restful 컨트롤러 작성
Spring MVC에서는 클라이언트에서 전송한 XML이나 JSON 데이터를 자바 객체로 변환해서 컨트롤러로 넘겨주는 기능을 제공. 어노테이션으로 적용할 수 있기 때문에 간단하다.

@RequestBody : 클라이언트가 요청한 XML/JSON을 자바 객체로 변환해서 전달 받을 수 있음
@ResponseBody : 자바 객체를 XML/JSON으로 변환해서 응답 객체의 Body에 실어 전송할 수 있음. 클라이언트에게 JSON 객체를 받아야 할 경우는 @RequestBody, 자바 객체를 클라이언트에게 JSON으로 전달해야할 경우에는 @ResponseBody 어노테이션을 붙여주면 됨. @ResponseBody를 사용한 경우 View가 아닌 자바 객체를 리턴해주면 된다.

SOAP API는 무엇일까?
SOAP(Simple Object Access Protocol)는 그 자체로 프로토콜이며, 보안이나 메시지 전송 등에 있어서 REST보다 더 많은 표준들이 정해져있기 때문에 조금 더 복잡하다. 굳이 비교를 하자면, SOAP는 웹 서비스 시나리오에 적용하기에는 그다지 좋지 않기 때문에, 기업용 애플리케이션 등을 작업하는데 더 이상적이라고 말할 수 있다. SOAP는 보안 수준이 엄격하다. SOAP에서는 SSL도 지원하고 WS-Security라는 자체 표준의 보안 기능도 가지고 있다. 따라서 은행용 모바일 앱처럼 보안 수준이 높아야 하거나, 신뢰할 수 있는 메시징 앱, 또는 ACID를 준수해야 하는 경우라면 SOAP 방식이 더욱 선호된다. REST에서는 표준화된 메시징 시스템이 갖춰져 있지 않으며, 통신 장애가 있을 경우 재시도를 통해서만 조치할 수 있다. 반면 SOAP 표준에는 성공/반복 실행 로직이 규정되어 있기 때문에, SOAP API를 통해서 통신을 할 때 처음부터 끝까지 신뢰성을 제공한다.

SOAP API와 REST API의 차이는 무엇일까?

  • SOAP API와 REST API의 핵심적인 차이들

참고 자료:
링크텍스트
링크텍스트
링크텍스트
링크텍스트

0개의 댓글