API: Application Programming Interface
- 프로그램 간 어떤 요청, 응답을 주고받을 수 있는지 정의하는 명세
- 각 프로그램은 상대의 내부 구현을 알 필요 없이, 인터페이스를 통해 통신할 수 있다

클라이언트는 서버의 내부 구현을 알지 못한다. 단지, 어떤 요청을 하면 어떤 응답을 받을 수 있는지를 알 뿐이다.
RESTful API
- API를 구현하는 데 있어 '권장'되는 규칙 (필수나 표준이 아님)
- 클라이언트가 서버의 구현을 모르는 상황에서, 소통의 리소스를 줄이고자 마련한 디자인 원칙
- 동사보단 명사, 단수보단 복수
- ❌ /member/get/item/hello
- ✅ /members/items
- 마지막에 / 넣지 않기
- _대신 -, 대문자 사용하지 않기
- ❌ /restful_services
- ✅ /restful-services
- 확장자 포함하지 않기
- 계층화
- ❌ /items/{memberId}/members/{itemId}
- ✅ /members/{memberId}/items/{itemId}