좋은 RestAPI란 무엇인가?

상태
시작 전
담당자
날짜
TMI

글을 쓰게 된 계기

클라이언트와 서버의 응답 요청인 request method에 대해 공부하고 자주 쓰는 메소드를 가지고 요청을 설계하는 도중에 URL로 요청을 보낼 때 강제성을 띄진 않지만 규격화된 URL로 설계를 하는 방법이 있다는 것을 알게 되었으며, 이 설계를 통해서 클라이언트가 요청을 보내는 기능도 설계할 수 있다는 것을 깨달았다. 다음은 Rest와 RestAPI에 대한 글이다.

목차

Rest란 무엇일까?

Rest란 "Representational State Transfer"의 약자로 사전적으로는 “구상적인 상태를 전달한다”라는 의미가 있다. 이를 조금 변형해보자면 “규격화된 상태를 전달한다.” 라고도 생각해볼 수 있을 것이다. 그럼 컴퓨터적인 의미는 무엇일까? 컴퓨터적인 의미는 네트워크를 통해 데이터를 전송하는 방식을 정의하는 아키텍처 스타일을 의미한다. 쉽게 말해서 데이터 전송을 정의하는 방식을 정의하는 설계라고 생각할 수 있다.

RestAPI란 무엇일까?

REST API는 REST 아키텍처 스타일을 따르는 특정한 웹 서비스 구현을 의미한다. API는 "Application Programming Interface"의 약자로, 서버와 클라이언트가 상호 작용할 수 있는 방법을 정의한 것입니다. 즉 데이터 전송을 정의하는 방식을 통한 설계로 기능을 구현한 것을 의미한다고 생각할 수 있다.

Rest를 왜 사용해야 할까?

글을 쓰게 된 계기에서 말했듯이 Rest는 강제성을 띄지는 않는다. 하지만 이를 사용함에 있어서 많은 이점을 얻을 수 있다. 이점은 다음과 같다.
1.
단순성
Rest는 단순성을 띄고 있어 자원을 URL로 명확하게 식별하여, 직관적이고 이해하기 쉽다.
2.
무상태성
Rest는 각 요청이 독립적이어서, 서버는 이전 요청의 상태를 저장할 필요가 없다. 이는 서버의 부하를 줄이고 확장성을 높인다.

RestAPI를 왜 사용해야 할까?

1.
일관성
GET, POST, PUT, DELETE 등의 메서드를 일관되게 사용하여 자원에 대한 작업을 명확하게 정의한다.
2.
확장성
클라이언트와 서버가 독립적으로 구분되어 있고, 각각의 개발 확장이 편리하다.
3.
명확성
규격화된 설계를 통해 API를 구현하기 때문에 직관적이며, 이해하기 쉽다.

좋은 RestAPI란 무엇일까?

1.
명확하고 일관된 자원 설계
URI는 자원을 명확하고 직관적으로 이해하기 쉽게 명사로 나타내야 한다.
계층적 구조를 따라 설계해야 한다.
2.
HTTP 메소드의 적절한 사용
GET, POST, PUT, PATCH, DELETE와 같은 메소드를 상황에 맞게 사용해야 한다.
3.
적절한 status code 반환
각 요청 메소드에 따라 일어날 수 있는 상황에 대한 상태코드를 반환해야 한다.
4.
표현의 일관성
JSON의 사용을 권장하며 일관되게 응답해야 한다.

결론

좋은 REST API는 명확하고 일관된 URI 설계, 적절한 HTTP 메서드와 상태 코드 사용, 일관된 응답 형식을 특징으로 한다. 이러한 원칙을 따르는 REST API는 개발자와 사용자 모두에게 사용성과 유지보수성을 높여준다.