프로그램끼리 대화하는 방법 레스토랑의 메뉴판처럼, 어떤 요청을 할 수 있고 어떤 응답을 받을 수 있는지 정의
(정보를 주고받는 방법을 정의)
= 하나의 프로그램이 다른 프로그램과 대화할 수 있도록 정해둔 약속(인터페이스)
List.add() → List 인터페이스의 APIAPI는 인터페이스!!!!!!!!!!!!!!!!!!!!!!!!!
API와 RESTful API의 차이점을 정리했습니다.
RESTful API는 API 중에서도 HTTP 기반의 API 설계 방식
“HTTP를 이용해 자원을 일관성 있게 주고받는 방법”
REST( Representational State Transfer)
즉, 자원을 “표현(Representation)” 형태로 전달하고, 서버는 상태(State)를 저장하지 않는 구조
| 개념 | 설명 | 예시 |
|---|---|---|
| 자원(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 | RESTful API |
|---|---|---|
| 의미 | 프로그램 간 통신 약속 전체 | HTTP 기반의 일관된 설계 원칙 |
| 형태 | 함수 호출, 파일, 네트워크 등 다양 | HTTP 요청 (GET, POST 등) |
| 예시 | 자바 SDK의 Math.abs() | /users에 GET 요청 → 사용자 목록 |
| 목적 | 기능 제공 | 자원 중심의 데이터 접근 |
웹 같은 화면,클라이언트가 뭔가를 요청해서 서버에서 응답한다 RestfulAPI
JavaSDK 같은 코드를 짜면서 뭐랄까 Math함수 같은 걸 쓴다? API
API = “프로그램 간 통신 약속” (넓은 개념)
RESTful API = “HTTP에서 REST 원칙을 따른 API” (좁은 개념)
즉,
모든 RESTful API는 API이지만,
모든 API가 RESTful API인 것은 아니다.
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}
확실한 차이점이 궁금해서, 정확히 뭐가 다른건지 궁금해서
더 알아보았다. 무슨 느낌의 차이인지는 알 거 같다.