자바와 스프링 부트로 생애 최초 서버 만들기

#7 API란 무엇인가? 24.12.18

박태정 입니다. 2025. 2. 12. 15:43
반응형

API란 무엇인가? 🤔

API(Application Programming Interface)는 개발자들 사이에서 자주 언급되는 개념입니다. 인터페이스라는 단어 자체가 '미리 정해진 약속'을 뜻하기 때문에, API는 컴퓨터들 간의 소통을 가능하게 하는 규칙과 약속이라고 할 수 있습니다. 이번 포스팅에서는 API와 관련된 기본 개념을 쉽게 이해할 수 있도록 정리해보겠습니다!


1. API란 무엇인가? 🤝

API는 Application Programming Interface의 약자로, 서로 다른 프로그램이 소통할 수 있게 만드는 미리 정해진 규칙입니다.
간단히 말하면, 초록색 컴퓨터가 파란색 컴퓨터에게 정보를 요청하고 응답받는 방법을 정의한 것입니다.

예시:

  1. GET 요청:

    GET /portion?color=red&count=2
    Host: spring.com:3000
    • 파란 컴퓨터는 초록 컴퓨터로부터 "빨간 포션 2개를 달라"는 요청을 받을 것입니다.
    • 초록 컴퓨터는 이 요청을 처리할 준비가 되어 있어야 합니다.
  2. POST 요청:

    POST /oak/leather
    Host: spring.com:3000
    
    오크 가죽 정보
    • 이 경우에는 "오크 가죽 데이터를 저장해 달라"는 요청입니다.
    • 초록 컴퓨터는 이 요청을 저장할 수 있도록 설계되어야 합니다.

2. URL과 HTTP 요청의 구조 🌐

URLUniform Resource Locator의 약자로, 요청의 경로를 지정합니다.
아래는 URL의 구조를 나누어 설명합니다:

URL의 구조:

예시:
http://spring.com:3000/portion?color=red&count=2

  • http: 사용 중인 프로토콜
  • :// 구분 기호
  • spring.com: 도메인 이름 (IP 주소로 대체 가능)
  • :3000: 포트 번호
  • /portion: 자원의 경로
  • ?color=red&count=2: 요청에 포함된 쿼리

HTTP 요청의 구성:

  1. 첫 줄: 요청 메서드(GET, POST 등), 경로, HTTP 버전
  2. 헤더(Header): 요청에 필요한 추가 정보
  3. 바디(Body): 요청에 포함된 실제 데이터

3. HTTP 응답이란? 📬

요청이 있다면 응답도 존재합니다.
HTTP 응답은 요청에 대한 결과를 클라이언트(요청자)에게 전달합니다.

HTTP 응답의 구성:

  1. 첫 줄: 상태 코드와 상태 메시지
  2. 헤더(Header): 응답에 대한 추가 정보
  3. 바디(Body): 응답의 실제 내용

상태 코드 예시:

  • 200 OK: 요청 성공
  • 300 Redirect: 다른 경로로 이동
  • 404 Not Found: 요청한 자원을 찾을 수 없음
  • 500 Internal Server Error: 서버 내부 오류

4. API의 실제 응답 예시 🖥️

GET 요청:

GET /portion?color=red&count=2
Host: spring.com:3000

HTTP 응답:

200 OK
Content-Type: application/json

{
  "message": "빨간 포션 2개"
}

요청에 대한 응답도 구조가 동일합니다.

  • 첫 줄: 상태 코드와 메시지 (200 OK)
  • 헤더: 응답에 대한 정보 (Content-Type)
  • 바디: 실제 전달된 데이터

마무리: API를 이해하며 🚀

오늘은 API의 기본 개념과 요청 및 응답의 구조를 알아보았습니다. 다시 요약하자면,

  • API는 서로 다른 프로그램 간의 소통 규칙입니다.
  • HTTP 요청은 URL, 헤더, 바디로 구성됩니다.
  • HTTP 응답은 상태 코드, 헤더, 바디로 전달됩니다.
반응형