java
-
[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 요..
-
[Java] MapStruct를 활용한 객체 변환Java/기타 2024. 9. 21. 07:19
mapstruct 라이브러리는 Java Bean 매핑을 간편하게 수행할 수 있도록 도와주는 애너테이션 기반의 코드 생성 라이브러리입니다. 이번 포스트에서는 Flattening과 Projection을 통해 MapStruct의 사용법을 알아보겠습니다. 1. 라이브러리 추가Gradle 설정dependencies { // Lombok - MapStruct보다 먼저 정의 compileOnly 'org.projectlombok:lombok:1.18.34' annotationProcessor 'org.projectlombok:lombok:1.18.34' testCompileOnly 'org.projectlombok:lombok:1.18.34' testAnnotationProcessor 'o..
-
[Java] ModelMapper를 활용한 객체 변환Java/기타 2024. 8. 17. 10:22
org.modelmapper 라이브러리는 복잡한 객체를 단순화하거나, 단순한 객체를 복잡하게 변환하는데 유용합니다. 이번 포스트에서는 두 가지 주요 변환 방식인 Flattening과 Projection을 통해 ModelMapper의 사용법을 알아보겠습니다.1. 라이브러리 추가com.jayway.jsonpath:json-path:2.9.0는 Java에서 JSON 데이터를 다루기 위해 사용하는 라이브러리입니다. Gradle 설정build.gradle 파일에 다음과 같이 의존성을 추가합니다.// ModelMapperimplementation 'org.modelmapper:modelmapper:3.2.1'Maven Repository : https://mvnrepository.com/artifact/org.mo..
-
[Java] JSONPath로 JSON 데이터 다루기Java/기타 2024. 8. 17. 10:07
JSONPath는 JSON 데이터를 효율적으로 탐색하고, 특정 값을 추출하거나 필터링하는 쿼리 언어입니다. 이번 포스트에서는 com.jayway.jsonpath 라이브러리 사용하여 Java에서 JSON 데이터를 다루는 방법을 살펴보겠습니다.JSONPath 개요JSONPath는 JSON 문서를 대상으로 SQL과 유사한 구문을 사용하여 JSON 데이터의 특정 값을 추출할 수 있습니다. 대표적인 JSONPath 구문은 다음과 같습니다.JSON 경로 설명JSON 경로설명$루트 객체를 나타냅니다.@현재 객체를 나타냅니다.. 또는 [] 자식을 나타냅니다.*모든 요소를 나타냅니다... 모든 하위 요소를 재귀적으로 탐색합니다.?()필터링 조건을 나타냅니다. 1. 라이브러리 추가com.jayway.jsonpath:jso..
-
[JAVA] 12주차 과제 : 애노테이션Java/온라인 자바 스터디 2024. 4. 11. 18:56
목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 애노테이션 정의하는 방법 자바 애노테이션은 코드 사이에 메타데이터를 제공하는 방법으로, 주석보다 더 많은 기능을 합니다. 이는 소스 코드에 추가할 수 있는 특수한 형태의 '주석'이며, 코드에 정보를 제공하거나 컴파일러에게 특정 동작을 수행하도록 지시하는 등의 목적으로 사용됩니다. 애노테이션은 @interface 키워드를 사용하여 정의합니다. @interface는 자바의 키워드 중 하나로, 애노테이션 정의를 생성하는데 사용됩니다. 다음은 기본적인 애노테이션 구문입니다. public @interface MyAnnotation { // 애노테이션 요..
-
[Java] 배열(Array)을 리스트(List)로 변환 - 반복문, Arrays, Collection, StreamJava/Collection(컬렉션) 2023. 5. 6. 17:36
목차 배열(Array)을 리스트(List)로 변환배열을 리스트로 변환하는 방법은 반복문을 사용하거나 Arrays, Collection, Stream 클래스에세 제공하는 메서드를 사용하여 변환할 수 있습니다. 1. 반복문을 사용빈 리스트를 생성한 후, 배열의 모든 요소를 리스트에 추가하는 방법입니다. Integer, Double, String 등 여러 타입의 배열을 리스트로 변환하는 경우 제네릭 타입의 메서드를 정의하여 코드의 양을 줄일 수 있습니다.import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * 배열(Array)을 리스트(List)로 변환 - 반복문, Arrays, Collection, Steram * * 배열을..
-
[Spring Boot] REST API 만들기(1) - 프로젝트 생성Spring Boot/2.7.x - REST API 만들기 2022. 8. 28. 16:24
REST API 만들기(1) - 프로젝트 생성 1. 프로젝트 생성 1_1. File > New > Project... 1_2. Web > spring Web를 선택 후 Finish 1_3. 프로젝트 구조 2. application.properties 수정 스프링 부트의 기본포트는 8080이며, 다른 포트를 사용하려면 다음과 같이 수정하세요. # server 설정 server.port=9091 3. 프로젝트 동작 확인 3_1. 프로젝트 서버를 실행(Shift + F10)한 후 localhost:9091를 호출하여 Whitelabel Error Page가 호출되는지 확인하세요. 스프링 부트에서는 오류가 발생한 경우 화이트레벨(Whitelabel) 오류 페이지를 기본값으로 사용합니다. HTML 응답 JSON ..