연관토픽
개념 : 프로그램과 프로그램을 연결시켜주는 매개체
- 특정 프로그램의 기능이나 데이터를 다른 프로그램이 접근할 수 있도록 미리 정한 통신규칙
- 운영체제나 응용프로그램 사이의 통신에 사용되는 언어나 메시지 형식
- 일반적으로 서비스에서 소스는 공개하지 않고 해당 기능을 제공할 때 사용
- 대신할 프로그램의 기능들을 미리 정리해서 규칙을 잘 세워둔다면, 클라이언트는 접근할 프로그램을 모르더라도 API를 이용해 손쉽게 통신 가능
API의 개념도
API의 기술요소
기술요소 | 설명 |
REST | URI를 통해 자원 명시 및 자원에 대한 POST, GET, PUT, DELETE 등의 명령을 주고 받는 방식 |
OAuth 2.0 | 외부 서비스(3rd Party)에서 Access Token 기반 제한된 자원 접근 및 인증을 위한 범용 인증 표준 |
SSL/TLS | 통신하는 데이터를 안전하게 보호하기 위해 사용자 인증 및 비밀키 암호화를 사용하는 보안 프로토콜 |
XML, JSON | 구조화된 문서 데이터 형식 또는 문자열화된 경량 데이터 형식 |
API 구성요소
구성요소 | 설명 |
HTTP Method | GET, POST, PIT, PATCH, DELETE |
URL | 데이터 접근 |
Representatin | 자원의 표현 |
API 유형
유형 | 설명 |
폐쇄형(Close API) | 해당 회사, 기관 내부에서만 API를 통한 프로그램 접근 가능 |
공개형(Open API) | 회사, 기관 외의 제3자에게도 API를 통한 프로그램 접근 허용 |
API 버전관리
관리방식 | 설명 |
URI 방식 | 자원을 식별하는 URI에 버전정보를 추가 (예시) https://www.apisample.com/v1/users |
쿼리 문자열 방식 | 쿼리 문자열(요청정보) 내 매개변수로 버전정보 추가 (예시) https://www.apisample.com/users/version=1 |
HTTP 헤더 방식 | 사용자 지정 HTTP 헤더를 통해 버전정보 추가 (예시) Custom-Header: api-version=1 |
(source : Open API 시스템 구축을 위한 기술스택, 주간기술동향 제1963호, 2020.09.09)
API 문서
스크래핑(Scraping) vs. API
구분 | 스크래핑(Scraping) | API |
고객인증 | - 사용자가 인증정보 제공 - 제공된 인증정보를 저장 |
- 서비스에 사용자가 직접 로그인 - 사용자가 필요한 접근 권한을 부여 |
표준화 | - 표준화가 어려움 | - API 및 데이터 형식에 대한 표준화 가능 |
정보처리 | - 인터넷 화면에 보여지는 데이터 중 필요 데이터 추출 | - API를 이용하여 접근이 허용된 필요 정보만 수신 |
정보저장 | - 고객 중요정보 직접 저장관리 | - 중요정보 대신 토큰(Token) 정보 저장 |
정보통제 | - 필요 이상의 정보 접근 가능 - 정보 남용, 악의적 활용 가능성 |
- 사용자가 부여한 권한 내 정보 수집 - 정보 접근 통제 용이 |
탈퇴처리 | - 서비스 탈퇴 시, 입력한 인증정보 변경, 재발급 필요 - 변경하지 않을 경우 핀테크 기업이 인증정보 지속 보유 |
- 서비스 탈퇴 시, 토큰을 무효화 처리 또는 토큰의 사용기한이 만료되면 자동으로 인증불가 처리 가능 |
정보보호 및 보안 | - 해킹 시 중요정보 유출 가능성 - 별도의 보안대책이나 보안 기술 적용 어려움 |
- 해킹 시 토큰 폐기 처리 및 사용에 대한 접근통제 등 보안대책 수립 가능 - 필요한 보안대책 및 보안기술 적용 가능 |
Reference