2025/07/17 8

RestTemplate : 07. UriComponentsBuilder. 동적으로 URL 조합 및 생성

* UriComponentsBuilder 주요 메서드스프링에서 동적으로 url을 조합 및 생성하기 위한 유틸리티 클래스전체 경로를 조립해주는 빌더리턴 타입 대부분이 UriComponentsBuilder로 체이닝 가능RestTemplate, WebClient에서 쿼리 파라미터, 경로 변수 등을 안전하게 붙일 때 사용fromHttpUrl(String url) -> UriComponentsBuilder . 초기 URL 설정 . http/https 포함fromPath(String path) -> UriComponentsBuilder . 상대경로 기반 URI 설정path(String path) -> UriComponentsBuilder . 기존 URI에 경로 추가queryParam(String name, Obje..

RestTemplate : 06. HttpMethod. HTTP 요청 메시지 설정

* HttpMethod 주요 상수HTTP 요청 메서드를 표현하는 enum 열거형 클래스GET, POST, PUT, DELETE emdHTTP 메서드를 안전하게 표현하기 위해 사용RestTemplate의 메서드에서 인자로 사용HttpMethod.GET : 데이터 조회 (조회용)HttpMethod.POST : 데이터 생성 (등록용)HttpMethod.PUT : 데이터를 전체 수정HttpMethod.PATCH : 데이터를 부분 수정HttpMethod.DELETE : 데이터 삭제HttpMethod.HEAD : 응답 헤더만 요청 (본문 body 제외)HttpMethod.OPTIONS : 서버가 지원하는 HTTP 메서도 목록 요청. 클라이언트가 어떤 메서드를 사용할 수 있는지 미리 확인할 때 사용HttpMethod..

RestTemplate : 05. MediaType. HTTP 메시지의 콘텐츠 타입 설정

* MediaType 주요 메서드 HTTP 요청/응답의 콘텐츠 타입을 표현MIME 타입을 설정. ex) JSON, XML, HTML, plain text 등getType() -> String . MIME 타입의 주 타입을 반환 (main type) . application/json이면 applicatingetSubtype() -> String . MIME 타입의 서브 타입 반환 (subtype) . application/json이면 jsongetCharset() -> Charset . 설정된 문자 인코딩 반환includes(MediaType other) -> boolean . 다른 MediaType을 포함하는지 여부 검사 . application/*은 application/json 포함isCompatib..

RestTemplate : 04. ResponseEntity<T>. HTTP 응답 메시지 처리

* ResponseEntity 주요 메서드HTTP 응답 전체를 표현하는 클래스본문, 헤더, 상태 코드 모두가 포함됨RestTemplate에서 서버 응답을 받기 위해 주로 사용getBody() -> T . 응답의 본문 body를 가져옴getStatusCode() -> HttpStatus . HTTP 상태 코드 반환 . 200 OK, 404 Not Found 등getStatusCodeValue() -> int . HTTP 상태 코드를 숫자로 반환getHeaders() -> HttpHeaders . 응답에 포함된 헤더 정보를 반환hasBody() -> boolean . 응답에 본문 body가 있는지 확인toString() -> String . 전체 응답을 문자열로 반환 . 디벙깅용으로 사용예시 코드Respon..

RestTamplate : 03. HTTPEntity<T>. HTTP 요청 메시지 생성

* HTTPEntity 주요 메서드HTTP 요청 또는 응답의 본문과 헤더를 함께 다루기 위해 사용하는 제네릭 클래스body와 header를 한번에 다룸T는 요청 혹은 응답의 바디에 담을 데이터 타입을 의미dto 클래스를 의미HttpHeaders와 body를 함께 담아 RestTemplate, WebClient, Controller 등에 전달생성자 1. HttpEntity() : 헤더와 바디 없이 빈 엔티티 생성 2. HttpEntity(T body) : 바디만 있는 엔티티 생성 3. HttpEntity(T body, HttpHeaders headers) : 헤더와 바디 모두 포함한 엔티티 생성getBody() -> T . HTTP 메서드의 body 반환getHeaders() -> HttpHeaders ...

RestTempate : 02. HttpHeaders. 요청 헤더 설정

* HttpHeaders 메서드java.util.Map>을 기반으로 구현한 헤더 키에 여러 값을 가질 수 있음사용하는 메타 정보는 1. Content-Type : 본문 (body)의 데이터 형식. ex) JSON, XML 2. Accept : 클라이언트가 응답으로 받고 싶은 데이터 형식 3. Authorization : 인증 정보 ex) Bearer 토큰 4. User-Agent : 클라이언트의 정보 (브라우저나 앱 종류 등) 5. X-Custom-Header : 개발자가 임의로 정의한 커스텀 헤더add(String headerName, String headerValue) -> void . 하나의 헤더에 값을 추가 . 기존 값이 유지됨set(String headerName, String headerVa..

RestTemplate : 01. 개요 및 RestTemplate

* RestTemplate스프링 프레임워크에서 제공하는 동기 방식(Synchronous)의 HTTP 클라이언트RESTful API 서버에 HTTP 요청을 쉽게 보낼 수 있게 해줌(GET, POST, PUT, DELETE)JSON, XML 등 다양한 데이터 포맷을 자동으로 직렬화/역질렬화 지원대규모, 고성능 비동기 방식에서 한계가 어느 정도 있으므로RestTemplate를 공부한 다음에 WebClient를 공부하는 것을 추천스프링 부트에서 제공하는 라이브러리이다..~~~~.. * RestTemplate 특징 1. 동기 방식 2. 다양한 HTTP 메서드 지원 3. 자동 변환 지원 4. 예외 처리 5. 커스터마이징 가능자동 변환 지원 . 요청 객체 -> JSON/XML . 응답 JSON/XML -> 객체 변환..

GPT 프롬프트 사용법

* GPT 프롬프트 사용법사전 작업 1. GPT API 키 발급 2. Gradle, application 파일 설정코드 작성법 1. 요청/응답 JSON 설계 2. 요청/응답 dto 작성 3. GPT 처리기 만들기 (common 클래스) 4. 컨트롤러 및 마스터 메서드에서 사용..~~~~.. * GPT 프롬프트 키 발급 1. OpenAI Platform 접속https://platform.openai.com/docs/overview 2. 회원가입 후 결제조직 설정을 해줘야 함Organization 3. /Dashboard에서 API Keys 생성이러면 API 키가 만들어짐sk-로 시작키를 잃어버리면 반드시 삭제 후 새로 발급받아야 된다..~~~~.. * Gradle 의존성 추가dependencies { ..