정보관리기술사 133회 1교시 1번 문제 REST API(REpresentational State Transfer Application Programming Interface)에 대하여 설명하시오
by 뱁새유니버스1. 세줄요약
01. 한 문제마다 한 장의 분량을 작성한다 생각하고 정리해야겠다.
02. 현업에서 restful방식으로 통신하자고 하는데도 한장을 쓰려니...
03. 어렵다!! 매일 블로그에 정리를 잘해서 시험공부를 해봐야겠다.
2. 시험문제 접근법
(1) 개념을 정의하자.
REST API는 REpresentational State Transfer 아키텍처 스타일의 설계 원칙을 준수하는 API입니다.
자원을 표현적(representational)으로 구분하여 해당 자원의 상태(State)를 주고 받는(Transfer) 모든 것을 의미합니다.
현어베서는 RESTful API 또는 RESTful 웹 API라고도 하는데. REST API에 굳이 굳이! RESTful API라고 하는 이유는 stackoverflow에 조회해보니 아래와 같습니다.
REST API에 대해 기술 사용(the use of the technology) 굉장히 긍정적으로(positive connotation) 잘하는 것(Promote)으로 여기면 될 것 같습니다.
(2) 특징을 정의하자.
REST API 의 기본 특징은 아래와 같습니다.
1. 클라이언트-서버 구조
- 클라이언트와 서버가 명확히 분리되어 있습니다. 클라이언트는 사용자 인터페이스와 관련된 작업을 수행하고, 서버는 데이터 저장 및 처리를 담당합니다.
2. 무상태성 (Stateless)
- 각 요청은 독립적이며, 서버는 클라이언트의 상태를 저장하지 않습니다. 모든 요청에는 필요한 모든 정보가 포함되어야 합니다.
3. 캐시 가능 (Cacheable)
- 응답은 캐시 가능해야 합니다. HTTP 헤더를 사용하여 응답이 캐시될 수 있는지 여부를 명시할 수 있습니다.
4. 일관된 인터페이스 (Uniform Interface)
- API는 일관된 방법으로 자원에 접근할 수 있도록 설계되어야 합니다. 이를 위해 REST는 몇 가지 하위 제약을 정의합니다:
- 자원 식별 (Resource Identification): URI를 사용하여 자원을 식별합니다.
- 자원 표현 (Resource Representation): 자원은 XML, JSON 등 다양한 형식으로 표현될 수 있습니다.
- 자원 조작 (Resource Manipulation): HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 자원을 조작합니다.
- 자기 설명적 메시지 (Self-descriptive Messages): 각 메시지는 자신을 설명하는 정보를 포함해야 합니다.
- 하이퍼미디어에 의한 애플리케이션 상태 엔진 (HATEOAS): 클라이언트는 서버가 제공하는 링크를 통해 애플리케이션의 상태를 변경할 수 있어야 합니다.
5. 계층화 시스템 (Layered System)
- 클라이언트는 중간 서버를 통해서도 서버에 접근할 수 있으며, 중간 서버는 로드 밸런싱, 캐싱 등의 기능을 수행할 수 있습니다.
(3) 구성요소를 적자.
REST API는 일반적으로 다음과 같은 요소로 구성됩니다.
- 자원 (Resource)
- 자원은 URI를 통해 고유하게 식별됩니다. 예를 들어, 사용자 자원은 http://example.com/users와 같은 형태의 URI를 가질 수 있습니다.
- HTTP 메서드
- 자원에 대한 CRUD(Create, Read, Update, Delete) 작업은 HTTP 메서드를 사용하여 수행됩니다:
- GET: 자원의 상태를 조회합니다.
- POST: 새로운 자원을 생성합니다.
- PUT: 자원의 상태를 업데이트합니다.
- DELETE: 자원을 삭제합니다.
- 자원에 대한 CRUD(Create, Read, Update, Delete) 작업은 HTTP 메서드를 사용하여 수행됩니다:
- HTTP 상태 코드
- 서버는 요청에 대한 응답으로 상태 코드를 반환하여 요청의 성공 또는 실패 여부를 나타냅니다. 예를 들어:
- 200 OK: 요청이 성공적으로 처리되었습니다.
- 201 Created: 새로운 자원이 성공적으로 생성되었습니다.
- 400 Bad Request: 잘못된 요청입니다.
- 404 Not Found: 요청한 자원을 찾을 수 없습니다.
- 500 Internal Server Error: 서버에 오류가 발생했습니다.
- 서버는 요청에 대한 응답으로 상태 코드를 반환하여 요청의 성공 또는 실패 여부를 나타냅니다. 예를 들어:
- 헤더 및 본문
- 요청과 응답은 헤더와 본문을 가질 수 있습니다. 헤더에는 메타데이터(예: 인증 정보, 콘텐츠 유형 등)가 포함되고, 본문에는 실제 데이터가 포함됩니다.
(4) 고려사항을 적자.
REST API를 설계할 때 다음 사항을 고려해야 합니다
- 자원 모델링
- 자원을 식별하고 URI 구조를 설계합니다.
- HTTP 메서드 사용
- 각 작업에 적합한 HTTP 메서드를 선택합니다.
- 상태 코드
- 적절한 HTTP 상태 코드를 반환하여 클라이언트가 요청의 결과를 이해할 수 있도록 합니다.
- 보안
- HTTPS를 사용하여 데이터 전송을 암호화하고, 인증 및 권한 부여 메커니즘을 구현합니다.
- 버전 관리
- API의 변경 사항을 관리하기 위해 버전 관리를 도입합니다. 예를 들어, http://example.com/v1/users와 같이 URI에 버전을 포함할 수 있습니다.
3. 마치며
이번 시간은 정보관리기술사 133회 1번문제 REST API가 무엇인지 정리해보았습니다.
갈길은 멀고 할일은 많군요!
질문이 있으시면 언제든 댓글 남겨주세요! 답변드리겠습니다. 같이 공부합시다^^
이 글을 보는 모든 분들 오늘 하루가 행복하시길 바랍니다.
감사합니다.
'IT > 정보관리기술사' 카테고리의 다른 글
정보관리기술사 133회 1교시 2번문제 (0) | 2024.05.31 |
---|---|
정보관리기술사 128회 기출문제 1교시 1번 WBS 엑셀 샘플 무료 공유 (0) | 2023.07.17 |
블로그의 정보
가슴이 웅장해지는 모든것
뱁새유니버스