api란 무엇인가?
application programming interface의 줄임말으로 컴퓨터나 컴퓨터 프로그램 사이의 연결을 해주는 것이다.
사용하는 경우
- 접근할 프로그램의 규칙이 잘 짜이지 않고 복잡한 경우
- 프로그램 보안 상 외부에서 누구나 사용할 수 없고 제한된 기능들을 간접적으로 제공하고 싶을때.
api 방식
- soap api
- rpc api
- websocket api
- JSON 객체를 사용하여 데이터를 전달하는 또 다른 최신 웹 api. 클라이언트 앱과 서버 간의 양방향 통신을 지원한다. 서버가 연결된 클라이언트에 콜백 메시지를 전송할 수 있어 REST API보다 효율적이다.
- rest api
- 가장 많이 사용되고 유연한 api. 클라이언트가 서버에 요청을 데이터로 전송. 서버가 클라이언트 입력을 사용하여 내부 함수를 시작하고 출력 데이터를 다시 클라이언트에 반환. representational state transfer의 줄임말으로 클라이언트가 서버 데이터에 액세스하는 데 사용할 수 있는 GET,PUT,DELETE등의 함수 집합을 정의. 클라이언트와 서버는 HTTP를 사용하여 데이터를 교환한다.
api 엔드포인트의 중요성
- 보안
api 엔드 포인트는 시스템을 공격에 취약하게 만든다.
- 성능
api 엔드 포인트는 트래픽이 많은 경우 병목 현상을 일으키고 시스템 성능에 영향을 줄 수 있다.
api를 보호하는 방법
- 인증토큰
인증 토큰은 사용자에게 api 호출을 수행할 수 있는 권한을 부여하는 데 사용된다. 인증 토큰은 사용자가 자신이 누구인지 확인하고 해당 특정 api 호출에 대한 액세스 권한이 있는지 확인합니다.
- api 키
api 키는 api를 호출하는 프로그램 또는 애플리케이션을 확인. 즉 애플리케이션을 식별하고 애플리케이션에 특정 api 호출을 수행하는 데 필요한 액세스 권한이 있는지 확인한다.