Base

API가 뭐야?

Dr.Mlem 2024. 12. 16. 16:02

Q1.

API가 도대체 뭐야? RestfulAPI니, OpenAPI니, 이래저래 API 소리를 많이 보게 되는데, 정확히 API라는 것에 대해서 정확히 모르니까, 내가 지금 무엇과 연동되어있는지, 그러기 위해서 무엇을 해야하는지 잘 감이 안와. API가 뭔지 설명해줘.

 

 

 

A1.

ChatGPT의 말:

 

API에 대해 궁금한 점이 많아 보이네요! API는 컴퓨터 시스템, 소프트웨어, 또는 애플리케이션이 서로 소통하고 데이터를 주고받을 수 있도록 도와주는 **"인터페이스"**입니다. 이제 더 자세히 알아볼게요.


1. API란?

**API (Application Programming Interface)**는 프로그램(애플리케이션) 간의 "약속" 또는 **"규칙"**을 정의하는 것입니다.
쉽게 말해, 한 프로그램이 다른 프로그램에게 데이터를 요청하거나, 특정 작업을 하도록 요청할 때, 어떻게 요청해야 하고, 어떤 응답이 올지를 정해놓은 매뉴얼 같은 거예요.

  • 예시:
    당신이 음식점에 갔을 때, 메뉴판(API)에 적힌 대로 주문을 하고, 음식점은 그 메뉴대로 음식을 가져다줍니다.
    당신(프로그램)은 음식점(다른 프로그램)과 직접 소통하는 것이 아니라, 메뉴판(API)이라는 인터페이스를 통해 요청을 전달하는 겁니다.

2. API의 역할

API는 다음과 같은 역할을 합니다:

  1. 데이터 교환: 서로 다른 시스템(웹사이트, 앱, 데이터베이스 등) 간에 데이터를 교환할 수 있도록 함.
  2. 추상화: 내부 구현은 감추고, 사용자는 단순한 요청/응답 방식만 이해하면 됨.
  3. 연동: 특정 소프트웨어 기능을 다른 시스템에서 사용할 수 있도록 지원.

3. RESTful API란?

RESTful API는 API를 설계하는 데 있어 널리 사용되는 원칙과 방식입니다.
REST(Representational State Transfer)라는 구조에 맞춰 설계된 API를 RESTful API라고 합니다.

  • 특징:
    1. HTTP 기반: HTTP 메서드(GET, POST, PUT, DELETE)를 사용해 데이터 요청/수정/삭제.
    2. 리소스 지향: URL이 자원을 나타내야 함.
      • 예: https://example.com/users/123 → 사용자 123에 대한 리소스.
    3. 상태 비저장성: API 서버는 클라이언트의 요청 상태를 기억하지 않음. (매번 요청에 필요한 정보를 보내야 함.)

4. OpenAPI란?

OpenAPI는 API의 설계 문서를 작성하고 공유할 수 있는 표준 포맷입니다.
쉽게 말해, API를 사용하기 위해 만들어놓은 "사용 설명서" 같은 거예요.

  • 왜 필요할까?
    여러 개발자들이 API를 쉽게 이해하고, 빠르게 사용할 수 있도록 도와줍니다.
    예: 어떤 데이터를 요청할 수 있는지, 응답 데이터는 어떤 구조인지 등을 명확히 설명.

5. 어떻게 API를 사용할까?

API를 사용하려면 보통 다음 단계를 따라요:

  1. API 문서 확인:
    어떤 요청을 보내야 하고, 어떤 응답을 받을지 확인.
  2. API 키 발급 (필요시):
    인증이 필요한 API라면, 키(API Key)를 발급받아야 함. (보안 목적)
  3. 요청 보내기:
    • HTTP 메서드와 URL 사용:
      예: GET https://example.com/api/v1/users
    • 요청과 함께 필요한 데이터를 추가.
      • 예: 사용자 ID, 필터 조건 등.
  4. 응답 확인:
    API가 반환하는 데이터(JSON, XML 형식이 많음)를 처리.

6. 실제 사용 사례

  • 날씨 앱: OpenWeatherMap API를 사용해 실시간 날씨 데이터를 받아옴.
  • 결제 시스템: Stripe API를 이용해 결제 처리.
  • 소셜 미디어: Facebook, Twitter API를 사용해 게시글 작성, 친구 목록 조회.

쉽게 이해해보자!

API는 마치 전기 콘센트 같은 역할을 합니다.

  • 콘센트(API)는 사용자가 쉽게 전기에 접근할 수 있게 해줌.
  • 전기(서비스)는 어디선가 만들어졌지만, 사용자는 복잡한 내부 과정을 몰라도 콘센트를 통해 쉽게 사용할 수 있음.
    API도 마찬가지로, 서비스의 복잡한 내부 로직은 몰라도, 제공된 "인터페이스"를 통해 간편히 데이터를 가져오고 사용할 수 있습니다.

궁금한 점이나 실습 예제가 더 필요하다면 말해주세요! 😊