코딩 공부204 [HTTP] HTTP 헤더 - 콘텐츠 협상 (Content Negotiation) 콘텐츠 협상 (Content Negotiation) 콘텐츠 협상(Content-Negotiation)이란 클라이언트 측에서 선호하는 표현을 요청하는 것을 말합니다. 헤더에 클라이언트가 선호하는 표현(옵션)을 명시하여 서버 측에 전송했을 때, 서버 측에서 해당 헤더의 내용을 보고 가능한 옵션이라면 해당 표현으로 응답 메세지를 전송합니다. 만일 클라이언트가 한국어(ko)를 선호한다면 헤더에 해당 내용을 명시하여 한국어 제공을 요청할 수 있습니다. 그리고 q(Quality value)를 통해 우선 순위를 정할 수 있기 때문에, 1순위 옵션을 제공받을 수 없다면 그다음 우선순위에 해당하는 옵션을 요청할 수도 있습니다. 🏷️ 콘텐츠 협상(Content-Negotiation) 종류 1. Accept - 클라이언트가.. 2023. 11. 10. OpenAPI와 Swagger OpenAPI와 Open API 1. Open API 단어 그대로 “개방된 API”입니다. 즉, 누구나 사용될 수 있도록 API의 endpoint가 개방되어 있다면 Open API입니다. 예를 들어, 기상청의 단기예보 조회API, 우체국의 우편번호 API 등이 있고 Public API라고도 부릅니다. 2. OpenAPI OpenAPI 는 의미가 완전 다릅니다. OpenAPI 또는 OpenAPI Specification(OAS)라고 부르는데, 이는 RESTful API를 기 정의된 규칙에 맞게 API spec을 json이나 yaml로 표현하는 방식을 의미합니다. 직접 소스코드나 문서를 보지 않고 서비스를 이해할 수 있다는 장점을 가지고 있습니다. 즉, RESTful API 디자인에 대한 정의(Specifi.. 2023. 11. 9. [Docker] Docker Docker도커(Docker)는 리눅스 컨테이너(Linux Container) 기술을 기반으로 하는 오픈 소스 서비스로 애플리케이션 실행 환경을 코드로 작성할 수 있습니다. 또한 OS를 공유, 격리화하여 관리할 수 있습니다. 리눅스 컨테이너(Linux Container)리눅스 컨테이너(Linux Container)는 Linux 기반의 기술 중 하나로 필요한 라이브러리와 애플리케이션을 모아서 마치 별도의 서버처럼 구성한 것을 말합니다. 그리고 컨테이너를 이루는 네트워크 설정, 환경 변수 등의 시스템 자원은 각 컨테이너가 독립적으로 소유하고 있습니다. 1. 프로세스의 구획화특정 컨테이너에서 작동하는 프로세스는 기본적으로 그 컨테이너 안에서만 액세스 할 수 있으며 컨테이너 안에서 실행되는 프로세스는 다른 컨테.. 2023. 11. 8. [Spring] RequestParam과 PathVariable @RequestParam과 @PathVariable 컨트롤러에서 Requestparam, PathVariable은 uri를 통해서 파라미터 값을 넘겨받을 때 사용하는 어노테이션입니다. uri를 통해서 값을 전달하는 방식은 아래와 같이 2가지 방법이 있습니다. RequestParam → http://xxx.x.x?id=1 PathVariable → http://xxxx.x.x/users/1 RequestParam의 경우 파라미터의 값과 이름을 함께 전달하는 방식으로 게시판 등에서 페이지 및 검색 정보를 함께 전달하는 방식을 사용할 때 많이 사용합니다. PathVariable 의 경우 Rest api에서 값을 호출할 때 주로 많이 사용합니다. 이와 같이 Spring에서는 이러한 전달인자를 처리하는데 두 가지.. 2023. 11. 7. [Spring] ResponseEntity ResponseEntity Spring Framework에서 제공하는 클래스 중 HttpEntity라는 클래스가 존재합니다. 이것은 HTTP 요청(Request) 또는 응답(Response)에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스입니다. public class HttpEntity { public static final HttpEntity EMPTY = new HttpEntity(); private final HttpHeaders headers; @Nullable private final T body; // ... } Response header 에는 웹서버가 웹브라우저에 응답하는 메시지가 들어있고, Reponse body에 데이터 값이 들어가 있습니다. HttpEntity 클래.. 2023. 11. 7. [Spring] 전역 예외 처리 스프링의 기본적인 예외 처리 Spring은 만들어질 때부터 에러 처리를 위한 BasicErrorController를 구현해 두었고, 스프링 부트는 예외가 발생하면 기본적으로 /error로 에러 요청을 다시 전달하도록 WAS 설정을 해두었다. 그래서 별도의 설정이 없다면 예외 발생 시에 BasicErrorController로 에러 처리 요청이 전달됩니다. 참고로 이는 스프링 부트의 WebMvcAutoConfiguration를 통해 자동 설정이 되는 WAS의 설정입니다. 전역 예외 처리 - ControllerAdvice Spring은 전역적으로 ExceptionHandler를 적용할 수 있는 @ControllerAdvice와 @RestControllerAdvice 어노테이션을 제공하고 있습니다. @Contr.. 2023. 11. 4. 이전 1 ··· 9 10 11 12 13 14 15 ··· 34 다음