반응형
api 란 (뜻, open, rest, 오픈, 규격)
API란 무엇인가? (뜻, Open, REST, 규격) 🤝💻
API는 현대 소프트웨어 생태계의 **기본 언어**입니다. 🗣️
서로 다른 시스템들이 정보를 교환하는 **규칙들의 집합**입니다.
API를 이해하면 IT 세상이 더 명확하게 보입니다. ✨
반응형
1. API의 뜻과 역할 (Application Programming Interface)
- API란 무엇인가요?
- API는 **Application Programming Interface**의 약자입니다.
- 우리말로 풀면 **응용 프로그램 프로그래밍 인터페이스**입니다.
- 이는 프로그램들이 **상호작용**할 수 있게 만든 매개체입니다.
- 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있습니다. 🛠️
- API는 **사용 방법**과 **규격**을 정의합니다.
- API의 역할과 비유
- API는 시스템 간의 **중개자(Messenger)** 역할을 합니다. 📬
- 흔히 식당의 **웨이터**에 비유되곤 합니다. 👨🍳
- 손님(사용자 앱)이 웨이터(API)에게 주문(요청)합니다.
- 웨이터는 주방(서버)에 주문을 전달합니다.
- 주방은 요리(데이터 처리)를 완료하고 웨이터에게 줍니다.
- 웨이터는 완성된 요리(응답)를 손님에게 전달합니다. 🍽️
- 손님은 주방의 **내부 사정**을 알 필요가 없습니다.
- 이는 **추상화**의 원리이며 개발 효율성을 높입니다.
- API 덕분에 개발자는 **외부 데이터와 기능**을 쉽게 가져다 씁니다.
- 새로운 기능을 처음부터 개발할 필요가 없습니다. 🚀
- API는 **데이터의 접근을 통제**하여 보안에도 기여합니다. 🔒
2. Open API (오픈 API)
- Open API의 정의와 개방성
- Open API는 **외부 개발자**에게 **공개된** API입니다. 💡
- 플랫폼의 기능이나 콘텐츠를 **웹 프로토콜**로 호출합니다.
- **누구나** 자유롭게 활용할 수 있도록 환경을 조성합니다.
- **오픈 혁신**과 **생태계 확장**을 목표로 합니다. 🌱
- 활용 사례 및 제약
- 구글 지도 API, 공공 데이터 포털 API 등이 대표적입니다. 🗺️
- 기업은 이를 통해 **브랜드 인지도**를 확대할 수 있습니다.
- 외부 개발을 활용하여 **협업**과 **효율성**을 촉진합니다.
- 대부분 HTTP 프로토콜을 사용합니다.
- 사용자는 보통 **API 키**를 발급받아야 합니다.
- 무료로 제공되더라도 **접속 횟수 제한(Rate Limit)**이 있을 수 있습니다. 🚫
- 이는 서버의 **과부하를 방지**하기 위함입니다.
- Open API는 **Public API**의 한 종류로 볼 수 있습니다.
3. REST API (RESTful API)
- REST의 기본 개념
- REST는 **Representational State Transfer**의 약자입니다.
- 이는 웹 서비스 디자인을 위한 **아키텍처 스타일**입니다.
- **자원(Resource)**을 중심으로 설계하는 것이 핵심입니다.
- 자원은 **URI(Uniform Resource Identifier)**로 고유하게 식별됩니다.
- REST의 제약 조건을 준수하는 API를 **RESTful**하다고 부릅니다. ✅
- HTTP 메서드를 활용
- 자원에 대한 **행위**는 **HTTP 메서드**를 통해 표현됩니다.
- **GET**은 자원을 **조회**하는 행위입니다. 🔍
- **POST**는 새로운 자원을 **생성**하는 행위입니다.
- **PUT/PATCH**는 자원을 **수정/업데이트**하는 행위입니다.
- **DELETE**는 자원을 **삭제**하는 행위입니다. 🗑️
- CRUD(Create, Read, Update, Delete) 작업을 명확히 구분합니다.
- 무상태성과 독립성
- REST API는 **무상태성(Stateless)**을 지향합니다.
- 서버는 이전 클라이언트 요청의 **정보를 저장하지 않습니다**. 🧠❌
- 각 요청은 **독립적**이며 필요한 모든 정보를 포함합니다.
- 이로 인해 서버의 **부하가 줄어들고** 확장성이 좋아집니다.
- 클라이언트와 서버가 **분리**되어 독립적으로 발전할 수 있습니다.
- 데이터 형식으로는 **JSON**이 주로 사용됩니다.






4. API 규격의 중요성 (Specification)
- 규격의 역할
- API 규격은 API의 **설계도면**과 같습니다. 📐
- API의 **사용 방법**과 **통신 규칙**을 상세히 정의합니다.
- 규격이 명확해야 **개발자 경험(DX)**이 향상됩니다. 👍
- 프론트엔드와 백엔드 개발자 간의 **소통 오류**를 줄입니다.
- 주요 규격과 구성 요소
- 대표적인 표준 규격으로 **OpenAPI Specification (OAS)**이 있습니다.
- 이전에는 **Swagger**라는 이름으로 불렸습니다.
- 규격에는 **엔드포인트, 메서드, 파라미터** 정보가 포함됩니다.
- 응답 데이터의 **형식(JSON 스키마)**과 **오류 코드**도 명시합니다.
- **버전 관리** 역시 중요한 규격 요소입니다. 🔢
- API 변경 시 **기존 클라이언트**에게 영향을 주지 않도록 합니다.
- 규격화된 설계는 **쉬운 유지 보수**와 **자동화된 테스트**를 가능하게 합니다. 🤖
- 일관된 규격은 **시스템 안정성**을 높이는 기반이 됩니다.






면책조항: 이 정보는 API의 일반적인 개념을 설명한 것으로, 기술적 세부 사항 및 용어는 환경과 사용 맥락에 따라 달라질 수 있습니다.
반응형