그래서 왜 REST API를 사용하는데?

jadeco·2025년 6월 21일

REST API는 기존의 HTTP URL을 단순히 사용하는 방식보다 더 체계적이고 효율적인 웹 서비스 설계를 가능하게 합니다.

기존 HTTP URL 방식과의 비교

구분기존 HTTP URL 방식REST API 방식
자원 표현URL에 동사(예: /getUser, /updateUser) 포함URL에 명사(예: /users/1)만 사용, 행위는 HTTP 메서드로 구분
행위 구분URL 이름으로 구분 (동사 사용)HTTP Method(GET, POST, PUT, DELETE 등)로 구분
확장성/유지보수구조가 일관되지 않아 관리 어려움일관된 규칙으로 설계, 유지보수와 확장 용이
플랫폼 독립성주로 웹 브라우저에서 사용다양한 플랫폼(웹, 모바일, IoT 등)에서 사용 가능
표준화각 서비스마다 다름HTTP 표준 준수, 범용성 높음

예시

  • 기존 방식:

    • /getUser?id=1 (조회)
    • /updateUser?id=1 (수정)
  • RESTful 방식:

    • GET /users/1 (조회)
    • PUT /users/1 (수정)

그래서 REST API를 왜 사용하는가?

  • 명확하고 직관적인 인터페이스
    REST API는 자원(Resource)을 URI(예: /users/1)로 명확하게 표현하고, 각 자원에 대한 행위(생성, 조회, 수정, 삭제)는 HTTP 메서드(GET, POST, PUT, DELETE 등)로 구분합니다. 이로 인해 API의 의도가 명확하게 드러나고, 개발자가 쉽게 이해하고 사용할 수 있습니다.

  • 플랫폼 및 언어 독립성
    REST API는 HTTP라는 웹 표준을 기반으로 하므로, 어떤 운영체제나 프로그래밍 언어에서도 사용할 수 있습니다. 서버와 클라이언트가 서로 독립적으로 개발 및 확장될 수 있어 다양한 환경에서 통합이 쉽습니다.

  • 확장성과 유연성
    REST API는 무상태(stateless) 구조를 채택하여 각 요청이 독립적으로 처리됩니다. 서버는 클라이언트의 이전 요청 정보를 저장하지 않아 확장성과 유지보수가 용이합니다. 또한, 자원 중심의 설계로 인해 새로운 기능 추가나 구조 변경이 쉽습니다.

  • 기존 HTTP 인프라 활용
    REST API는 HTTP 프로토콜의 인프라(캐싱, 인증, 보안 등)를 그대로 활용할 수 있어 별도의 시스템을 구축할 필요가 없습니다. 이로 인해 개발 및 운영 비용이 절감됩니다.

  • 다양한 클라이언트 지원
    웹 브라우저뿐만 아니라 모바일 앱, 데스크톱 앱 등 다양한 클라이언트에서 쉽게 사용할 수 있도록 설계되었습니다. 데이터만 주고받으면 되기 때문에 멀티 플랫폼 환경에 적합합니다.


[1] https://velog.io/@gimminjae/REST-API%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-%EC%99%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B0%80
[2] https://hahahoho5915.tistory.com/54
[3] https://velog.io/@yoojkim/Rest-API-RESTful%ED%95%98%EA%B2%8C-URL-%EC%84%A4%EA%B3%84%ED%95%98%EA%B8%B0
[4] https://adeveloperstory.tistory.com/entry/RESTful-API%EC%9D%98-%EC%A0%95%EC%9D%98%EC%99%80-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0%EC%99%80-%EC%A0%81%EC%9A%A9-%EB%B0%A9%EB%B2%95
[5] https://shyvana.tistory.com/7
[6] https://aws.amazon.com/ko/what-is/restful-api/
[7] https://velog.io/@balparang/REST-API%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EA%B3%A0-%EC%99%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EA%B1%B8%EA%B9%8C
[8] https://blog.naver.com/codingbarbie/223233477242
[9] https://seungyong20.tistory.com/entry/REST-API-%ED%99%95%EC%8B%A4%ED%9E%88-%EA%B0%9C%EB%85%90-%EC%9E%A1%EA%B8%B0
[10] https://dev-coco.tistory.com/97

profile
당신도요

0개의 댓글