전체 글

· 🎸 Etc
단축키 설명 ctrl + w 1개씩 창 닫기 alt + F4 실행 중인 창 전체 닫기 alt + Esc 연 순서대로 항목을 순환 window + D 모든 창 최소화 / 모든 창 활성화 window + E 파일 탐색기 창 열기 F2 폴더, 파일 이름 변경 window + ctrl + D 가상 데스크톱 추가
본 포스팅은 인프런 - 자바 ORM 표준 JPA 프로그래밍 (기본편) 을 강의를 바탕으로 공부하고 정리한 글입니다. JPA의 데이터 타입 종류 💡 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 추적 가능 ex) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능 💡 값 타입 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있어 변경 시 추적 불가능 ex) 숫자 10을 20으로 변경하면 완전히 다른 값으로 대체 값 타입의 종류 기본값 타입 임베디드 타입 컬렉션 값 타입 값 타입 기본값 타입 ex) String name, int age 생명주기를 엔티티에 의존한다. 회원 삭제 시 이름, 나이 필드도 함께 삭제 값 타입은..
본 포스팅은 인프런 - 자바 ORM 표준 JPA 프로그래밍 (기본편) 을 강의를 바탕으로 공부하고 정리한 글입니다. 영속성 전이 (CASECADE) 특정 엔티티를 영속 상태로 만들 때 그와 연관된 엔티티도 함께 영속 상태로 만드는 기능이다. 예) 부모 엔티티 저장시 자식 엔티티도 함께 저장 영속성 전이는 연관관계를 매핑하는 것과 아무 관련 없다. 부모 엔티티를 영속화(persist)할 때, 자식 엔티티도 함께 영속화하는 편리함을 제공해주는 기능일 뿐이다. 부모 엔티티와 자식 엔티티를 저장하는 간단한 예제를 통해 확인해 보자. 👉🏻 영속성 전이 적용 전 @Entity public class Parent { ... @OneToMany(mappedBy = "parent") private List childLi..
본 포스팅은 인프런 - 자바 ORM 표준 JPA 프로그래밍 (기본편) 을 강의를 바탕으로 공부하고 정리한 글입니다. 즉시로딩 vs 지연 로딩 회원을 저장하고 조회해오는 간단한 로직이다. 즉시로딩을 사용했을 때와 지연로딩을 사용했을 때의 차이점이 무엇일까? Member member = new Member(); member.setUsername("member"); em.persist(member); // 저장 em.flush(); em.clear(); Member findMember = em.find(Member.class, member.getId()); // 조회 tx.commit(); 지연로딩 @Entity public class Member extends BaseEntity { ... @ManyToOn..
본 포스팅은 인프런 - 자바 ORM 표준 JPA 프로그래밍 (기본편) 을 강의를 바탕으로 공부하고 정리한 글입니다. 프록시 JPA를 사용하면 객체 그래프를 통해 연관관계를 탐색할 수 있다는 장점이 있다. 그런데 엔티티들은 데이터베이스에 저장되어 있기 때문에 하나의 객체를 조회할 때 그와 연관되어 있는 엔티티들을 모두 조회하는 것보다는 필요한 연관관계만 조회해 오는 것이 효과적일 것이다. 예를 들어 Member와 Team이 있을 때, Member 조회 시 항상 Team의 정보도 함께 조회해야 할까? 실제 필요한 비즈니스 로직에 따라 다르다. Member와 Team을 거의 항상 같이 사용하는 경우 Member와 Team을 거의 같이 사용하지 않고, Member만 출력하는 경우가 많으며 Team은 정말 어쩌다..
본 포스팅은 인프런 - 자바 ORM 표준 JPA 프로그래밍 (기본편) 을 강의를 바탕으로 공부하고 정리한 글입니다. 상속관계 매핑 관계형 데이터베이스에는 상속 관계가 존재하지 않는다. 관계형 데이터베이스의 슈퍼타입 서브타입 관계라는 모델링 기법이 객체에서의 상속과 유사하다. 따라서 상속 관계 매핑이란 객체의 상속 구조와 DB의 슈퍼타입-서브타입 관계를 매핑하는 것이다. 슈퍼타입-서브타입 논리모델을 실제 물리 모델로 구현하는 방법으로 3가지 방법이 있다. 조인 전략 단일 테이블 전략 구현 클래스마다 테이블 전략 조인 전략 : JOINED 가장 정규화된 방법이다. 장점 테이블 정규화 외래 키 참조 무결성 제약 조건 활용 가능 저장공간 효율화 단점 조회시 조인을 많이 사용하므로 성능 저하 조회 쿼리가 복잡 데..
Junit5부터 파라미터 테스트를 사용할 수 있다. 파라미터 테스트파라미터 테스트란?여러 argument를 사용해 테스트를 여러번 돌릴 수 있는 기능사용을 위해 @Test 대신 @ParameterizedTest를 붙여준다.@ParameterizedTest를 사용하면 최소 하나의 source 어노테이션을 붙여줘야 한다. 의존성 추가하기@ParameterizedTest를 사용하기 위해서는 우선 JnuitParams 의존성을 추가해줘야한다.프로젝트 환경(Maven, Gradle)에 맞춰 의존성을 추가해주도록 하자.✅ Maven (버전 확인하기) pl.pragmatists JUnitParams 1.1.1 test✅ GradletestImplementation 'org.junit.jupite..
본 포스팅은 인프런 - 자바 ORM 표준 JPA 프로그래밍 (기본편) 을 강의를 바탕으로 공부하고 정리한 글입니다. 연관관계 매핑시 고려사항 다중성 다대일 : @ManyToOne 일대다 : @OneToMany 일대일 : @OneToOne 다대다 : @ManyToMany 단방향, 양방향 테이블 외래 키 하나로 양쪽에 조인이 가능하다. 테이블은 사실 방향이라는 개념이 없다. 객체 참조용 필드가 있는 쪽으로만 참조가 가능하다. 한쪽만 참조하면 단방향 양쪽이 서로 참조하면 양방향 → 하지만 사실 이 양방향도 2개의 단방향이 있는 것이다. 연관관계 주인 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺지만, 객체의 양방향 관계는 A → B, B → A 처럼 2군데에 참조를 가진다. 따라서 둘 중 테이블의 외래 ..
an2z
침착하고 느긋하고 꾸준하게