8. REST API

MYUNGSUN·2024년 2월 18일
0

스프링부트

목록 보기
8/16
post-thumbnail

REST API?

REST는 "Representational State Transfer"의 약어로, 하나의 URI는 하나의 고유한 리소스(Resource)를 대표하도록 설계된다는 개념입니다. 스마트폰과 태블릿 등 서버에 접근하는 디바이스의 종류가 다양해지고 있기에 디바이스의 종류에 상관없이 공통으로 데이터를 처리할 수 있도록 하는 방식을 REST라고 합니다.우리는 지금까지 게시판을 구현하면서 컨트롤러에서 서비스를 호출하고, 사용자가 필요로 하는 데이터를 화면(View)으로 전달한 후 HTML을 리턴해주는 형태로 진행해 왔습니다. REST API는 사용자가 어떠한 요청을 했을 때 HTML을 리턴하지 않고, 자바스크립트를 이용해서 사용자가 필요로 하는 결과(데이터)만을 리턴해주는 방식이다.

예시

간단히 요약하자면

Controller에서 hello-api를 찾고 @ResponseBody를 만나게 되면 viewResolver를 거치지않고 HttpMessageConverter를 통해 객체면 JsonConverter, 문자면 StringConverter를 통해 다시 반환하게 된다.

왜 사용할까?

  1. 디바이스 독립성: 다양한 디바이스에서 서버에 접근할 수 있도록 함으로써, 웹 브라우저, 모바일 앱, 데스크톱 애플리케이션 등 여러 플랫폼 간의 통신을 용이하게 합니다.

  2. 간단한 통신: REST API를 통해 데이터를 주고받을 때, HTTP 요청과 응답만으로 간단하게 통신할 수 있습니다. 이는 복잡한 프로토콜이나 메시징 시스템을 구현할 필요가 없음을 의미합니다.

  3. 자원 중심: REST API는 자원을 중심으로 설계되기 때문에, URI를 통해 자원을 표현하고 HTTP 메서드(GET, POST, PUT, DELETE 등)를 통해 자원에 대한 행위를 명시합니다. 이는 API의 직관성과 확장성을 높여줍니다.

  4. 유연성: REST API는 다양한 데이터 포맷을 지원하며, 주로 JSON 또는 XML 형식의 데이터를 주고받습니다. 이는 클라이언트와 서버 간의 상호 운용성을 높여줍니다.

  5. 캐싱: HTTP 프로토콜을 기반으로 하기 때문에, 캐싱을 통한 성능 최적화가 가능합니다. 서버 응답에 적절한 캐시 헤더를 포함시켜 클라이언트가 캐시를 활용할 수 있도록 할 수 있습니다.

  6. 안전성: REST API는 보안 및 인증을 위한 다양한 메커니즘을 지원합니다. HTTPS를 통한 암호화, OAuth를 통한 인증 등을 활용하여 안전한 통신을 보장할 수 있습니다.

여담

본인도 프로젝트때 api를 가져와 쓴적이 있는데, 제공하는 타입이 xml뿐이라 XmlConverter를 사용하니 그대로 반환이 됐던 기억이 있다...

profile
백엔드

0개의 댓글

Powered by GraphCDN, the GraphQL CDN