[Spring Boot] Pageable을 이용해 페이지네이션구현(+JPA)
·
Backend/Spring Boot
페이지네이션이란?페이지네이션이란, 게시글이 많을 때 , 이를 전부 보여주지않고 페이지화 시켜서 보여주는것을 의미합니다.보통 적은 규모의 데이터는 , 리소스를  서버에서 클라이언트로 전부 전달해도 성능에 큰 지장이없지만,큰 규모의 데이터를 전달할 때(혹은 트래픽이 많은 서버), 쓸데 없이 모든 리소스를 전달하는 것보다.해당 페이지의 리소스만 전달하는것이 서버 입장에 있어 부담이 덜 하기 때문에 사용합니다.  RESTFUL API로 설계된 서버에서, 페이지네이션을 구현하려면두가지 단계가 필요합니다. 첫번째로, 총 페이지가 몇 페이지인지 클라이언트에게 전달해야합니다. 그래야만이 클라이언트는 이 리소스가 총 몇페이지가 있는지 확인 할 수 있습니다. 또한, 현재 페이지가 몇페이지인지 , 마지막페이지인지 첫번째페이..
[GCP] application.properties의 민감한 정보 환경변수 등록하기
·
Cloud/GCP
CI/CD중에 application.properties의 내용을 감추기위해서는, Google Cloud Platform에서 제공하는 환경변수 등록을 사용해야 합니다.  CI/CD를 하기위해선, 깃허브 리파지토리와 연동을 해야하는데,application.properties에 민감한정보들을 깃허브상에 올릴수가 없어, 난감한 상황이 발생합니다.  기존 application.properties에 server.port=8000 다음과같은 환경변수가 저장되어있다고 가정하고, application.properties의 내용을 환경변수로 올리는 과정을 설명하도록 하겠습니다.   application.properties 변경steps: # gradle BUILD - name: 'gradle:8.5.0-jdk17' ..
[GCP] Google Cloud Run을 이용해 Spring Boot project배포
·
Cloud/GCP
GCR을 이용한 배포는 다음과같이 간단한 구조를 가지고 있습니다. 1. Artifact Registry(Docker Image Repository) (Image)2. Google Cloud Run (Container)  Artifact는 Docker Image를 저장해두는 리포지토리입니다.Google Cloud Run은 Artifact저장소에서 하나의 도커 이미지를 선택해 해당 이미지로 컨테이너를 생성합니다. 생각해보면 아주 간단한 구조입니다.. 애초에 Cloud Run자체가 이런 구조를띄기 떄문에, 이러한 플로우를 이해하게된다면CI / CD도 자연스럽게 이해가 될 수 있었습니다. 또한 Google Cloud Run은 서버리스를 기반으로 동작하기떄문에 , 필요한 플랫폼을 따로 설치하지않아도(java.....
[Spring Boot] Spring AI + Google vertex ai gemini 이미지 처리하기
·
Backend/Spring Boot
https://spring.io/projects/spring-ai Spring AISpring AI is an application framework for AI engineering. Its goal is to apply to the AI domain Spring ecosystem design principles such as portability and modular design and promote using POJOs as the building blocks of an application to the AI domain. Feaspring.io   Spring AI란 Spring에서 만든,  여러가지 Generative AI(GPT, gemini 등등..)을 Spring Framework에 쉽게 ..
[Spring boot] Spring Security + JWT 이용한 로그인 세션 유지
·
Projects/web
로그인을 JWT를 이용해서 구현 + 리액트를 통한 로그인 유지를 하는것이 목표이다. [참고자료]https://youtube.com/playlist?list=PLJkjrxxiBSFCcOjy0AAVGNtIa08VLk1EJ&si=JdZK8QlkZn-bfHRr 스프링 시큐리티 JWTJWT 방식 인증을 위한 스프링 시큐리티 구현 방법 (Spring Security JWT)www.youtube.com    WebSecurityConfig.javapackage com.kjs990114.goodong.config;import com.kjs990114.goodong.jwt.JWTFilter;import com.kjs990114.goodong.jwt.JWTUtil;import com.kjs990114.goodong.jwt..
[Spring boot] Spring Security 이용해 회원가입 구현
·
Projects/web
처음 시작은 가장 구조가 직관적인 계층형 구조로 프로젝트를 시작하였다.     나는 프로젝트 구조를 다음과같이 구성했다.      >> controller/RegisterController.javapackage com.kjs990114.goodong.controller;import com.kjs990114.goodong.dto.UserDTO;import com.kjs990114.goodong.service.RegisterUserService;import lombok.RequiredArgsConstructor;import org.springframework.dao.DataIntegrityViolationException;import org.springframework.http.HttpStatus;impor..