반응형

Spring Boot 29

[Spring Boot / Java8] OpenAI API GPT3 사용 방법

1. OpenAI Key 발급 로그인 => 좌측 상단 [Personal] 클릭 => [View API keys] 클릭 https://platform.openai.com/overview OpenAI API An API for accessing new AI models developed by OpenAI platform.openai.com API Key는 최초 발급받을 때 한 번만 확인할 수 있다. 2. OpenAI Sevice 생성 @Slf4j @Service public class OpenAIService { private static final String API_ENDPOINT = "https://api.openai.com/v1/"; @Value("${OPEN_AI_KEY}") private Stri..

Java 2023.03.23

[Spring Boot] Security @AuthenticationPricipal 객체로 로그인 정보 받는 방법

@AuthenticationPricipal를 사용해 로그인한 사용자 정보를 받아올 수 있다. 하지만, @AuthenticationPricipal 타입은 UserDetails이기 때문에 커스텀을 해줘야 한다. 1. 기존 Security + JWT 설정 방법 2022.10.25 - [Java] - [Spring Boot] Spring Security JWT를 사용한 토큰 인증 구현 2. UserDetails을 커스텀한 클래스를 작성한다. @Builder @Data @NoArgsConstructor @AllArgsConstructor public class CustomUserDetails implements UserDetails { private String username; private String pas..

Java 2023.03.21

[Spring Boot] Spring Data JPA에서 Pageable사용한 Pagination 및 정렬 처리 방법

Pageable이란? 게시판에서 글을 한 번에 보여주지 않고 페이지를 나눠 보여준다. 정렬 방식, 페이지 번호, 페이지 크기 등 요청에 따라 정보를 전달해 주는 JPA에서 제공해 주는 객체이다. 사용 방법 1-1) Repository @Repository public interface BoardRepository extends JpaRepository { @Query(value = "select id, user_id, title, content, img, likes, hits\n" + "\t\t, (select COUNT(*) from comment where board_id = id) as comments, reg_time \n" + "from board \n" + "where title like %?..

Java 2023.03.06

[Spring Boot] RestTemplate/WebClient 사용한 REST API 호출 방법

RestTemplate RestTemplate이란? Spring 3.0부터 지원하는 객체로 간편하게 REST 방식 API를 호출할 수 있는 Spring 내장 클래스입니다. (동기 방식) HTTP 프로토콜의 메서드 (GET, POST, DELETE, PUT)에 맞게 여러 메서드를 제공한다. WebClient WebClient이란? Spring 5.0부터 지원하는 객체로 RestTemplate가 동기 방식이라면 WebClient는 비동기 방식의 REST API 호출할 수 있다. 1. RestTemplate 특징 Spring 3.0부터 지원하는 HTTP 통신 템플릿 응답으로 JSON, XML, String을 받을 수 있다. Blocking I/O 기반의 동기방식을 사용 RESTful 형식에 맞추어져 있다. H..

Java 2023.02.11

[Spring Boot] CORS 설정 방법

CORS CORS(Cross-Origin Resource Sharing) 란? 서로 다른 출처의 자원을 공유할 수 있도록 설정하는 권한 체제를 말한다. 따라서 CORS를 설정해주지 않거나 제대로 설정하지 않은 경우, 원하는 대로 리소스를 공유하지 못하게 된다. 출처(Origin) 란? URL 구조에서 Protocal, Host, Port를 합친 것을 말한다. 셋중 하나라도 다르면 다른 출처로 분류된다. 백엔드 서버가 실행되는 중이면 콘솔 창에서 해당 오류가 나타난다. 이는 보안을 위한 CORS 헤더 Policy를 위반했기 때문이다. 처음 리소스를 제공한 출처가(Origin)이 현재 요청하려는 도메인(Origin)과 다르더라도 요청을 허락해 주는 웹 보안 방침이다. 1. 설정 방법(모든 Controller..

Java 2022.10.27

[Spring Boot] Spring Security JWT를 사용한 토큰 인증 구현

Spring Cecurity Spring Security 란? 간단히 말하면 Spring의 보안(인증과 권한, 인가 등)을 담당하는 서블릿 필터의 집합이다. 서블릿 필터는 서블릿 실행 전에 실행되는 클래스들로 토큰 인증을 위해 컨트롤러 메서드의 첫 부분마다 인증 코드를 작성하는 고민을 해결하기 위해 서블릿 필터를 사용한다. JWT(JSON Web Token) 란? 2022.10.24 - [Java] - JWT(JSON Web Token) 개념 및 구조 * 전체 Source Code * https://github.com/kangilbin/TodoList 1. JWT 토큰 발행 방법 토큰 발행 > 로그인 시 토큰 반환 > 토큰을 이용해 API 인증 1-1) 토큰 생성을 위한 JWT 라이브러리 추가하기 htt..

Java 2022.10.25

[Spring Boot] Rest API 개념 및 작성 방법

REST API REST(Representational State Transfer) 란? HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다. REST API 란? 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다. 크게 URL, HTTP 메서드, 요청 매개변수 또는 요청 바디로 구분된다. 1. URL 맵핑 import org.springframework.web.bind.annotation.GetMapping; import org.springframework..

Java 2022.10.10

[Spring Boot] REST API 구현(1) JPA Entity, Repository 개념 및 작성 방법

REST API REST(Representational State Transfer) 란? HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다. REST API 란? 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다. JPA JPA 란? DB 테이블과 객체 사이의 매핑을 처리해주는 ORM(객체와 DB 맵핑해주는 것)이란 기술의 표준이다. * 개발 환경 아래 주소를 보고 참조 * https://cocococo.tistory.com/36 * Source Code *..

Java 2022.10.08

[Spring Boot] Spring Initializr 스프링 부트 프로젝트 생성 방법(이클립스)

스프링 부트 프로젝트 생성 1. Spring Initializr로 Spring Boot 프로젝트 생성하기. 1-1) https://start.spring.io/ 링크 이동 원하는 옵션 및 버전 선택할 수 있다. 1) ADD DEPENDENCES를 클릭하여 사용하고자 하는 라이브러리를 선택한다. 2) GENERATE를 클릭하여 파일을 다운로드하고 압축을 푼다. 1-2) 이클립스에서 import 받기 1) 이클립스 실행 후 File → import를 선택 2) 프로젝트를 Gradle로 만들었다면 Existing Gradle Project를 선택 3) 압축을 풀었던 프로젝트 폴더를 선택 후 next 클릭 4) 옵션 선택 Gradle Wrapper 윈도우에서 Gradle을 설치하지 않았지만, 프로젝트를 다운로드..

Java 2022.10.06
반응형