

백엔드 개발자는 API를 만든다.
API는 "Application Programming Interface"의 줄임말이다.
쉽게 말하면, 원하는 기능을 편하게 사용할 수 있도록 도와주는 것이다.
예를 들면,
지하철 도착 알림 앱이나, 카카오맵, 네이버 지도와 같은 서비스가 있다.
이 서비스들은 각자의 데이터베이스에서 정보를 가져와 사용자에게 보여주는데,
이때 API를 사용해서 데이터를 주고받는다.
인터페이스는 쉽게 말하면
서로 다른 것들이 원활하게 소통할 수 있도록 도와주는 역할을 한다.
API라고 해서 무조건 데이터를 아무렇게나 주고받는 것은 아니다.
예전에는 HTTP 형식을 안 지키고 대충 데이터를 전달하는 경우가 많았지만,
HTTP를 만든 사람들이 "형식을 잘 따르면 더 효율적이다!"리고 강조를 했다.
그래서 나온 개념이 REST API 이다.
REST API는 HTTP 규칙을 잘 따르는 API라고 보면 된다.
웹 개발자는 인터넷 환경에서 통신을 하기 위해
HTTP 규칙을 잘 따라야한다.
REST API는 이런 규칙을 지키면서 데이터를 주고받는 방식이다.

인터넷에서 데이터를 주고받을 때는 HTTP 프로토콜을 사용한다.

URL(Uniform Resource Locator) 은 웹에서 특정 자원의 위치를 알려주는 주소이다.
하지만 단순한 위치 정보뿐만 아니라,
특정 데이터를 요청하는 방법으로도 사용된다.
예를 들면,
http://localhost:8888 -> 전체 상품 조회http://localhost:8888/상품등록 -> 상품 등록http://localhost:8888/전체상품삭제 -> 전체 상품 삭제
- 대문자 사용 X -> 소문자만 사용
- 언더바(_) 사용 X -> 하이픈(-) 사용
- 마지막에 '/' 포함 X
- 행위를 포함하지 않는다 (예:
/get-products대신/products)- 파일 확장자 포함 X
- 복수형을 사용한다.
예시:
POST /productGET / productsDELETE /products
- 상품 전체 "조회" ->
GET /products- 상품 개별 "조회" ->
GET /products/{id}
GET /products/1-> id=1인 데이터를 요청GET /products/2-> id=2인 데이터를 요청- 상품 개별 "수정" ->
PUT /products/{id}
- 상품이 여러개 존재하기 때문 (
/product보다는/products가 더 자연스러움)- 일관성을 유지할 수 있음
이런식으로 RESTful 한 API를 설계하면
더 직관적으로 확장성이 좋은 API를 만들 수 있다!
오늘은 API와 설계 방법에 대해 알아보았다.
GET , POST , DELETE 등 여러 행위에 대해서도 알았고
REST API 와 RESTful API의 차이점에서도 알아보았다.
백엔드 개발자로 갈길은 멀지만 한 걸음 다가간 것 같아 뿌듯하다.