반응형
1. REST 란 무엇?
- 서비스에 존재하는 모든 자원(Resource : 이미지, 유저 정보, 포스팅정보, 동영상 등) 에 대해서 고유의 URI를 부여해서 활용하는 것
2. API 란 무엇?
- 운영체제(윈도우즈, 리눅스, 맥)에서 돌아가는 프로그램을 만들기 위해서 함수가 필요하고,
- 이 함수는 운영체제가 제공해 준다. 즉 이렇게 운영체제가 제공해 주는 함수를 API라고 한다.
- 현재는, 서비스에서 다른 프로그램이나 서비스로 기능을 제공해 주는 인터페이스를 API 라고 한다.
3. REST 의 구성에 대해서 말씀하세요.
- 3가지로 구성되어 있습니다.
- 첫번째, Resource (자원) 은 http://service.com/api/v1/users URI 형태로 표시합니다.
- 두번째, Method (행동) 는 행동에 따라서 4가지를 주로 사용합니다. GET / POST / DELETE / PUT
- 세번째, Message (데이터) 는 JSON이나 XML 형식으로 전달합니다.
HTTP POST, http://service.com/users
{
"users": {
"name": "sol"
}
}
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 기술 용어' 카테고리의 다른 글
자바 클래스와 객체 (Class , Object / Instance ) (0) | 2020.09.28 |
---|---|
Data Structure ( JAVA Collections ) (0) | 2020.09.25 |
프로세스, 쓰레드, 쓰레드풀, 캐시 Process Thread Thread Pool Cache (0) | 2020.09.24 |
안드로이드 프래그먼트 Android Fragment (0) | 2020.09.23 |
Firebase FireStore 파이어스토어 안드로이드 (0) | 2020.09.22 |