spring data jpa

    Redis 사용기

    Redis 사용기

    배경 회원가입 시 카카오 인증만 진행하고 필수 정보를 작성하지 않은 사용자는 사용자가 맞을까?? 일단 내 기준에서는 아니다 필수로 받아야 한다고 정책으로 정해진 것이고 해당 값들이 있어야 저장을 시켜준다라고 정해진 이상 해당 값들이 없다면 그건 사용자가 아닌 것이고 저장을 해주면 안된다 라는 정책과 그럼 카카오로 부터 받은 값들을 필수 값이 들어오기 전까지 어디에 안전히 가지고 있을 지 문제에서 시작되었다 대안 1. 서버 내부 메모리에 저장 가장 간단한 방법이다 추가로 외부 리소스를 사용할 필요도 없고 내부에서 Map 형태로 우리가 만든 key 값, 사용자 정보 value로 저장을 한 후 해당 key 값을 제공하여 필수 정보 값과 같이 요청에 담아 보내도록 하면 된다 하지만 단점으로는 서버가 증가한다면?..

    JPA - 복합키

    JPA - 복합키

    이번 포스트에서는 복합키에 대해서 정리해볼려고 한다 이전에도 몇번 사용은 해봤지만 헛갈리는 부분도 있고 자주 사용하지 않았다보니 까먹는 부분이 있어 정리해 보고자 한다 Composite Key (복합키) 우선 복합키에 대해서 알아보자 다들 알다시피 DB (여기서 DB는 Oracle, MySQL과 같은 관계형 데이터베이스를 지칭한다) 에서는 주어진 개체 집합 내에서 개체들을 구별할 수 있는 방법이 있어야 한다 다르게 표현하면 한 개체 집합에서 모든 속성들의 값이 정확하게 같은 개체들이 존재하면 안된다는 말이다 이러한 것을 위해서 키의 개념이 필요하고 그 키 중에서는 Super key, Candidate Key, Primary key가 적용 가능하다 이 중에서 우리는 Primary key를 선정해서 개체를 ..

    졸작 프로젝트 마무리

    프로젝트를 마무리하면서 부족했던 부분을 정리하고자 한다 처음으로 스프링을 사용해서 처음 부터 끝까지 진행한 프로젝트이고 많은 어려움이 있었지만 완벽하다고는 하지 못하지만 완성을 해냈다 아쉬웠던 점 컨트롤러에서 Entity 노출 JPA를 사용하면서 몇몇 엔티티에 양방향 관계를 맺어 둔 것이 있다 개발을 첫 시작할때만 해도 우선 기능이 돌아가게끔 만들자라는 생각 뿐이었고 뷰에 반환 하는 값에 대해서는 전혀 생각을 하지 않고 있었다 이부분이 화두의 시작이었다 뷰에 반환하는 값에 양방향 관계를 맺은 값이 포함이 되었고 순환참조의 문제가 생기게 되었다 경험해보지 못한 오류상황이었고 꽤 긴시간 골머리를 앓았던 기억이 있다 그 당시에는 DTO를 만들어서 보낼 생각은 하지 않은채 결국 문제만 해결하기 위해 @JsonI..

    졸작 도메인 구성

    졸작 도메인 구성

    개요 졸작을 위해 만든 프로젝트를 정리 사용기술 Spring boot JPA thymeleaf MySQL H2(테스트 용도) 도메인 설계 기본 시간 사용자 정보 작성 위 ERD를 보면 알 수 있듯이 저장되는 거의 모든 엔티티에 시간정보와 사용자 정보를 기본으로 입력을 하도록 설정을 하였다 모든 엔티티에 직접 작성하여 넣을 수도 있지만 하나의 클래스로 도출하여 값만 상속을 받을 수 있도록 설계를 하였다 하지만 어느 엔티티는 시간정보만 다른 엔티티느 시간, 사용자 정보둘다 필요로 하기 때문에 위 문제는 아래와 같이 두개의 클래스로 나누어서 사용을 하였다 @Getter @MappedSuperclass public class TimeInfo { @Column(name = "CREATED_AT", updatabl..