본문 바로가기
카테고리 없음

api 란 (뜻, open, rest, 오픈, 규격)

by 만정비비1 2025. 10. 13.
반응형

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의 일반적인 개념을 설명한 것으로, 기술적 세부 사항 및 용어는 환경과 사용 맥락에 따라 달라질 수 있습니다.

반응형