상세 컨텐츠

본문 제목

[1월] :: 백엔드 탐구생활 :: RESTful API의 모든 것

[8기 SSAFYcial] 싸피의 모든 것

by 감싹이 2023. 1. 30. 17:16

본문

백엔드 짱이 되게 해주세요, 라고 새해 소원을 빌었던 게 엊그제 같은데 벌써 1월이 끝나간다니.. 믿기지가 않는데요.

갑자기 추워진 날씨에 몸이 적응을 못하고 코끝이 간질거립니다. 제발 감기만은 아니었으면...

이번 토픽은 백엔드 탐구생활이라는 주제에 딱 맞는 토픽이죠. 바로 "REST ful API" 입니다.

 

백엔드 엔지니어를 희망하시는 분들이라면 이 문장들, 너무 익숙하실 텐데요

RESTful API 경험이 있으신 분
RESTful 패턴에 대한 이해와 개발 경험 우대

 

대체 여기서 말하는 RESTful API가 뭔지, 각설하고 알아보겠습니다

 


1. REST API 역사

REST는 REpresentation State Transfer 의 약자로, 로이 필딩 (Roy Fielding)이 UC 어바인에서 "Architectural Styles and the Design of Network-based Software Architectures"라는 제목의 박사학위 논문에서 최초(2000)로 공개했습니다. 1996년부터 1999년까지 로이 필딩은 HTTP 1.0의 기존 디자인에 기반을 둔 HTTP 1.1와 병행하여 REST 구조의 스타일을 개발하였으며, 웹의 장점을 최대한 활용할 수 있는 아키텍쳐로 REST를 발표했습니다. 

 


2. REST API

REST API는 대중적으로 가장 많이 사용되는 애플리케이션 인터페이스로, REST 설계규칙을 잘 지켜 설계된 API입니다. 그럼 여기서 REST는 뭐고, REST 설계 규칙은 뭐고, API는 뭔지 궁금하실 텐데요.

 

먼저 API는 애플리케이션 프로그래밍 인터페이스 Application Programing Interface의 약자이며, 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한 것입니다. REST는 REpresentational State Transfer의 약자인데요, API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처입니다. REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에, 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일입니다.

 

REST 아키텍처를 구현하는 웹 서비스를 'RESTful 하다'고 표현합니다.


3. REST 특징

REST의 특징은 다음과 같습니다.

 

유니폼 인터페이스

일관된 인터페이스를 의미합니다. REST 서버는 HTTP 표준 전송 규약을 따르기 때문에 어떤 프로그래밍 언어로 만들어졌냐와 관계 없이 플랫폼 및 기술에 종속되지 않고 타 언어, 플랫폼, 기술 등과 호환해 사용할 수 있습니다.

 

무상태성

REST는 서버에 상태 정보를 따로 보관하거나 관리하지 않습니다. 서버는 클라이언트가 보낸 요청에 대해 세션이나 쿠키 정보를 별도로 보관하지 않습니다. 따라서 한 클라이언트가 여러 요청을 보내든 여러 클라이언트가 각각 하나의 요청을 보내든 개별적으로 처리합니다.

 

캐시 가능성

REST는 HTTP 표준을 사용하므로 HTTP의 캐싱 기능을 적용할 수 있습니다. 이 기능을 사용하기 위해서는 응답과 요청이 모두 캐싱 가능한지 명시가 필요하며, 캐싱이 가능한 경우를 클라이언트에서 캐시에 저장해두고 같은 요청에 대해서는 해당 데이터를 가져다 사용합니다.

 

레이어 시스템

REST 서버는 네트워크 상의 여러 계층으로 구성될 수 있습니다. 그러나 서버의 복잡도와 관계 없이 클라이언트는 서버와 연결되는 포인트만 알면 됩니다.

 

클라이언트-서버 아키텍쳐

REST 서버는 API를 제공하고 클라이언트는 사용자 정보를 관리하는 구조로 분리해 설계합니다. 이 구성은 서로에 대한 의존성을 낮추는 기능을 합니다.

 

 


4. REST의 URI 설계 규칙

REST API를 설계할 때 지켜야 할 몇가지 규칙을 알아보겠습니다.

 

URL 규칙

✔  URI의 마지막에는 ' / '를 포함하지 않는다.

✔ 언더바 (_) 대신 하이픈(-)을 사용한다.

URL에는 행위(동사)가 아닌 결과(명사)를 포함한다.

URI는 소문자로 작성해야 한다.

파일의 확장자는 URI에 포함하지 않는다.

 


오늘은 RESTful API가 무엇인지 알아보았습니다. REST API가 무엇인지 알고 프로젝트에 적용하는 것은 채용 공고를 보면 알 수 있듯, 백엔드 엔지니어로 프로젝트를 진행할 때 정말 중요한 요소가 아닐까 싶습니다.

 

벌써 성큼 2월이 다가왔습니다! 1월에 남아있는 아쉬움이 있다면 발전을 위한 토대로 심어두고 새롭게 다가올 2월, 다시 한 번 힘차게 달려봅시다. 

읽어주셔서 감사합니다.

 

 

 

관련글 더보기