REST API

한승주·2024년 12월 13일


부트캠프에서 웹 개발을 할 때 REST API에 대해 학습했던 경험이 있다. 개념이 모호해서 이해가 잘 되지 않았다. 직접 사용해보며 개념을 다시 학습하니 이해가 잘 되었다.

REST란 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 것을 의미한다.

REST API(Representational State Transfer API)는 REST를 기반으로 만들어진 API이고 웹 기반의 애플리케이션 간 통신을 지원하는 아키텍처 스타일이다. 일반적으로 HTTP를 기반으로 동작하며 자원에 대한 작업을 수행하기 위해 HTTP 메서드를 사용한다.

  • REST에서 자원이란 데이터이다. 자원은 URL로 식별한다.

    https://api.example.com/users

  • REST API는 CRUD 작업을 HTTP 메서드로 수행한다.

    POST, GET, PUT, PATCH, DELETE

  • 자원의 상태는 클라이언트와 서버 간 JSON, XML, HTML 등의 형태로 표현

  • 무상태성은 확장성과 성능을 높이는 데 기여한다.

    서버 간의 모든 요청이 독립적이어야 하며, 서버는 클라이언트의 상태를 저장하지 않는다.

REST API의 장점과 단점

장점

표준화: HTTP 프로토콜 기반으로 설계되어 표준화된 방식으로 동작
유연성: JSON, XML 등 다양한 데이터 포맷 지원
확장성: 클라이언트와 서버가 독립적으로 동작
쉬운 학습: HTTP와 URL 구조에 익숙한 개발자에게 친숙함

단점

과도한 요청: 여러 요청이 필요할 수 있음 (ex: 중첩된 자원 조회)
무상태성의 한계: 상태 정보를 저장해야 하는 경우 부가 작업 필요
대규모 데이터 처리 시 비효율적: 대량의 데이터 송수신이 필요한 경우 성능 이슈 발생 가능

REST API를 설계할 때 몇 가지 규칙이 있다. REST API와 이에 대해 잘 정리해 놓은 글이 있다.
https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80

느낀점

직관적인 URL로 협업하기에 용이하고 HTTP를 기반으로 하기 때문에 앱, 웹 개발업무를 수행하는 데 있어서 알아두면 좋을 것 같다고 생각했다. 또한 POSTMAN이나 SWAGGER같은 툴을 사용하여 테스트를 수행할 수 있다. 하지만 이러한 것들을 누리기 위해서는 REST API의 설계 규칙을 준수하여 설계하여 RESTful하게 설계해야 한다.

profile
QA Engineer

0개의 댓글