1. REST API란?

  • REST(REpresentational State Transfer) API(Application Programming Interface)의 약자이다.
  • REST 아키텍처 스타일을 준수하는 API를 의미하며, RESTful API라고도 부른다.

2. REST 디자인 원칙

  • 균일한 인터페이스(Uniform Interface) 
    • 정보가 표준 형식으로 전송되도록 균일한 인터페이스가 필요하다
    • HTTP 표준인 URL 과 응답코드, Requset-Response Method 등을 사용해야 한다.
  • 클라이언트-서버 디커플링 (Client-Server)
    • 클라이언트와 서버로 분리되어야하며 의존성이 없어야 한다.
  • 무상태 (Stateless)
    • 상태 정보를 저장하지 않으며, 이용자 및 접근 경로에 따라 결과가 다르지 않고 동일해야 한다.
  • 캐시 가능성 (Cache)
    • 응답 시간 개선을 위한 캐싱을 지원한다.
  • 계층 구조 아키텍처 (Layerd System)
    • REST API는 공개가 될수 밖에 없기 떄문에 요청된 정보를 검색하는데 관련된 서버의 유형을 알수 없도록 설계해야 한다.
  • 코드 온디맨드(옵션)
    • REST API 는 일반적으로 정적 리소스를 전송하지만, 요청을 받아 서버에서 클라이언트로 실행 가능한 코드를 전송할 수 있도록 확장시켜줄 수 있다.

3. RESTful API 강점

  • 확장성
  • 유연성
  • 독립성

4. RESTful API 동작 방식

  • REST API 는 HTTP 요청을 통해 통신함으로써 리소스 내에서 CRUD (Create,Read,Update,Delete) 기능을 수행한다.
  • 클라이언트는 GET을 사용하여 서버의 리소스에 엑세스 가능하다.
  • 클라이언트는 POST를 사용하요 서버에 데이터를 전송한다.
  • 클라이언트는 PUT을 사용하여 기존 서버의 기존 리소스를 업데이트 할수 있다.
  • 클라이언트는 DELETE를 사용하요 리소스 제거가 가능하다

REST API 동작 방식

RAID(Redundant Array of Independent Disk)

RAID(Redundant Array of Independent Disk)란 여러 디스크를 묶어 하나의 디스크처럼 사용할 수 있도록 하는 기법이다.

RAID 종류는 사용 방식에 따라 RAID 0 ~ 6 또는 RAID 1+0, RAID 0+1 과 같이 분류할 수 있다. 

 

RAID 0

RAID 0는 Striping 이라고 불리는 방식이며 구성하는 디스크에 데이터를 분산하여 저장한다. 이를 통하여 디스크가 성능은 높였으나, 하나의 디스크라도 장애가 발생 시 데이터가 유실되는 단점이 있다. 최소 구성 디스크는 2개이다.

RAID 0

RAID 1

RAID 1은 Mirroing 방식으로 불리우며, RAID 1은 모든 디스크에 데이터를 저장하기 때문에, 데이터 안정성이 매우 높으나, 저장이 필요한 데이터 용량이 늘어날수록 N배의 디스크 용량이 필요하기 때문에 비용이 높은 단점이 있다. N-1개의 디스크 장애 시까지 데이터 사용이 가능하다. 최소 구성 디스크는 2개이다.

RAID 1

RAID 5

RAID 5는 가장 널리 쓰이는 방식으로 하나의 디스크 스트라이핑과 패리티를 모두 사용하여 디스크에 장애가 발생하더라도 작동할수 있도록 한다. RAID 0의 경우 스트라이핑만 사용하여, 디스크 장애 시 데이터 손실에 대한 안정성이 우려되었으나, RAID 5의 경우 디스크 장애 시 다른 디스크들에 스트라이프 되어 있는 패리티로 재구성이 가능한 강점이 있다. 1개의 디스크 장애 시 복구가 가능하며, 2개 이상 발생 시 데이터 복구가 불가능하다. 최소 구성 디스크는 3개이다.

RAID 5

RAID 6

RAID 6는 패리티가 1개인 RAID 5와 달리 패리티를 2개의 디스크에 저장하여 안정성을 높여 최대 2개의 디스크가 장애가 나더라도 데이터 사용이 가능한 안정성을 보여준다. 최소 구성 디스크는 4개이다.

 

RAID 6

+ Recent posts