훌이
후리스콜링개발
훌이

블로그 메뉴

  • 왈 (iOS APP)
  • Github
전체 방문자
오늘
어제
  • 전체 (171)
    • ⭐️ 개발 (140)
      • JAVA (4)
      • Web (5)
      • iOS & Swift (94)
      • iOS Concurrency (4)
      • Rx (18)
      • Git (6)
      • WWDC (1)
      • Code Refactor (3)
      • Server (1)
    • ⭐️ Computer Science (22)
      • 운영체제 (10)
      • 네트워크 (5)
      • PS (7)
    • 경제시사상식 (8)
    • 기타 등등 (0)

인기 글

최근 글

05-18 22:17

티스토리

hELLO · Designed By 정상우.
훌이

후리스콜링개발

⭐️ 개발/Server

REST API 6원칙

2022. 8. 2. 12:45
728x90
반응형

REST API 6원칙

1. 자원에 대한 식별이 가능해야 함

 

2-1. HTTP - 비연결성 : 서버 통신이 필요할 때만 연결, 늘 연결되어 있는 건 아니니까! connectionless

같은 아이폰에서 계속 연결해도 할 일 끝나면 연결관계가 끝남

 

2-2. Stateless - 무상태성 : 응답이 다 완료가 되면 이 관계는 끝남. 그렇기 때문에 서버는 클라에 대한 정보를 가지고 있지 않음

그래서 웹에서는 세션과 쿠키, 앱에서는 토큰을 통해 회원관리를 하게 됨

기본적으로 서버는 사용자를 식별할 수 없는 무상태성을 갖고 있기 때문에 세션/쿠키/토큰을 갖고 있는 것

 

3. Cacheable : 캐싱기능, 오랜만에 페이지에 들어가면 로딩이 좀 됨, 다시 들어가면 빨리 뜨는데 그 이유가 캐싱 때문임. 사용자가 다시 볼 거라는 캐싱 전략

 

4. Self-Descriptiveness : URL을 보고도 대략적으로 어떤 의도로 구성되어 있는지 직관적으로 파악할 수 있어야 함

www.naver.com/news/category/article=12312  라는 url을 보면 대략적인 파악이 가능해야 함

 

5. Client - Server

 

6.계층형 구조 : 계층적으로 내부가 쌓여가는 구조


REST API의 단점

- overfetching : 필요한 정보값보다 더 많은 정보값이 로딩될 수 있음. 더 많은 정보를 받아야 함

- underfetching : 필요한 정보보다 부족한 정보 로딩으로 인해 추가 api 요청이 필요함

- Endpoint : 서비스 규모가 커질수록 endpoint가 늘어나서 관리하기가 어려워짐, 그리고 업데이트되면 기존 엔드포인트가 삭제/변경되면 클라이언트가 업데이트를 하지 않은 사용자에게 문제가 발생할 수 있음

그래서 이런 부분을 해결하고자 v1/user, v2/user 형태로 API 버전을 관리한다.

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)
    훌이
    훌이

    티스토리툴바