API (Application Programing Interface)
- 응용프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게
만든 인터페이스
: 어느 프로그램에서 다른 프로그램의 기능을 가져와서 쓸 수 있는 것
ex) 애플리케이션에 카카오지도를 표시하기 (카카오 API 이용)
- 팁
: 공공데이터포털 (공공 API 제공)
- 종류
: REST API
: SOAP API
: JSON API (REST 기반)
API 통신 및 설계의 종류
REST (Representional State Transfer)
- 웹에 존재하는 모든 자원(이미지, 동영상, DB)에 고유한 URI를 부여해 활용하는 기술
: 자원에 대한 HTTP URI를 생성하고 HTTP Method를 통해 자원에 대한 제어를 적용
- CRUD Operation HTTP Method
: Create
ㆍPOST (자원 생성)
: Read
ㆍGET (자원의 정보 조회)
: Update
ㆍPUT (자원의 정보 업데이트)
: Delete
ㆍDELETE (자원 삭제)
- REST의 구성요소
: 자원 Resource URI
ㆍ자원에 대한 고유한 URI
: 행위 Method
ㆍ클라이언트에서 자원을 조작하기 위한 함수
ㆍPOST, GET, PUT, DELETE 등의 HTTP 메소드 이용
: 표현 Represent
ㆍ클라이언트가 서버로 요청을 보냈을때 서버가 응답으로 보내주는 자원
ㆍJSON, XML, TEXT, RSS 등 여러 형태로 클라이언트로 보내짐
- REST의 장점
: 쉬운 사용 (별도의 인프라 불필요)
: 경량화 (고유 URI을 통해 직접 전송하기 때문에 빠르고 단순함)
: 클라이언트와 서버의 명확한 분리
: 특정 데이터 표현 사용 가능
- REST의 단점
: 메소드의 한계
: 표준이 없음 (설계가이드만 있을뿐)
SOAP (Simple Object Access Protocol)
- 다른 플랫폼에서 다른 언어로 빌드된 애플리케이션이 통신할 수 있도록 설계된 최초의 표준 프로토콜
: HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 교환
- XML Document의 구성
: SOAP envelope
: SOAP header
: SOAP body
- SOAP의 구성
: WSDL (Web Service Description Language)
ㆍXML언어 기반의 데이터 정보 기술(Description) 언어
ㆍREST의 URI에 해당
: UDDI (Universal Description Descovery Intergration)
ㆍWSDL의 등록, 탐색, 바인딩을 담당하는 서비스
ㆍ서비스 제공자가 UDDI라는 저장소에 등록하면 사용자가 자료를 찾는 것
- 장점
: 프록시와 방화벽에 거의 구애를 받지 않음
: 플랫폼이나 언어에 독립적임
: 에러 처리가 기본적으로 내장 되어있음
: 웹서비스 표준 (XSDL, UDDI, WS-*)이 잘 정립되어 있음
- 단점
: 프로토콜 자체의 복잡한 구성으로 인한 무거우며 느림
: 높은 개발 난이도
REST VS SOAP
Refference
'Devops > DevOps' 카테고리의 다른 글
[데브옵스 개발자 로드맵 2020] API 보안기법 - 2. API 인가 (Authorization) (0) | 2021.02.08 |
---|---|
[데브옵스 개발자 로드맵 2020] API 보안기법 - 1. API 인증 (Authentication) (0) | 2021.02.08 |
[데브옵스 개발자 로드맵 2020] WAS (Web Applicatiob Server)의 종류 (0) | 2021.02.07 |
[데브옵스 개발자 로드맵 2020] 웹 서버의 종류 (웹 서버 비교) (0) | 2021.02.07 |
데브옵스 개발자 로드맵 (0) | 2021.01.31 |