Spring CORS 설정: WebConfig 작성부터 wildcard '*', withCredentials 문제 해결까지
·
spring 스프링
[왜 WebConfig를 작성해야 할까?]프론트엔드와 백엔드가 분리된 환경에서는 각각의 도메인이 다르기 때문에 브라우저는 보안상의 이유로 자동으로 요청을 막는다. 이걸 CORS(Cross-Origin Resource Sharing)라고 한다. 예를 들어 프론트앤드의 DNS 주소는 https://project-test인데 프론트가 백에게 API를 요청할 때는 https://api-project-test로 넘겨 주게 된다. 이 경우, 브라우저는 서버에 직접 요청을 보내기 전에 OPTIONS 메서드로 사전요청(preflight)을 보낸다. 그런데 백엔드에서는 "응답 가능해~"라고 명시적으로 허용하지 않으면, 브라우저는 요청 자체를 막아버리는 것이다. 이때 필요한게 바로 WebConfig를 통한 CORS..
Spring Data JPA 페이징 구현하기 (SpringBoot 적용)
·
spring 스프링
게시글이 수천 개가 있는데, 다 가져오면 서버나 사이트에 부하가 오게 된다. 이를 해결하기 위해 페이징을 사용하여 깔끔하게 가져오는 방법을 구현해 보려고 한다. [페이징이란]데이터를 페이지 단위로 잘라서 가져오는 것을 말한다. 예를 들어, 총 100개의 데이터가 있을 때 이를 10개씩 10페이지로 나누어 전달하는 방식이다. Spring Data JPA에서는 public interface Page extends Slice 형태로 정의되어 있으며, 단순 데이터 목록뿐 아니라 전체 페이지 수, 전체 항목 수, 현재 페이지 등의 정보도 함께 제공한다. [페이징 주요 구성 클래스]Page 실제 페이징 결과가 담기는 결과 객체를 말한다. List 형태의 데이터 목록뿐 아니라 아래와 같은 부가 정보도 함께..
The method builder() is undefined for the type 오류 (해결2)
·
spring 스프링
저번에 builder() 를 쓰는데 The method builder() is undefined for the type  오류가 발생 했었다. 처음에는 롬복의 문제라고 생각해서 수동으로 설치 하였는데 더 찾다보니까 발견 한 사실이 있다.  ✅ 문제Entity 클래스에 @Builder 와 @NoArgsConstructor @AllArgsConstructor 를 함께 사용 할 수 없다는 것이다.   ✅ 왜? [@NoArgsConstructor]@NoArgsConstructor 는 매개변수가 없는 기본 생성자를 자동으로 생성하는 역할을 한다. 여기서 문제는 @NoArgsConstructor가 무분별하게 객체를 생성 할 수도 있다는 점이다. 이를 방지하고 '의미 있는 객체 생성'을 위해서 사용하는 것이 @Bui..
The method builder() is undefined for the type 오류 (해결1)
·
spring 스프링
The method builder() is undefined for the type entity  라는 오류가 생겼다. 이리저리 찾아보니 롬복을 실제로 다운로드한 후 직접 IDE와 연동시켜줘야 한다는 말이 있었다.  [롬복 다운로드 받기]아래의 홈페이지에 들어가서 상단탭의 Download를 받아 주면 lombok.jar 파일이 다운로드되어질 것이다.  Eclipse, Spring Tool Suite, (Red Hat) JBoss Developer Studio, MyEclipse projectlombok.org  [롬복 설치하기]파일을 클릭해서 실행시켜보면 아래와 같은 화면이 뜨고 기다리다가 보면 IDE 파일 경로가 나올 것이다. 만약에 없으면 직접 찾아서 넣어 줘도 된다.  성공적으로 설치되었다면 잊지 ..
해니01_15
'spring 스프링' 카테고리의 글 목록