[ TIL ] API(Application Programming Interface)

정순관·2025년 11월 7일
post-thumbnail

API(Application Programming Interface)

프로그램끼리 대화하는 방법 레스토랑의 메뉴판처럼, 어떤 요청을 할 수 있고 어떤 응답을 받을 수 있는지 정의
(정보를 주고받는 방법을 정의)
= 하나의 프로그램이 다른 프로그램과 대화할 수 있도록 정해둔 약속(인터페이스)

  • 자바에서 List.add()List 인터페이스의 API
  • 브라우저가 서버에 데이터를 요청 → 웹 API
  • API는 통신 방식과 무관함 -> 함수 호출, 파일 시스템, 네트워크(HTTP) 등 다양한 형태 존재

API는 인터페이스!!!!!!!!!!!!!!!!!!!!!!!!!

API와 RESTful API의 차이점을 정리했습니다.

RESTful API

RESTful API는 API 중에서도 HTTP 기반의 API 설계 방식

“HTTP를 이용해 자원을 일관성 있게 주고받는 방법”

REST( Representational State Transfer)
즉, 자원을 “표현(Representation)” 형태로 전달하고, 서버는 상태(State)를 저장하지 않는 구조

RESTful API의 핵심 원칙

개념설명예시
자원(Resource)URI로 자원을 식별해야 함/users, /orders/1
행위(Method)HTTP 메서드로 동작을 표현GET, POST, PUT, DELETE
표현(Representation)자원을 JSON, XML 등으로 표현{ "name": "홍길동" }
무상태성(Stateless)서버는 클라이언트 상태를 저장하지 않음요청마다 필요한 정보 전부 포함
일관된 구조(Uniform Interface)URI 설계와 응답 형식 일관성 유지/users → 전체, /users/1 → 개별
클라이언트-서버 분리UI와 데이터 처리의 분리프론트: React / 백엔드: Spring Boot

API vs RESTful API 비교

구분APIRESTful API
의미프로그램 간 통신 약속 전체HTTP 기반의 일관된 설계 원칙
형태함수 호출, 파일, 네트워크 등 다양HTTP 요청 (GET, POST 등)
예시자바 SDK의 Math.abs()/usersGET 요청 → 사용자 목록
목적기능 제공자원 중심의 데이터 접근

웹 같은 화면,클라이언트가 뭔가를 요청해서 서버에서 응답한다 RestfulAPI
JavaSDK 같은 코드를 짜면서 뭐랄까 Math함수 같은 걸 쓴다? API


API = “프로그램 간 통신 약속” (넓은 개념)
RESTful API = “HTTP에서 REST 원칙을 따른 API” (좁은 개념)

즉,

모든 RESTful API는 API이지만,
모든 API가 RESTful API인 것은 아니다.


RESTful API URI 설계 규칙

1. 동사보단 명사를, 단수보단 복수를

❌ /member/get/item/hello

✅ /members/items

2. 마지막에 / 넣지 않기

❌ /members/

✅ /members

3. _ 대신 - 사용 + 대문자 사용하지 않기

❌ /restful_services

✅ /restful-services

4. 확장자 포함하지 않기(svg, png, exe 등)

❌ /image.svg

✅ /images

5. 계층화 하기

❌ /items/{memberId}/members/{itemId} (x)

✅ /members/{memberId}/items/{itemId}


확실한 차이점이 궁금해서, 정확히 뭐가 다른건지 궁금해서
더 알아보았다. 무슨 느낌의 차이인지는 알 거 같다.

profile
으앙 ㅠ

0개의 댓글