REST API

최민수·2023년 4월 17일
0

CS 전공지식

목록 보기
25/36


API vs REST API

우선, API와 REST API 는 뭐가 다른걸까?

API 가 서로 다른 소프트웨어 애플리케이션 간의 통신을 위한 규정의 모음이라고 한다면,
REST API 는 웹 통신을 할 때, HTTP 메서드를 이용한 API 설계의 하나의 구체적인 아키텍쳐라고 생각하면 된다.

따라서REST API는 API에 포함되는 개념 이다.


REST API 가 구체적으로 무엇인지

REpresentational State Transfer

HTTP 메서드(GET, POST, PUT, DELETE) 와 URL 을 기반으로, 각 요청이 어떤 동작을 하는지 요청 자체만으로 나타낼 수 있는 api 설계 방법이다.

예를 들어, GET /movies 와 같은 요청은 영화 목록을 조회하는 것으로 이해할 수 있고 DELETE /movies/1 와 같은 요청은 1번 id를 가진 영화를 삭제한다고 개발자 간 약속을 통해 쉽게 이해될 수 있는 형식이다.


REST API 로 개발을 하는 이유?

협업 과정에서 HTTP 요청을 할 때, 어떤 URL에 어떤 메서드를 사용할지에 대해 개발자들 간의 약속을 해놓으면, 이후에 별도의 상의없이 요청에 대해 이해하기 쉽고 활용도 높게 이용할 수 있기 때문입니다.


REST API 의 단점?

REST API 의 장점은 위와 같이 많은데, 단점도 있을까?

REST API가 HTTP 메서드 기반의 기술이라는 점에서 단점이 존재한다. HTTP 메서드를 활용하는 REST api 입장에서는 메서드의 일단 정해진 행동 패턴을 커스텀하기 어렵고, 정해진 대로 따라야 한다는 한계가 존재한다.
예를 들어, 세부적인 조회나 수정 과정을 입맛에 맞게 커스텀하고 싶은데 GET 이나 PUT 메서드 자체의 행동을 수정하기 불가능하다는 것이다.

또한, 어떤 리소스에 대해 어떤 api를 적용하는지에 대해서 문서화나 약속이 잘 진행되지 않으면 활용에 큰 문제가 생긴다는 단점도 있다. 이것은 REST api로 개발하기 위한 중요한 조건이기 때문에 충족되지 않으면 단점이 되는 것이기도 하다.


URL 명명 Tip

우선 URL을 정의할 때 메서드 이름을 짓는 것과 같이 동사를 이용하는 것은 좋지 않다.
예를 들어, findMovies, updateMovieName 과 같이 URL을 정의하다 보면, 너무 복잡해지고 분류가 전혀 되지 않아 개발을 하는데 혼란스러울 것이다.
또 조회나 삭제 같은 동사의 개념은 HTTP 메서드가 표시해주니 걱정하지 않아도 된다.

그래서 명사를 이용하고, 최대한 분류의 장점을 살리는 것이 좋다.
위의 findMovies 대신 GET /movies 와 같이 요청하고, updateMovieName 대신 PUT /movies/{id} 와 같이 요청하면 훨씬 체계적이고 활용도 높게 api 규칙을 짤 수 있다.

만약 추가 정보를 전달하고 싶다면, query parameter를 이용하면 된다.
예를 들어, 영화 목록을 조회하는 GET /movies 뒤에 ?release_date=2023 과 같은 쿼리 파라미터를 전달해서 확장성 있는 요청을 수행할 수 있다.


영상 출처: 5분만에 제대로 설계하는 ⭐️ REST API
면접 단골 질문! API, REST API가 뭔가요? (개발 필수지식)

profile
CS, 개발 공부기록 🌱

0개의 댓글