BackEnd/Spring Boot 48

jasypt 설정 하기

jasypt 설정 기본순서 dependency 추가 config bean 코드 추가 application.yml에 jasypt 사용할 bean설정 설정 dependency 추가 implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.5' config bean 코드 추가 import org.jasypt.encryption.StringEncryptor; import org.jasypt.encryption.pbe.PooledPBEStringEncryptor; import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; import org.springframework.bea..

BackEnd/Spring Boot 2023.05.01

jasypt 란?

jasypt란? Jasypt(Java Simplified Encryption)는 자바 애플리케이션에서 쉽게 암호화 기능을 구현할 수 있도록 도와주는 라이브러리입니다. 암호화 관련 코드를 작성할 필요 없이, 간단한 설정만으로 암호화 기능을 적용할 수 있습니다. Jasypt는 대칭키 암호화와 비대칭키 암호화를 모두 지원하며, 다양한 알고리즘과 모드를 제공합니다. 또한, 프로퍼티 파일이나 환경 변수와 같은 설정 정보를 암호화하는 기능도 제공하여, 보안에 민감한 정보를 보호할 수 있습니다. Spring Framework와의 연동도 용이하며, Spring Boot에서는 jasypt-spring-boot-starter를 이용하여 설정하기 쉽게 제공됩니다. 따라서, Spring 기반의 애플리케이션에서 암호화 기능을 ..

BackEnd/Spring Boot 2023.05.01

mysql-connector-j와 mysql-connector-java

mysql-connector-j와 mysql-connector-java 모두 MySQL과의 연결을 위한 JDBC 드라이버이지만, 약간의 차이점이 있습니다. mysql-connector-j Oracle사에서 만든 MySQL Connector/J JDBC 드라이버입니다. 이 드라이버는 MySQL 공식 홈페이지에서 다운로드가 가능하며, Maven 또는 Gradle을 통해 의존성을 추가할 수 있습니다. mysql-connector-java MySQL AB사에서 만든 MySQL JDBC 드라이버입니다. Oracle에 인수되기 전에 만들어진 드라이버로, MySQL Connector/J와 유사하지만, 오래되었기 때문에 최신 버전의 MySQL과는 호환성 문제가 있을 수 있습니다. 결과 따라서, 최신 버전의 MySQL과..

BackEnd/Spring Boot 2023.04.30

JPA 응용 방법 _ Specification_2

Specification lambda 앞서 작성된 "JPA 응용 방법 _ Specification" 글에서는 Specification을 구현하기 위해 implements를 사용하였습니다. 하지만 이번 글에서는 여러 개의 Specification을 하나의 클래스에서 중첩하여 사용하는 방법을 설명하려고 합니다. 사용 Entity 및 Repository JPA 응용 방법 _ Specification에 작성 되어 있습니다. 여러 조건 선언 하기 import java.time.LocalDateTime; import org.springframework.data.jpa.domain.Specification; import com.mysql.jpa.model.entity.User; // 사용자 이름 테이블 public ..

BackEnd/Spring Boot 2023.04.18

JPA 응용 방법 _ Specification_1

JPA 응용 기본으로 제공되는 Repository CrudRepository PagingAndSotringRepository JpaRepository 만으로는 모든 Query를 처리하기에 매우 한계가 있다. 예를 들면 Mybatis는 xml 파일에서 if, choose, where, set 등 수많은 옵션? 을 제공하는데 JPA도 이와 비슷하게 구현할수 있다. Entity JPA 응용 방법 _ Specification에서 사용될 기본 Entity입니다. 기본 Repository public interface UserRepository extends Repository { // Create, Update User save(User user); // Read // Find By Method는 단순할 경우에만..

BackEnd/Spring Boot 2023.04.17

JPA 간단 사용법

JPA 기본적으로 사용 하는 methods와 같이 사용을 한다. Repository interface를 만들고 하단 interface를 extends하여 사용한다. Repository JPA에서 제공하는 가장 기본적인 인터페이스로, 엔티티의 저장, 조회, 삭제 등의 기본적인 CRUD 기능을 제공 하지만 페이징 기능이나 정렬 기능 등이 없습니다. CrudRepository Repository 인터페이스를 상속하여 CRUD 기능을 제공하는 인터페이스 save(), findOne(), delete() 등의 기본적인 CRUD 메서드 외에도 findAll(), count(), exists() 등의 메서드를 제공합니다. PagingAndSortingRepository CrudRepository 인터페이스를 상속하여..

BackEnd/Spring Boot 2023.04.17

Bean Life Cycle

Spring Bean Life Cycle 스프링 빈이 언제 Create되고 Destroy 되는지에 대한 Life Cycle 입니다. 순서 스프링 컨테이너 생성 스프링 빈 생성 의존 관계 주입 초기화 콜백 사용 (사용작 사용 시점) 소멸 전 콜백 스프링 종료 스프링은 크게 3가지 방법으로 빈 생명주기 콜백을 지원합니다. 인터페이스(InitializingBean(afterPropertiesSet), DisposableBean(destroy)) 단점 초기화, 소멸 메서드의 이름을 변경할 수 없습니다. 내가 코드를 고칠 수 없는 외부 라이브러리에 적용할 수 없습니다. 설정 정보에 초기화 메소드, 종료 메소드 지정 @PostConstruct, @PreDestroy 애노테이션 지원 @PostConstruct, @P..

BackEnd/Spring Boot 2023.04.16

Show JPA Query Log

개요개념적인 내용은 다른 블로그를 참고 하시는게 좋을거 같습니다.Mybatis에서 개발을 할 때 log4jdbc-log4j2-jdbc4.1 설정을 하여 쿼리문을 확인한다.그러면 select * from temp where id = 1이런식으로 출력이 된다.하지만 JPA는 로그가 기본으로 설정 되어 있지만 select * from temp where id = ? -> 그 뒤에 ? 관한 정보가 뜬다.위와 같은 식으로 노출이 된다.이런 방식은 local에서 개발 할 때 가독성이 현저히 떨어진다.하나하나 대입 하거나 하는 정말 귀찮은 일이 발생한다.그래서 이번 게시글은 p6spy-spring-boot-starter를 사용하여 Mybatis와 같이 노출 되게 설정 할려고 한다.참고..

BackEnd/Spring Boot 2023.04.16

채팅 만들기_2(chatting_room)

개요이전에 소켓을 사용한 채팅을 만들어 보았습니다.이번 게시글에서는 STOMP를 사용한 채팅방 구성을 하였습니다.사용자 로그인 및 인증은 사용하지 않았고 최초 방에 들어오면 date로 사용자 닉네임을 설정하여 테스트 하였습니다.참고채팅 방 있는 채팅Terian의 IT 도전기설명현재 프로젝트Terian의 IT 도전기 블로그를 참고 하여 정리 하였습니다.개념 적으로 Terian의 IT 도전기를 참고 하는것을 추천 드리고현재 게시글은 Terian의 IT 도전기의 기반으로 내가 필요한 코드만 뽑아서 사용 했기 때문에Terian의 IT 도전기와 코드가 많이 다를 수 있습니다.또한 View 개발을 위해 CSS를 작성하기 귀찮아 Bootstrap을 간단히 적용 하였습니다.STOMP란?간단하게 설명하면 WebSocke..

BackEnd/Spring Boot 2023.04.16