Spring Boot
-
[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] OpenSearch 연동Spring Boot/기타 2024. 7. 12. 23:27
1. Docker를 사용하여 OpenSearch 설치 및 실행1_1. OpenSearch 설치 Docker를 사용하여 로컬에 Opensearch를 설치하세요.docker pull opensearchproject/opensearch:1.3. 1_2. OpenSearch 실행 OpenSearch Docker 이미지를 다음의 명령어를 실행하여 로컬에서 실행하세요.docker run -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" -e DISABLE_SECURITY_PLUGIN=true opensearchproject/opensearch:1.3.171_3. OpenSearch 실행 상태 확인 OpenSearch가 정상적으로 실행되고 있는지 확인할 수 있습니..
-
[Spring Boot] RedisJSON 연동Spring Boot/기타 2023. 7. 17. 22:16
RedisJSON 모듈은 Redis에 대한 JSON 지원을 제공하며, 다른 Redis 데이터 유형과 마찬가지로 Redis 데이터베이스에서 JSON 값을 저장, 업데이트 및 검색할 수 있습니다.RedisJSON : https://redis.io/docs/stack/json/ 1. Docker를 사용하여 Redis 설치Docker를 사용하여 Redis를 로컬에 설치하세요.docker run -d --name redis-stack -p 6379:6379 -p 8001:8001 redis/redis-stack:latest포트 6379는 Redis 연결, 포트 8001는 RedisInsight에 사용됩니다.Docker Hub : https://hub.docker.com/r/redis/redis-stack Redi..
-
[Spring Boot] RedisTemplate을 이용한 Redis Data Type 확인Spring Boot/기타 2023. 7. 2. 18:32
Redis Data TypesStrings : 단순한 텍스트나 이진 데이터를 저장하는데 사용되며, 각 키에 대해 하나의 값만 저장할 수 있습니다. Strings는 캐싱, 세션 관리, 카운팅 등에 사용됩니다.Lists : 순서가 있는 문자열의 목록을 저장하는데 사용되며, 한 키에 여러 값을 저장할 수 있으며, 값들은 순서대로 저장됩니다. Lists는 대기열, 로그, 최근 작업 목록 등에 사용됩니다.Sets : 중복되지 않는 값을 저장하는데 사용되며, 멤버 간의 순서가 없으며, 각 멤버는 유일합니다. Sets는 태그 처리, 중복 제거 등에 유용합니다.Hashes : 필드-값 쌍을 저장하는 데 사용되며, 각 키에 대해 여러 개의 필드와 해당 필드에 연결된 값들을 저장할 수 있습니다. Hashes는 필드의 추가..
-
[Spring Boot] Spring Data JPA + QueryDSL 설정Spring Boot/기타 2023. 1. 15. 11:35
QueryDSL 이란?쿼리를 문자가 아닌 코드로 작성해도, 쉽고 간결하며 그 모양도 쿼리와 비슷하게 개발 할 수 있는 프로젝트가 바로 QueryDSL입니다. QueryDSL도 Criteria처럼 JPQL 빌더 역할을 하는데 JPA Criteria를 대체할 수 있습니다.QueryDSL은 오픈소스 프로젝트이며, 처음에는 HQL(Hibernate Query Language)을 코드로 작성할 수 있도록 해주는 프로젝트로 시작해서 지금 JPA, JDO, JDBC, Lucene, Hibernate Search, MongoDB, Collections 및 RDFBean을 지원합니다. 참고 - http://querydsl.com/static/querydsl/4.4.0/reference/html_single/ Query..
-
[Spring Boot] Kotlin으로 REST API 만들기(9) - Transaction 적용Spring Boot/Kotlin으로 REST API 만들기 2022. 11. 3. 21:00
Kotlin으로 REST API 만들기(9) - Transaction 적용 1. Transaction 란? 모든 작업이 정상적으로 완료되면 Commit을 실행하고, 작업 처리 중 에러가 발생하면 Rollback하는 방식으로 처리하는 일련의 작업들을 하나의 단위로 묶어서 처리하는 것을 트랜잭션이라고 합니다. 2. Transaction의 기본 원칙 Atomicity (원자성) 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 합니다. (All or Nothing) Consistency (일관성) 트랜잭션이 성공적으로 완료하면 모든 데이터는 일관성을 유지해야 합니다. Isolation (독립성, 격리성) 트랜잭션은 독립적으로 처리되며, 처리되는 중간에 외부에서의 간섭은 없어야 합니다..
-
[Spring Boot] Kotlin으로 REST API 만들기(8) - Interceptor 적용Spring Boot/Kotlin으로 REST API 만들기 2022. 11. 1. 23:08
Kotlin으로 REST API 만들기(8) - Interceptor 적용 1. Interceptor 란? 인터셉터란 컨트롤러에 들어오는 요청 HttpRequest와 컨트롤러가 응답하는 HttpResponse를 가로채는 역할을 합니다. 2. Interceptor 적용 2_1. Interceptor 구현 HandlerInterceptor 인터페이스를 상속 받아서 PreHandle, PostHandle, afterComplete 메소드를 구현하세요. PreHandle(HttpServletRequest request, HttpServletResponse response, Object handler) 컨트롤러(즉 RequestMapping이 선언된 메서드 진입) 실행 직전에 동작합니다. 반환 값이 true일 경..