왕현성
코딩발자취
왕현성
전체 방문자
오늘
어제
  • 코딩 (277)
    • Python (71)
    • Java (16)
    • MySQL (34)
    • 인공지능 (48)
      • 머신러닝 (16)
      • 딥러닝 (32)
    • 영상처리 (4)
    • Rest API (21)
    • Android Studio (25)
    • streamlit (13)
    • DevOps (22)
      • AWS (9)
      • PuTTY (5)
      • Git (4)
      • Serverless (2)
      • Docker (2)
    • IT 기술 용어 (6)
    • 디버깅 ( 오류 해결 과정 ) (17)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • get_long_description
  • pytorch
  • numpy
  • UnboundLocalError
  • matplotlib
  • PYTHON
  • encoding='utf-8'
  • 영상기술
  • pip install labelme
  • alibidetect
  • 영상처리역사
  • yolov8
  • labelme
  • unsupervised
  • ckpt_file
  • imageprocessing
  • 비지도학습
  • PIL
  • 영상처리
  • ComputerVision
  • maskimage
  • tune()
  • 딥러닝
  • 컴퓨터비전
  • labelme UnocodeDecodeError
  • 의료이미징
  • TensorFlow
  • alibi-detection
  • 기상탐사
  • OpenCV

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
왕현성

코딩발자취

REST API
IT 기술 용어

REST API

2023. 4. 17. 12:33
728x90

1. REST 란?

  • 서비스에 존재하는 모든 자원(Resource : 이미지, 유저 정보, 포스팅정보, 동영상 등) 에 대해서 고유의 URI를 부여해서 활용하는 것

2. API 란?

  • 운영체제(윈도우즈, 리눅스, 맥)에서 돌아가는 프로그램을 만들기 위해서 함수가 필요하고,
  • 이 함수는 운영체제가 제공해 준다. 즉 이렇게 운영체제가 제공해 주는 함수를 API라고 한다.
  • 현재는, 서비스에서 다른 프로그램이나 서비스로 기능을 제공해 주는 인터페이스를 API 라고 한다.

3. REST의 구성 3가지

  • 첫번째 Resource(자원)은 URI 형태로 표시합니다.
  • 두번째 Method는 행동에 따라서 4가지를 주로 사용합니다. GET/POST/PUT/DELETE
  • 세번째 Message(데이터)는 JSON이나 XML 형식으로 전달합니다.

{

  "users": {

    "name": "hyunsung"

    }

}

 

4. REST의 특징

 

- 6가지의 조건이 있는데 이를 잘 지키는 서비스 디자인을 보고 Restful하다고 한다.

 

1) Client-Server

  • 클라이언트는 사용자 인증 등을 관리하고 서버는 API를 제공하는 등의 역할이 확실하게 구분되어 작동할 수 있게 한다.

 

 

2) Uniform Interface

  • REST는 HTTP 표준만 따른다면, 어떠한 기술이든 사용이 가능한 인터페이스 스타일이다.
  • REST는 수신자가 이해하기 위한 모든 정보를 가지고 있어야 한다.(Self-descriptiveness 구조)

 

 

3) Stateless

  • 상태에 대한 정보는 클라이언트가 가지고 있고 서버는 이를 저장하지 않는다. => 구현이 쉽고 단순해짐

 

 

4) Cacheable

  • 웹에서 사용하는 기존의 인프라를 그대로 활용이 가능해 HTTP가 가진 가장 강력한 특징 중 하나인 캐싱 기능을 적용할 수 있다. 이렇게 캐시를 사용하게 되면 네트워크 응답시간 뿐만 아니라, REST 컴포넌트가 위치한 서버에 트랜잭션을 발생시키지 않아, 전체 응답시간과 성능 그리고 서버의 자원 사용률을 비약적으로 향상시킬 수 있다.

 

 

5) Layered System

  • 서버는 클라이언트가 모르게(클라이언트에서는 REST API서버만 호출) API 서버에 여러 계층(사용자 인증, 암호화, 로드밸런싱 등)을 추가하여 유연한 구조로 개발 될 수 있다.

 

 

6) Code on Demand(optional)

  • 클라이언트는 리소스에 대한 표현을 응답으로 받고 처리해야 하는데, 어떻게 처리해야 하는지에 대한 code를 서버가 제공하는 것을 의미

'IT 기술 용어' 카테고리의 다른 글

애플리케이션에서 데이터베이스 cursor와 connection 닫는 이유  (0) 2023.04.20
[DB] 트랜잭션 (Transaction )  (0) 2023.04.19
RDBMS vs NoSQL  (0) 2023.04.18
[백엔드] Django vs Flask vs FastAPI  (0) 2023.04.17
MySQL - 데이터베이스 인덱스(Index) 기본 개념과 설명 / 단점 / Cardinality  (0) 2023.03.31
    'IT 기술 용어' 카테고리의 다른 글
    • [DB] 트랜잭션 (Transaction )
    • RDBMS vs NoSQL
    • [백엔드] Django vs Flask vs FastAPI
    • MySQL - 데이터베이스 인덱스(Index) 기본 개념과 설명 / 단점 / Cardinality
    왕현성
    왕현성
    AI 머신비전 학습일지

    티스토리툴바