분류 전체보기 211

[JPA/Java Persistence API] 값 타입

[우아한형제들 김영환님의 인프런 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편을 수강하고 정리한 내용입니다] 학습목표 기본값 타입 임베디드 타입(복합 값 타입) 값 타입과 불변 객체 값 타입의 비교 값 타입 컬렉션 JPA의 데이터 타입 분류 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자(PK, Id)로 지속해서 추적 가능 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능 값 타입 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경 시 추적 불가능 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체 값 타입 분류 기본값 타입 자바 기본 타입(int, double) 래퍼 클래스(Integer, L..

Backend/JPA 2021.06.06

[JPA/Java Persistence API] 프록시와 연관관계

[우아한형제들 김영환님의 인프런 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편을 수강하고 정리한 내용입니다] 학습목표 프록시 즉시 로딩과 지연 로딩 지연 로딩 활용 영속성 전이 : CASCADE 고아 객체 영속성 전이 + 고아 객체, 생명주기 프록시 A엔티티와 B엔티티 간 연관관계가 있다고 가정하자. 만약 A엔티티를 조회할 때, B엔티티의 값을 같이 조회해야 할까? 아래의 Member와 Team이 있다. 이 둘은 다대일 연관관계가 있는 상태다. Member @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; private String name; @ManyToOne @JoinColum..

Backend/JPA 2021.06.03

[JPA/Java Persistence API] 고급매핑

[우아한형제들 김영환님의 인프런 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편을 수강하고 정리한 내용입니다] 학습목표 상속관계 매핑 @MappedSuperclass 상속관계 매핑 관계형 데이터베이스는 상속 관계가 없다 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사 (ISA) 상속관계 매핑 : 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 상속관계 매핑 종류 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법 각각 테이블로 변환 -> 조인전략 통합 테이블로 변환 -> 단일 테이블 전략 서브타입 테이블로 변환 -> 구현 클래스마다 테이블 전략 주요 어노테이션 Inheritance(starategy = InheritanceType.XXX) JOINED : 조인전략 SI..

Backend/JPA 2021.06.03

[프로그래머스 level_2] 위장 for JAVA

https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr [문제 설명] 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 ..

[프로그래머스 level_2/2021 Dev-Matching: 웹 백엔드 개발자] 행렬 테두리 회전하기 for JAVA

https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr [문제 설명] rows x columns 크기인 행렬이 있습니다. 행렬에는 1부터 rows x columns까지의 숫자가 한 줄씩 순서대로 적혀있습니다. 이 행렬에서 직사각형 모양의 범위를 여러 번 선택해, 테두리 부분에 있는 숫자들을 시계방향으로 회전시키려 합니다. 각 회전은 (x1, y1, x2, y2)인 정수 4개로 표현하며, 그 의미는 ..

[JPA/Java Persistence API] 다양한 연관관계 매핑

[우아한형제들 김영환님의 인프런 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편을 수강하고 정리한 내용입니다] 학습목표 연관관계 매핑 시 고려사항 3가지 다대일[N:1] 일대다[1:N] 일대일[1:1] 다대다[N:M] 연관관계 매핑시 고려사항 3가지 다중성 단방향, 양방향 연관관계의 주인 다중성 다대일 : @ManyToOne 일대다 : @OneToMany 일대일 : @OneToOne 다대다 : @ManyToMany (X) 단방향, 양방향 테이블 외래 키 하나로 양쪽 조인 가능 방향이란 개념이 없음 객체 참조용 필드가 있는 쪽으로만 참조 가능 한쪽만 참조하면 단방향 양쪽이 서로 참조하면 양방향 * 양뱡향은 객체 입장에서는 단방향 2개 연관관계의 주인 테이블은 외래 키 하나로 두 테이블의 연관관계를 맺음..

Backend/JPA 2021.05.30

[자바/java] Optional<T> 클래스란?

개요 JAVA 8 버전부터 등장한 Optional은 "T타입의 객체"를 감싸는 래퍼클래스다 Optional타입의 객체는 모든 타입의 참조변수를 담을 수 있다 특징 연산의 결과를 Optional객체에 담아서 반환 Optional객체에 담아서 반환하면, 반환된 결과가 null인지를 if문으로 체크하지 않고 Optional의 메서드를 통해 처리할 수 있다 NPE(NullPointerException)이 발생하지 않는 보다 간결하고 안전한 코드를 작성하는 것이 가능하다 *NPE : NullPointerException Optional 객체 생성 1. Optional.of() : 값을 저장. 저장하는 값이 Null이면 NPE를 발생시킨다. 2. Optional.ofNullable() : 값을 저장. 저장하는 값이..

[JPA/Java Persistence API] 엔티티 연관관계

[우아한형제들 김영환님의 인프런 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편을 수강하고 정리한 내용입니다] 학습목표 객체와 테이블 연관관계의 차이 이해 객체의 참조와 테이블의 외래 키 매핑 방향(Direction) : 단방향, 양방향 다중성(Multiplicity) : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다 연관관계의 주인(Owner) : 객체 양뱡향 연관관계에서, 두 객체의 외래 키를 관리하는 관점 이해 엔티티 연관관계 관계형 DB에서는 관계를 외래 키로 표현. 외래 키만 가지고 있으면 두 테이블 중 어느 쪽의 데이터든 간에 한 번에 조회 가능. 그러나 객체는 레퍼런스를 활용하여 연관되어있는 객체를 참조함. DB와 객체에서 오는 패러다임 차이를 극복하기 위해 사용하는 것이 ..

Backend/JPA 2021.05.23

[프로그래머스 level_2/월간 코드 챌린지 시즌 2] 2개 이하로 다른 비트 for JAVA

https://programmers.co.kr/learn/courses/30/lessons/77885 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr [문제 설명] 양의 정수 x에 대한 함수 f(x)를 다음과 같이 정의합니다. x보다 크고 x와 비트가 1~2개 다른 수들 중에서 제일 작은 수 예를 들어, f(2) = 3 입니다. 다음 표와 같이 2보다 큰 수들 중에서 비트가 다른 지점이 2개 이하이면서 제일 작은 수가 3이기 때문입니다. 수 비트 다른 비트의 개수 2 000...0010 3 000...0011 1 f(7) = 11 입니다. 다음 표와 같이 7보다 큰 수들 중에서 비트가 다른 지점이 2개 이하이면서 제일 작은 수가 11이기 때문입니다. 수 비트 다른 비트의 개수 ..

[JPA/Java Persistence API] 엔티티 매핑

[우아한형제들 김영환님의 인프런 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편을 수강하고 정리한 내용입니다] 엔티티 매핑 자바에서 사용하는 엔티티와 데이터베이스에서 관리하는 데이터 간의 관계를 매핑하는 것 엔티티와 데이터베이스 간 매핑 객체와 테이블 매핑 필드와 컬럼 매핑 기본 키 매핑 연관관계 매핑 객체와 테이블 매핑 @Entity @Entity 어노테이션이 붙으면 JPA가 관리한다는 뜻 기본 생성자 필수 final 클래스, enum, interface, inner 클래스 사용 X DB에 저장할 필드에는 final 키워드 사용 X @Entity public class Member { @Column @Id private Long id; } @Table @Table은 엔티티와 매핑할 테이블 지정 na..

Backend/JPA 2021.05.16