본문 바로가기

Back-End175

[JPA] 값 타입 이 글은 김영한 님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 수강하며 정리한 글입니다. 기본값 타입 임베디드 타입(복합 값 타입) 값 타입과 불변 객체 값 타입의 비교 값 타입 컬렉션 JPA에서는 데이터 타입을 엔티티 타입과 값 타입으로 분류할 수 있다.엔티티 타입이란 @Entity로 정의하는 객체를 말한다. 데이터가 변해도(예: 회원의 나이) 식별자로 추적 가능하다. 값 타입은 int, Integer, String처럼 단순히 값으로 사용하는 자바의 기본 타입이나 객체를 말한다. 식별자가 없고 값 자체이므로 변경하면 추적이 불가능하다. 값 타임은 기본값 타입, 임베디드 타입, 컬렉션 값 타입으로 나눌 수 있다. 기본값 타입 생명 주기를 엔티티에 의존한다. 회원을 삭제하면 이름과 나이 필드가.. 2023. 1. 25.
[JPA] 프록시와 연관 관계 관리 이 글은 김영한 님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 수강하며 정리한 글입니다. 프록시 즉시 로딩과 지연 로딩 영속성 전이(CASCADE)와 고아 객체 프록시 데이터베이스에서 member를 조회할 때, member의 이름만 필요한 경우(A)가 있고, member가 속한 team의 정보가 필요한 경우(B)가 있다. A는 member의 정보만 가져오는 것이, B는 team의 정보까지 가져오는 것이 효율적일 것이다. Member member = em.find(Member.class, 1L); printMember(member); // A printMemberAndTeam(member); // B 🌕 em.find() vs em.getReference() em.find(): 데이터베이스를 .. 2023. 1. 24.
[JPA] 고급 매핑(상속 관계 매핑, @MappedSuperclass) 이 글은 김영한 님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 수강하며 정리한 글입니다. 상속 관계 매핑 @MappedSuperclass 상속 관계 매핑 관계형 데이터베이스는 상속 관계가 없다. 모델링 기법 중 슈퍼 타입 서브 타입 관계가 객체의 상속과 유사하다. 슈퍼 타입 서브 타입 논리 모델을 실제 물리 모델로 구현하는 방법에는 세 가지 방법이 있다. 🌕 조인 전략 각각 테이블로 변환한다. 장점은 테이블 정규화가 되어 있고, 외래 키 참조 무결성 제약 조건을 활용할 수 있다는 점과 저장 공간이 효율화 되어 있다는 것이다. 단점은 조회 시 조인을 많이 사용해서 성능이 저하되고, 조회 쿼리가 복잡하다는 것이다. (ALBUM의 데이터를 조회하려면 ITEM과 조인 해야 한다) 또한 데이터 저장 .. 2023. 1. 23.
[JPA] 다양한 연관 관계 매핑 이 글은 김영한 님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 수강하며 정리한 글입니다. 다대일 [N:1] 일대다 [1:N] 일대일 [1:1] 다대다 [N:M] 다대일 [N:1] 🌕 단방향 // Member.java @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; 🌕 양방향 // Team.java @OneToMany(mappedBy = "team") private List members = new ArrayList(); 일대다 [1:N] 더보기 🌕 단방향 // Team.java @OneToMany @JoinColumn(name = "TEAM_ID") private List members = new ArrayList(); 엔티티가 관리.. 2023. 1. 23.
[Spring Data JPA] 커서 기반 페이지네이션(Pagination) 보호되어 있는 글 입니다. 2022. 11. 19.
[Spring Security] CORS(Cross-Origin Resource Sharing) 설정 🍕 CORS(교차 출처 자원 공유)란? 요청을 받는 백엔드 쪽에서 이를 허락할 다른 출처들을 미리 명시하여 다른 출처 간에 리소스를 공유할 수 있도록 한다. 브라우저는 다른 출처끼리의 요청이 보내질 때 요청에 Origin이라는 header(데이터가 전송될 때 데이터의 맨 앞쪽에 붙은 보충 정보 - 받는 쪽의 IP 주소, 사용할 프로토콜이나 옵션 등)를 추가한다. Origin에는 요청하는 쪽의 scheme(요청할 자원에 접근할 방법인 프로토콜 http, ftp, telnet)과 도메인, 포트가 담긴다. https:// : scheme naver.com : 도메인 :443 : 포트 요청을 받은 서버는 답장의 헤더에 지정한 Access-Control-Allow-Origin 정보를 실어서 보낸다. 여기에 요청을.. 2022. 11. 6.