웹 API
웹 API(Web Application Programming Interface)는 웹 환경에서 프로그램이 다른 기능이나 데이터에 접근하도록 정의된 인터페이스를 통칭한다. 문맥에 따라 브라우저가 JavaScript 등에 제공하는 인터페이스를 가리키거나, HTTP를 통해 외부 서비스가 제공...
| 분류 | 응용 프로그래밍 인터페이스 |
|---|---|
| 역할 | 웹 응용 프로그램의 기능과 데이터 연동 |
| 관련 기술 | World Wide Web, HTTP, HTML, URL |
| 참고 명세 | MDN: Web APIs |
웹 API(Web Application Programming Interface)는 웹 환경에서 프로그램이 다른 기능이나 데이터에 접근하도록 정의된 인터페이스를 통칭한다. 문맥에 따라 브라우저가 JavaScript 등에 제공하는 인터페이스를 가리키거나, HTTP를 통해 외부 서비스가 제공하는 API를 의미한다. 두 종류 모두 응용 프로그램 간 상호작용에 사용되지만 실행 환경과 호출 방식, 보안 경계가 서로 다르다.
브라우저 API에는 문서의 요소를 탐색하고 조작하는 DOM, 네트워크 요청을 전송하는 Fetch API, 로컬 데이터를 저장하는 Web Storage와 IndexedDB, 화면을 그리는 Canvas API 등이 있다. 이러한 인터페이스는 JavaScript 언어 자체의 문법이 아니라 웹 플랫폼이 제공하는 객체와 메서드이며, 일부 기능은 사용자 권한이나 보안 연결을 요구한다.
서버가 제공하는 웹 API는 URL로 식별되는 엔드포인트, 지원하는 요청 메서드와 데이터 표현을 통해 공개된다. 요청과 응답 본문에는 JSON이나 XML 등이 사용될 수 있고 상태 코드와 헤더를 통해 성공 여부와 캐시 조건을 전달한다. REST 스타일의 API, GraphQL과 원격 프로시저 호출은 문제를 모델링하고 통신하는 서로 다른 접근 방식이다.
웹 API를 안전하게 제공하기 위해서는 사용자를 식별하는 인증과 허용된 동작을 판단하는 권한 부여가 필요하다. 브라우저에서 다른 출처에 요청하는 경우에는 동일 출처 정책과 CORS 규칙이 관여하며, 토큰을 사용하는 API도 서버 측 입력 검증과 접근 범위 제한이 필수적이다. 속도 제한과 사용량 정책은 안정적 서비스 운영에 활용된다.
웹 API를 설계할 때는 오류 표현, 호환성 있는 변경, 버전 관리, 페이지네이션, 멱등성 및 문서화 정책을 고려한다. OpenAPI와 같은 기술은 엔드포인트와 데이터 모델을 기계가 해석할 수 있도록 기술할 수 있다. 브라우저 API를 사용할 때에는 기능 탐지와 대체 경로를 마련하여 사용자 환경마다 다른 지원 상태에 대응한다.[1]