본문 바로가기

전체 글

(175)
[SpringBoot] application.yml 값 암호화 하기 (jasypt) application.yml 이나 application.properties 파일에 DB의 비밀번호 또는 키값을 명시해두는 경우가 있습니다. 문제는 중요한 값들이 외부로 노출되어 보안에 심각한 문제를 초래할 수 있다는 점입니다. 이를 해결하기 위해 보안에 민감한 값들을 암호화시켜 저장해야 합니다. 1. Jsaypt(Java Simplified Encryption) Jasypt는 특정 값을 암호화해주는 라이브러리 입니다. 자세한 내용은 아래 링크를 참조해주세요. http://www.jasypt.org/ 2. DB의 url, username, password를 암호화하기 테스트는 SpringBoot 2.2.2.RELEASE에서 진행했습니다. 1) pom.xml ... com.github.ulisesbocchi..
[Hibernate] Querydsl - TO를 이용한 객체 조회 querydsl 설정하는 방법 2021.06.29 - [IT/JPA & Hibernate] - [Hibernate] Spring Boot Querydsl 설정하기 querydsl을 쿼리 결과를 엔티티가 아닌 미리 만들어둔 TO 객체에 담아 조회할 수 있습니다. 예제 소스 쿼리 결과를 원하는 객체에 담아 조회하기 위해서 Projections 클래스를 이용하며 select메소드의 parameter로 넘겨줍니다. setter, fields, constructor 방식이 있으며 각각 Projections.bean(), Projections.constructor(), Projections.fields() 메소드를 이용합니다. 그리고 Q클래스의 정의된 멤버변수를 이용해 TO객체와 일대일 대응 시키는 방식으로 데이터..
[Hibernate] Spring Boot Querydsl 설정하기 1. Querydsl 이란? JPA를 이용해서 복잡한 쿼리나 동적 쿼리를 작성할 경우 소스코드가 지저분해지는 경우가 많습니다. 이때 Querydsl 라이브러리를 이용해면 쿼리문자가 아니라 자바코드로 쿼리를 작성할 수 있습니다. 2. Querydsl의 장점 1. 자바코드로 쿼리를 작성하기 때문에 가독성이 좋아집니다. 2. 문법 오류를 컴파일 시점에서 잡아줍니다. 3. 동적 쿼리를 쉽게 만들 수 있습니다. 3. Querydsl 설정하기 테스트 환경은 다음과 같습니다. (버전을 모두 맞춰 주어야합니다!) spring boot 2.2.2 RELEASE maven java 11 h2 1) pom.xml ... org.springframework.boot spring-boot-starter-data-jpa org...
[자료구조] HashTable Source import java.util.LinkedList; public class HashTable { //링크드리스트를 저장하는 배열 private LinkedList[] data; // 데이터를 key, value로 저장하는 Node class Node { String key; String value; public Node(String key, String value) { this.key = key; this.value = value; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } } //hashtable의 크기를 미리 선언해둔다 public HashTable(int s..
[SpringBoot] HATEOAS 적용하기 1. hateoas란 hateoas는 Hypermedia As The Engine Of Application State의 약자로 REST API의 필수 구성요소 중 한가지입니다. 특정 API 요청 시 리소스 정보를 받아 볼 수 있는데, 이때 리소스 정보 뿐 만 아니라 리소스에 대한 다양한 링크정보를 리소스정보와 함께 반환하는 것을 의미합니다. 예를 들어서 유저 정보 생성 시 생성된 유저의 정보를 반환받는데, 이때 유저의 상세정보, 수정, 설정 등.. 유저와 관련된 다양한 링크페이지를 함께 반환받을 수 있습니다. 다시말해서 hateoas를 적용하면 API 요청 시, Resource와 Links를 함께 반환 받을 수 있습니다. 2. spring boot hateoas 적용 간단하게 Member를 저장하는 A..
[SpringBoot] H2 데이터베이스 사용하기 1. H2 데이터베이스란?H2는 자바 기반 오픈소스 RDBMS입니다. 주로 인 메모리 데이터베이스로 사용되며 기능 테스트 할 때 유용합니다.인 메모리 데이터베이스는 휘발성 데이터베이스이기 때문에 컴퓨터를 종료하면 모든 데이터가 삭제됩니다.H2 DB를 따로 설치할 수 있지만 build.gradle dependency로 추가하면 약 2MB크기의 라이브러리로 H2 DB를 사용할 수 있습니다.지금부터 간단하게 hibernate를 이용해서 h2 db에 테이블을 생성해보겠습니다.

[JPA] 프록시와 지연로딩 1. 프록시란? 프록시는 대리 응답, 중계 등 다양한 의미로 사용되는 용어입니다. 프록시는 JPA 기본 스펙은 아니지만 Hibernate에서 프록시라는 기능을 제공합니다. 프록시는 지연로딩(Lazy Loading) 기능을 위해 사용되며 지연로딩이란 연관 매핑 객체가 있을 때, 해당 객체의 조회를 미루고, 해당 객체를 사용할 때 조회하는 것을 의미합니다. 2. 프록시 설명 및 사용 예제 원활한 테스트를 위해 미리 엔티티들을 생성해놓겠습니다. Member와 Team 엔티티가 있고 다대 일 관계입니다. @Entity public class Team { @Id @GeneratedValue private Integer id; private String name; //getter,setter 생략 } @Entity..
[JPA] 엔티티 매핑 어노테이션 정리 엔티티 매핑 시 자주 사용되는 어노테이션을 정리한 글입니다. 1. @Entity @Entity 어노테이션이 선언된 클래스를 DB 테이블과 매핑합니다. 2. @Column 필드 속성을 지정할 때 사용합니다. 이름 설명 기본 값 name 필드 명을 지정 객체의 필드 이름 insertable 등록 가능 여부 true updatable 수정 가능 여부 true nullable DDL 생성 시 설정 값에 따라 null 가능여부를 설정 true unique DDL 생성 시 간단하게 한 컬럼에 유니크 제약조건을 설정 false columnDefinition 테이블 컬럼 속성을 직접 설정 ex : varchar(50) not null default 'none' length 문자 길이 제약 조건을 설정 255 preci..

반응형