잰이_IT/취준 | 이준

[220425] 갑자기 공부하는 잡지식

janey25 2022. 4. 25. 17:44

*API

애플리케이션 소프트웨어를 빌드하고 통합하기 위한 정의 및 프로토콜 세트인 애플리케이션 프로그래밍 인터페이스(Application Programming Interface) 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)

 

API(애플리케이션 프로그래밍 인터페이스)란 - 개념, 기능, 장점

API(애플리케이션 프로그래밍 인터페이스)란 애플리케이션 소프트웨어의 개발 및 통합에 사용되는 정의 및 프로토콜 세트를 뜻하며, 개발 민첩성과 간소화를 지원합니다.

www.redhat.com

웹 API가 확산됨에 따라, 정보 교환을 표준화하기 위해 SOAP(Simple Object Access Protocol)라는 프로토콜 사양이 개발되었습니다. SOAP로 설계된 API는 XML 메시지 형식을 사용하며 HTTP 또는 SMTP를 통해 요청을 수신합니다. SOAP를 사용하면 더 간편한 방법으로 애플리케이션을 다양한 환경에서 실행하거나 다양한 언어로 작성하여 정보를 공유할 수 있습니다.

또 다른 사양은 REST(Representational State Transfer)로, REST 아키텍처의 제약 조건을 준수하는 웹 API를 RESTful API라고 합니다. SOAP는 프로토콜이지만 REST는 아키텍처 스타일이라는 근본적인 차이가 있으며 따라서 RESTful 웹 API에는 공식적인 표준이 없습니다. Roy Fielding의 논문인 '네트워크 기반 소프트웨어 아키텍처의 구조적 스타일과 설계(Architectural Styles and the Design of Network-based Software Architectures)'에 정의된 것처럼 RESTful 시스템의 다음 6가지 주요 제약 조건을 준수했을 때 RESTful API라고 간주할 수 있습니다.

  • 클라이언트-서버 아키텍처: 클라이언트, 서버, 리소스로 구성된 REST 아키텍처이며 HTTP를 통해 요청을 처리합니다.
  • 스테이트리스(Statelessness): 요청 후 다음 요청이 있을 때까지 클라이언트 콘텐츠가 서버에 저장되지 않으며 그 대신 세션 상태에 대한 정보가 클라이언트에 저장됩니다.
  • 캐시 가능성: 캐싱으로 일부 클라이언트-서버 간 상호 작용을 대신할 수 있습니다.
  • 계층화된 시스템: 추가 계층으로 클라이언트-서버 간의 상호 작용을 조정할 수 있으며 이러한 계층은 로드 밸런싱, 공유 캐시 또는 보안과 같은 추가 기능을 제공할 수 있습니다.
  • 코드 온디맨드(옵션): 서버에서 실행 가능한 코드를 전송하여 클라이언트의 기능을 확대할 수 있습니다.
  • 통합된 인터페이스: 이 제약 조건은 RESTful API 설계의 핵심이며 다음과 같은 4가지 측면을 포함합니다.
    • 요청에서 리소스 식별: 리소스가 요청에서 식별되며 클라이언트로 반환되는 표현으로부터 분리됩니다.
    • 표현을 통한 리소스 조작: 클라이언트가 리소스를 나타내는 파일을 수신합니다. 이 표현에는 조작 또는 삭제를 허용할 수 있도록 충분한 양의 정보가 포함되어야 합니다.
    • 자기 기술적(Self-descriptive) 메시지: 클라이언트에 반환되는 각 메시지에는 클라이언트가 해당 정보를 어떻게 처리해야 할지 설명하는 정보가 충분히 포함되어야 합니다.
    • 애플리케이션 상태 엔진으로서의 하이퍼미디어: REST 클라이언트는 리소스에 액세스한 후 하이퍼링크를 통해 현재 사용 가능한 다른 모든 작업을 찾을 수 있어야 합니다.

제약 조건이 많아 보이지만 규정된 프로토콜보다는 훨씬 간단합니다. 이 때문에 RESTful API가 SOAP보다 더 많이 사용되고 있습니다.

네이티브 
*Native APP

네이티브 앱은 우리가 흔히 말하는 ' 어플리케이션 ' 을 의미 합니다. 모바일 기기에 최적화 된 언어로 개발 된 앱으로 안드로이드 SDK를 이용해 Java (자바) 언어로 만드는 앱과 iOS 기반 SDK를 이용해 Swift (스위프트) 로 만드는 대부분의 앱이 여기에 속한다고 할 수 있습니다.

네이티브 앱의 장점

■ 성능이 웹앱 , 하이브리드 앱에 비하여 가장 높습니다.
 네이티브 API를 호출하여 사용함으로 플랫폼과 밀착되어 있습니다.
 해당 언어에 익숙한 사용자라면 좀 더 쉽게 접근할 수 있습니다.

네이티브 앱의 단점

 플랫폼에 한정적 입니다.
 해당 플랫폼에서 요구하는 언어에 제약적 입니다. 따라서 해당 언어와 플랫폼의 API를 다루는데 익숙해야 합니다.

'잰이_IT > 취준 | 이준' 카테고리의 다른 글

국은/농투 코테  (0) 2022.04.19
[220307] 이 준!!  (0) 2022.03.07
싸피 면접 복기 2019 _1  (0) 2019.06.10
LG CNS 면접 후기  (0) 2019.05.03
C++ 정리 노트  (0) 2019.04.23