일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- java
- 자바 스레드 예제
- savedinstancestate
- 안드로이드 스튜디오 반복되는 레이아웃 코드
- Kotlin
- 안드로이드 스튜디오 커스텀 다이얼로그
- recyclerview item recycle
- 이중for문 사용 안하기
- 안드로이드 스튜디오 style
- 리사이클러뷰 아이템 재사용
- 다른 객체 리스트의 비교
- 아파치 엔진엑스
- LifeCycle
- 안드로이드 스튜디오 custom dialog
- 객체지향 프로그래밍 5가지 원칙
- dagger error
- 디자인 패턴 예제
- apache란
- 안드로이드 스튜디오 인터넷 연결 안되어 있을 때
- hilt error
- 안드로이드 스튜디오 tts
- Thread
- AAC
- 변수
- 아파치란
- 안드로이드 디자인패턴
- java thread 예제
- edittext 연결
- apache nginx
- 안드로이드 스튜디오 인터넷 연결 확인
- Today
- Total
Sam Story
REST,REST API 본문
REST API 란?
REST API (RESTful API 또는 RESTful 웹 API 라고도 한다.)
REST(Representational State Transfer) 아키텍쳐 스타일의 설계 원칙을 준수하는 API이다.
REST 아키텍쳐 스타일을 간단하게 설명하자면 모듈,기능별로 분리하는 설계를 위한 스타일이다.
클라이언트 하나가 아닌 여러 클라이언트와 통신을 용이하게 하게끔 하는 스타일이다.
이러한 REST API는 애플리케이션을 통합하고
아키텍처의 구성요소를 연결하는 유연하고 가벼운 방법을 제공한다.
REST API 작동 방식
REST API는 HTTP 요청을 통해 통신하여 리소스 내에서
레코드를 C(create) R(read) U(update) D(delete) 와 같은 표준 데이터베이스 기능을 수행한다.
예를들어 REST API는 GET 요청을 사용하여 레코드를 검색한다.
POST 요청은 새 레코드를 생성한다.
PUT 요청은 레코드를 업데이트하고 DELETE 요청은 레코드를 삭제한다.
API 호출에는 모든 HTTP 방식을 사용할 수 있다.
잘 설계된 REST API는 HTTP 기능이 내장된 웹 브라우저에서 실행되는 웹 사이트와 유사하다.
REST의 장단점
장점
- HTTP 프로토콜의 인프라를 그대로 사용하므로 별도의 인프라 구축을 할 필요가 없다.
- HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
- REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
- 서버와 클라리언트의 역할을 명확하게 분리한다.
단점
- 표준이 존재하지 않는다
- HTTP 메서드 형태가 제한적이다.
정리를 해보자면 이러한 REST가 필요한 이유로는
첫번째로는 어플리케이션에 분리 및 통합을 위해서이고 다양한 클라이언트의 등장도 있다.
최근의 서버프로그램들은 다양한 브라우저와 안드로이드,아이폰 등 여러 모바일 디바이스에서도
통신을 할 수 있어야 한다.
이러한 멀티 플랫폼에 대한 지원을 위해 서비스 자원에 대한 아키텍처를 세우고 이용하는 방법중 하나로
REST가 관심을 갖게 되었다.
공부를 하다보니 느끼는 것은 아무렇게나 사용하던 기술이나 방식들이 알고보면
굉장히 치밀하게 설계되어 있고 설계 기본 규칙들이 어느정도 있다는 것이다.
당연하게 사용하던 것들에 대한 기본적인 공부가 더 필요하다고 느낀다.
'개발지식' 카테고리의 다른 글
객체지향 프로그래밍 SOLID 원칙 (1) | 2024.09.24 |
---|---|
객체지향 프로그래밍 (5) | 2024.09.23 |
엔진엑스 (NGINX) (0) | 2024.05.08 |
아파치 (Apache) (1) | 2024.05.01 |
동기 , 비동기 (Synchronous , Asynchronous) (0) | 2024.04.24 |