반응형
안녕하세요 코딩하는헬린이 입니다.
이번에 누군가가 Restfull 뭔가요? 라고 질문을 받았는데
정확하게 말을 해줄수 없었습니다.
저도 API를 설계하고 개발하는 입장으로 요즘 안일하게 규칙을 생각하였던거 같아 다시 원초적으로 돌아가 익히자는 의미에서 작성하게됐습니다.
REST 란
REST는 Representational State Transfer라는 용어의 약자로,
자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미합니다.
월드 와이드 웹과 같은 분산 시스템을 위한 소프트웨어 아키텍처의 한 형식이며,
Roy T. Fielding 이 2000년에 REST란 논문으로 발표했습니다.
사진으로 표현한다면 아래와 같습니다.
REST 구성
- 자원(Resource): URI
- 행위(Verb): HTTP Method
- 표현(Representations)
REST 특징
- Client–server 구조 – 클라이언트와 서버는 서로 독립적이어야 한다.
- Stateless(무상태성) – Client의 context를 Server에 저장하지 않으며, 컨텍스트를 유지해야하는 세션, 인증과 인가에 대한 정보 또한 클라이언트에만 보관된다.
- Cacheable – 캐싱 기능을 제공하여 서버와 클라이언트 간의 상호작용을 줄이고, 성능과 서버 가용성을 늘릴 수 있다.
- Uniform interface(일관된 인터페이스) – URI로 지정한 Resource에 통일된 인터페이스로 수행하며, 전체적인 시스템 아키텍처는 단순화되고 특정언어나 기술에 종속되지않는다.
- Layered system(다중 계층) – REST는 다중 계층 구조를 가질 수 있도록 허용한다. (예를 들어 API 서버와 DB서버 그리고 인증 서버를 따로 둘 수 있도록)
- Code on demand (필수X) – 서버가 클라이언트에서 실행시킬 수 있는 로직을 전송하여 클라이언트의 기능을 확장시킬 수 있다.
RESTful API 네이밍 규칙
- '/' (슬래시) 는 계층 관계를 표현하기 위하여 사용한다.
ex) /todo/management - URI 마지막 문자로 '/' (슬래시)를 쓰면안된다.
ex) /todo/management/
- 슬래시는 리소스 식별자로 사용되어야 하며 마지막에 사용시 혼동을 줄 수 있다. - 언더바 대신 하이픈을 사용한다.
ex) /member/member-away
- 가독성을 위하여 언더바( _ ) 보단 하이픈 ( - )을 사용한다 - HTTP Method 를 포함시키지 않는다.
ex) /todo/management/post --> X , /todo/management --> O - 소문자를 사용한다.
ex) /Todo/Management --> X , /todo/management --> O - 파일확장자는 URI 에 포함시키지 않는다.
- 가급적 명사를 사용한다.
- CRUD 함수명을 사용하지마라
REST API URI 예시
ref
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
반응형
'이론' 카테고리의 다른 글
Transaction Isolation Level (0) | 2022.11.08 |
---|---|
[BlockChain] IPFS (파일 분산 시스템) (0) | 2022.10.14 |
[BlockChain] BIP-32 / BIP-39 / BIP-44 는 무엇인가 ? (0) | 2022.10.12 |
CI(Continuous Integration), CD(Continuous Delivery / Deployment) 란 무엇일까? (0) | 2020.08.03 |
DevOps 란 무엇일까? (0) | 2020.07.28 |