boot

개발일지/Spring

Spring-boot Querydsl 사용해보기!

JPA를 이용해 간편하게 메서드 네이밍을 사용하던 중 문제가 발생했다 A and (B or C)를 찾는 메서드를 만들어야 하는데 어렵다... 사실 그냥 쿼리를 만들면 쉽긴 하다만JPA메서드네이밍만으로 할 수 있을 것 같아서 도전해 봤다 Page findAllByProductCategories_Category_CategoryIdAndNameContainsOrProductCategories_Category_CategoryIdAndBrandContains(long categoryId1, String name, long categoryId2, String brand, Pageable pageable); ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 만들고 보니 어이가 없다 ㅋㅋㅋ 그래도 약간의 ..

개발일지/Spring

캐시 사용해보기 @Cacheable, @CacheEvict (Spring-boot)

캐시 사용 서버의 부담을 줄이고 성능을 높이기 위해 사용되는 기술 DB에서 조회하는 게 오래 걸리는 작업에 적용하여 해당 결과값을 저장해 두고 가져옴으로써 빠르게 처리가 가능해짐 동일한 결과값이 매번 자주 호출되는 작업에 적용하면 유리하다 -> 결과값이 매번 다른 작업에 적용한다면 캐시를 확인하는 작업으로 인한 부하가 생겨 성능이 오히려 떨어질 수 있으니 주의하여 사용한다 Spring Cache (@Cacheable) 간단 사용법 1. gradle 종속성 추가 implementation 'org.springframework.boot:spring-boot-starter-cache' 2. @EnableCaching 설정 캐시 기능을 사용할 애플리케이션에 @EnableCaching 어노테이션을 붙여준다 @Sp..

개발일지/웹개발

Spring-boot Github Actions를 이용한 자동배포

Github Actions를 이용하여 EC2, Linode 등 ubuntu 서버에 자동배포를 알아보겠습니다. 우선 본인의 서버 pc에 접속하여 기본적인 세팅을 해줍시다. sudo apt update # 각자 원하는 버전을 설치하시면 됩니다 sudo apt install openjdk-11-jre-headless 서버에서 사용할 포트도 열어줍니다 EC2 -> 보안탭의 인바운드 규칙 수정 Linode -> firewalld 를 사용하여 포트 개방 (기본적으로 열려있음) 자동배포할 프로젝트 레포지토리로 이동하여 Settings - Actions - Runners - New self-hosted runner로 이동합니다 운영 체제에 맞게 선택해주시고 표시한곳까지 서버 터미널에 명령어들을 차례로 입력해 줍니다. ..

개발일지/Spring

Spring boot Jwt 토큰의 정보를 가져오는 방법

클라이언트 측에서 Header에 Jwt 토큰을 실어 보내면 해당 정보를 볼 수 있는 방법을 간단하게 알아보겠습니다. 커스텀 애너테이션 @Login이라는 커스텀 애너테이션을 만들어서 UserDetails 객체에 받아온다 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PARAMETER) @AuthenticationPrincipal public @interface Login { } @GetMapping public void getJwtEmailTest(@Login UserDetails userDetails) { System.out.println("@Login : " + userDetails.getUsername()); } @AuthenticationPrin..

개발일지/Spring

springboot 개발환경에 따른 application.yml 설정

개발을 하다 보면 로컬 환경, 개발환경, 운영환경 등 다양하게 구분하여 사용합니다. 이를 간단하게 관리하는 방법을 알아보겠습니다. // application.properties의 경우도 동일한 방식으로 설정이 가능합니다. 1. application-{이름}.yml 만들어주기 예를 들어 로컬 환경이면 application-local.yml 실제 운영 환경이면 application-prod.yml 등 필요한 여러 방식들을 만들어 줍니다 2. 각 환경에 맞는 설정하기 공통적인 설정들은 application.yml에 모두 해주고 각 환경별로 다른 부분만 해당 파일에 설정을 해주시면 됩니다. 알아보기 쉽게 7777로 해봤습니다. 3. 사용할 환경 입력해주기 application.yml 에서 사용할 환경을 입력하고..

개발일지/Spring

인증서 발급 및 Spring boot에서 HTTPS 서버 구현

로컬 환경에서 인증서를 생성하고, 인증서를 이용하여 HTTPS 서버를 만들어 보자 ✔️ 인증서 발급 자바는 두 가지의 인증서 형식을 지원한다 PKCS12 (Public Key Cryptographic Standard #12) : 여러 인증서와 키를 포함할 수 있으며, 암호로 보호된 형식 (업계에서 널리 사용됨) JKS (Java KeyStore) : PKCS12와 유사하다. 독점 형식이며, Java 환경으로 제한된다. ✅ macOS 기준, Homebrew를 이용하여 인증서를 발급받을 수 있다 # mkcert를 설치한다. $ brew install mkcert # firefox를 사용할 경우 필요에 따라 설치해주세요. $ brew install nss ✅ 인증서 생성 로컬을 인증된 발급기관으로 추가한다. ..

개발일지/Spring

Spring boot - Profile 설정

로컬 개발환경과 서버 환경을 따로 Profile을 설정해보자 프로젝트 폴더 내의 src/main/resources 에 보면 application.properties 라는 파일에서 Profile을 설정하는데 본인은 .yml 형식을 선호하므로 application.yml 형식으로 바꾸어 주었다. (뭐로 사용하든 관계없음) 사진과 같이 복사해서 2개의 파일을 더 만들어 준다. local 이라고 되어있는 파일에는 로컬 개발환경의 profile을 설정해주고 # 예시) 로컬 환경에서 사용하는 정보들은 application-local.yml 파일에 설정 spring: h2: console: enabled: true path: /h2 datasource: url: jdbc:h2:mem:test jpa: hibernat..

E-room
'boot' 태그의 글 목록 (2 Page)