[2] REST API

2023. 3. 2. 17:51·백엔드 back-end

1. REST API 

 

1 ) API : Application Programming Interface 

응용 프로그램에서 사용할 수 있도록 다른 응용 프로그램을 제어할 수 있게 만든 인터페이스를 뜻함 

api를 사용하면 내부 구현 로직을 알지 못해도 정의되어 있는 기능을 쉽게 사용가능 

 

2) REST : Representational State Transfer 

자원(데이터)의 이름으로 구분하여 해당 자원의 상태를 교환하는 것을 의미 

REST는 server and client 통신 방식 중 하나임 

 

2.1)  REST 특징 

 

- Server - Clinet 구조  : 자원이 있는 쪽 Server, 요청하는 쪽 Clinet  / 독립적으로 분리되어 있어야함 

- Stateless : 요청간에 클라이언트 정보가 서버에 저장 x / 서버는 각각의 요청을 완전히 별개의 것으로 인식하고 처리 

- Cacheable : HTTP 의 특징인 캐싱 기능 적용 / 대량의 요청을 효율적으로 처리하기 위해 캐시 사용 

-계층화 : 클라이언트는 서버의 구성과 상관없이 REST API서버로 요청 / 서버는 다중 계층으로 구성될 수 있음 

-Code on Demand (Optional) : 요청을 받으면 서버에서 클라이언트로 코드 또는 스크립트(로직)을 전달하여 클라이언트                                                     기능 확장 ( java script에서만 거의 사용 )  

-인터페이스 일관성 : 정보가 표준 형식으로 전송되기 위해 구성 요소간 통합 인터페이스를 제공/ http프로토콜을 따르는                                       모든 플랫폼에서 사용 가능하게끔 설계 

 

2.2) REST 장점 

 

-HTTP 표준 프로토콜을 사용하는 모든 플랫폼에서 호환가능 

-서버와 클라이언트의 역할 명확하게 분리 

-여러 서비스 설계에서 생길수 있는 문제를 최소화 

 

3) REST API 

 

- REST 아키텍처의 조건을 준수하는 어플리케이션 프로그래밍 인터페이스 

- 최근 많은 API가 REST API로 제공되고 있음 

- REST 기반으로 시스템을 분산하여 확장성과 재자용성을 높임 

- HTTP 표준을 따르고 있어 여러 프로그래밍 언어로 구현할 수 있음 

'백엔드 back-end' 카테고리의 다른 글

[5] Hello World 응답하기  (0) 2023.03.02
[4] MVC 패턴  (0) 2023.03.02
[3] pom.xml  (0) 2023.03.02
[1] 스프링 부트 프로젝트 생성 및 구조, 메이븐과 그레이들  (0) 2023.01.06
[0] 스프링 부트 공부 첫걸음  (0) 2023.01.01
'백엔드 back-end' 카테고리의 다른 글
  • [4] MVC 패턴
  • [3] pom.xml
  • [1] 스프링 부트 프로젝트 생성 및 구조, 메이븐과 그레이들
  • [0] 스프링 부트 공부 첫걸음
니블
니블
  • 니블
    기록장
    니블
  • 전체
    오늘
    어제
    • 분류 전체보기 (89)
      • 카프카 Kafka (2)
      • 데이터베이스 db (3)
      • 깃 git (4)
      • 백준 baekjoon (31)
      • 백엔드 back-end (20)
      • 점프 투 스프링부트 (8)
      • 메세지 큐 mq (3)
      • 개발도구 tool (3)
      • 레디스 Redis (3)
      • CI-CD (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    EC2
    pipelines
    heapq
    GitLab
    Docker
    SQUASH
    리베이스
    사용자이름
    메세지큐
    Git
    백준
    redis
    AWS
    gitconfig
    분산처리
    guard clause
    트러블슈팅
    자바
    스프링부트
    mysql
    db
    rebase
    분산구조
    로거
    reids-cluster
    1927
    docker runner
    이벤트스트리밍
    레디스 클러스터
    kafka
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
니블
[2] REST API
상단으로

티스토리툴바