RESTful API: REpresentational State Transfer
- HTTP 통신에서 어떤 자원에 대한 CRUD 요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식
- Resource(자원, URI), Method(요청 방식_GET, POST), Representation of Resource(자원의 형태_JSON, XML)로 구성된다.
- REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다고 말할 수 있다.
- REST API의 설계 규칙을 올바르게 지키지 못한 시스템은 REST API를 사용하였지만 RESTful 하지 못한 시스템이라고 할 수 있다.
Stream API
- 컬렌셕 또는 배열 인스턴스에 저장된 데이터를 가지고 중간연산과 최종연산을 진행하기 좋은 구조로 배치시키는 복사본이라고 할 수 있다.
- 특징
- 원본의 데이터를 변경하지 않는다.
- 원본의 데이터를 조회하여 원본의 데이터가 아닌 별도의 요소들로 Stream을 생성한다.
- 원본의 데이터로부터 읽기만 할 뿐이며 정렬이나 필터링 등의 작업은 별도의 Stream 요소들에서 처리가 된다.
- 일회용이다.
- 일회용이기 때문에 한 번 사용이 긑나면 재사용이 불가능하다.
- Stream이 또 필요한 경우 Stream을 다시 생성해줘야 한다.
- 내부 반복으로 작업을 처리한다.
- 기존에는 반복문을 사용하기 위해 for, while 등의 문법을 사용해야 했다.
- stream에서는 그러한 반복 문법을 메소드 내부에서 숨기고 있기 대문에 간결한 코드의 작성이 가능하다.
- 연산 종류
- 생성하기
- 객체를 생성하는 단계, 재사용이 불가능하기 때문에 닫히면 다시 생성해야 한다.
- 가공하기
- 원본의 데이터를 별도의 데이터로 가공하기 위한 중간 연산
- 연산 결과를 Stream으로 다시 반환하기 때문에 연속해서 중간 연산을 이어간다.
- 결과 만들기
- 가공된 데이터로부터 원하는 결과를 만들기 위한 ㅎ최종 연산
- stream의 요소들을 소모하면서 연산이 수행되기 때문에 1번만 처리 가능하다.