Spring
-
[Spring Boot] Apache HttpClient 5 기반 RestClient 구성하기Spring Boot/기타 2024. 12. 29. 10:22
목차 RestClient는 HTTP 요청 시 다양한 HttpClient 라이브러리를 사용할 수 있으며, 이러한 라이브러리는 ClientHttpRequestFactory 인터페이스의 구현체에 의해 처리됩니다. RestClient에서 사용되는 ClientHttpRequestFactory 구현체는 다음과 같습니다.JdkClientHttpRequestFactory : Java의 기본 HttpClient를 사용HttpComponentsClientHttpRequestFactory : Apache HttpClient를 사용JettyClientHttpRequestFactory : Jetty의 HttpClient를 사용ReactorNettyClientHttpRequestFactory : Reactor Netty의 Htt..
-
[Spring Boot] RestClient, HttpInterface를 활용한 HTTP 요청Spring Boot/기타 2024. 11. 17. 00:35
목차 HttpInterface란?Spring 6에서는 HTTP 클라이언트를 사용하기 위한 새로운 방법으로 HttpInterface를 도입하였습니다. 이는 Spring HTTP 인터페이스를 통해 직관적이고 간편한 방법으로 HTTP 요청을 수행할 수 있게 합니다. 기존의 RestTemplate이나 WebClient와 달리, HttpInterface는 인터페이스를 선언하고 이를 구현하는 방식을 사용합니다.HttpInterface는 애노테이션과 프록시(Proxy) 패턴을 활용하여 HTTP 요청을 마치 메서드 호출처럼 사용할 수 있게 해줍니다. 이는 가독성이 좋고 테스트 편리하게 만들어 줍니다. 주요 애노테이션 및 기능HTTP 메서드별 애노테이션@HttpExchange : HTTP 인터페이스와 그 요청에 적용할..
-
[Spring Boot] RestClient를 활용한 HTTP 요청Spring Boot/기타 2024. 11. 10. 21:49
목차 RestClient란?Spring Framework 6.1 M2에서 새롭게 도입된 RestClient는 RestTemplate를 대체하는 동기식 HTTP 클라이언트입니다. 이 클라이언트는 HTTP 라이브러리에 대한 추상화를 제공하여 Java 객체를 HTTP 요청으로 쉽게 변환하고, HTTP 응답에서 객체를 생성할 수 있게 합니다. 또한, 가독성이 높은 API를 통해 간편하고 직관적인 사용성을 제공합니다. 주요 클래스와 메서드RestClient : HTTP 클라이언트를 생성하고 설정합니다.create() : 기본 설정으로 초기화된 새로운 RestClient 인스턴스를 생성합니다.builder() : 사용자 정의 설정을 통해 RestClient를 구성할 수 있는 빌더를 반환합니다.get() : HTTP..
-
[Spring Boot] RestTemplate를 활용한 HTTP 요청Spring Boot/기타 2024. 11. 10. 21:46
목차 RestTemplate란?RestTemplate은 Spring Framework의 HTTP 클라이언트로, RESTful 웹 서비스와 상호작용하여 쉽게 HTTP 요청을 보낼 수 있도록 도와줍니다. 주요 클래스와 메서드RestTemplate : HTTP 클라이언트를 생성하고 설정합니다.getForObject() : GET 요청을 URL에 보내고, 결과를 객체로 반환합니다.getForEntity() : GET 요청을 URL에 보내고, 결과를 ResponseEntity로 반환합니다.postForObject() : POST 요청을 URL에 보내고, 결과를 객체로 반환합니다.postForEntity() : POST 요청을 URL에 보내고, 결과를 ResponseEntity로 반환합니다.put() : PUT 요..
-
[Spring Boot] REST API 만들기(15) - Lombok 적용Spring Boot/2.4.x - REST API 만들기 2020. 6. 3. 17:55
Lombok은 DTO, VO, Entity 관련 클래스 생성 시 Getter, Setter, ToString 메서드 등 반복되는 코드를 어노테이션으로 대체하여 컴파일 시에 코드를 생성해주는 자바 라이브러리입니다. 1. 의존성 추가pom.xml에 Lombok에 대한 의존성을 추가하세요.pom.xml더보기1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121..
-
[Spring Boot] REST API 만들기(14) - Swagger 적용Spring Boot/2.4.x - REST API 만들기 2020. 5. 22. 19:27
API 애플리케이션을 구현할 때 API 목록을 HTML 화면으로 문서화하기 위해 방법으로 Swagger가 있습니다. SpringBoot에서 Swagger를 사용하면, 컨트롤러에 적용된 어노테이션을 해석하여 문서화할 수 있습니다.1. 의존성 추가pom.xml에 Swagger에 대한 의존성을 추가하세요.pom.xml 더보기123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108?xm..
-
[Spring Boot] REST API 만들기(13) - 예외 처리 및 테스트Spring Boot/2.4.x - REST API 만들기 2020. 5. 21. 16:48
스프링 MVC에서는 애플리케이션에서 발생하는 예외를 처리할 때는 @ExceptionHandler 어노테이션과 @ControllerAdvice 어노테이션을 사용합니다. @ExceptionHandler은 전체 애플리케이션의 예외 처리를 하지 못하기 때문에, 전체 애플리케이션의 예외 처리가 가능하고, ReponseEntity 형식을 사용할 수 있는 @ControllerAdvice 어노테이션을 이용해서 예외 처리를 하도록 하겠습니다. 1. ResourceNotFoundException.java 추가자원을 찾을 수 없다는 예외를 처리하기 위해 com.spring.board.exception 패키지를 생성한 후 ResourceNotFoundException 클래스를 추가하세요.ResourceNotFoundExcep..
-
[Spring Boot] REST API 만들기(12) - Content Negotiation 설정Spring Boot/2.4.x - REST API 만들기 2020. 5. 20. 17:46
REST에서는 하나의 리소스에 대해서 여러 형태의 Representation을 가질 수 있습니다. 어떤 요청을 처리할 때 응답을 application/json 형태로 할 수도 있고, application/xml 형태로 할 수도 있습니다. 클라이언트가 요청을 전달할 때 HTTP Header 중에서 Accept라는 이름을 이용해서 원하는 응답 형태를 명시하면, 서버에서는 클라이언트가 원하는 형태로 결과를 전달합니다. 이러한 처리 과정을 Content Negotiation이라고 합니다. 1. WebMvcConfig.java 수정WebMvcConfigurer의 configureContentNegotiation를 이용해서 미디어 타입을 설정할 수 있습니다.WebMvcConfig.java더보기123456789101..
-
[Spring Boot] REST API 만들기(11) - JSON Root Element 추가Spring Boot/2.4.x - REST API 만들기 2020. 5. 20. 16:07
JSON과 XML 두 방식을 모두 사용하는 경우 기본적으로 JSON은 Root Element룰 사용하지 않아 데이터 형식이 다른 경우가 있습니다. 게시글 목록 조회 시에 JSON으로 응답받는 경우 Root Element가 적용되지 않은 것을 확인할 수 있습니다. 게시글 목록 조회 시(http://localhost:8080/board) JSON, XML 응답JSON더보기12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879{ "boards": [ { "boar..
-
[Spring Boot] REST API 만들기(10) - XML 요청/응답 구현 및 테스트Spring Boot/2.4.x - REST API 만들기 2020. 5. 19. 17:50
스프링에서 제공하는 MarshallingHttpMessageConverter를 사용하여 XML 형식으로 데이터를 교환할 수 있도록 구현하겠습니다. MarshallingHttpMessageConverter는 스프링 OXM을 이용해서 객체와 XML 간의 상호 변환 작업을 합니다. Spring OXM스프링 OXM(Object Xml Mapping)은 XML 문서를 객체로 변환하거나, 객체를 XML 문서로 변환하는 기능을 제공합니다. 객체를 XML로 변환하는 과정은 XML Marshalling이라고 하며, XML을 객체로 변환하는 과정을 XML UnMarshalling이라고 합니다.Marshaller와 UnMarshaller 인터페이스는 구분되어 있지만, 실제 스프링에서 제공하는 구현체들은 하나의 클래스에서 두..