목록Spring (78)
빙응의 공부 블로그

📝요구사항 분석 필요한 기능을 분석하는 단계이다. 회원 회원은 이름, 주소를 통해 등록할 수 있다. 회원은 자신의 이름, 주소, 주문 내역을 조회할 수 있다. 회원은 여러개를 주문할 수 있다. 상품 상품은 이름, 가격, 재고수량을 가지고 있다. 상품을 주문하면 재고수량이 줄어든다. 상품의 종류로는 도서, 음반, 영화가 있으며 각각 사용하는 속성이 다르다. 주문 주문은 상품을 주문한 회원과 배송 정보, 주문 날짜, 주문 상태를 가지고 있다. 주문 상태는 주문, 취소로 표현할 수 있다. 주문은 여러 개의 주문 아이템을 가지고 있다. 주문 상품 주문 상품은 주문한 상품 정보와 주문금액, 주문 수량 정보를 가지고 있다. 주문 상품은 상품에서 상품 정보를 조회한다. 배송 주문 시 하나의 배송 정보를 가지고 있다...

📝경로 표현식 경로 표현식이란 .(점)을 찍어 객체 그래프를 탐색하는 것을 말한다. 경로 표현식은 여러개 존재한다. SELECT m.username -> 상태 필드 FROM Member m JOIN m.team t -> 단일 값 연관 필드 JOIN m.orders o -> 컬렉션 값 연관 필드 where t.name = "팀A"; 상태 필드 단순히 값을 저장하기 위한 필드이다. EX) m.username 보통 경로 탐색의 끝이며, 탐색이 마무리되어 탐색을 하지 않는다. 연관 필드 연관관계를 위한 필드이다. 단일 값 연관 필드 @ManyToOne, @OneToOne, 대상이 엔티티 EX) m.team 묵시적 내부 조인(inner join)이 발생하며, 탐색을 진행한다. 쿼리 튜닝에 조심히 생각해서 사용해야..

📝JPA의 다양한 쿼리 방법 JPA는 여러개의 쿼리 방법을 지원한다. JPQL JPQ Criteria(너무 복잡해서 설명 X) QueryDSL 네이티브 SQL JDBC API ( MyBatis, SpringJdbcTemplate 등) 📝JPQL 소개 JPQL은 JPA에서 엔티티 객체를 대상으로 하는 쿼리 언어이다. JPA는 객체 지향 프로그래밍에서 사용되는 엔티티 객체를 데이터베이스에 저장하고 관리하기 위한 자바 표준 기술이며, JPQL은 이를 활용하여 엔티티 객체에 대한 검색 및 조작을 수행하는 데 사용된다.. JPQL이 등장한 이유 중 하나는 객체 지향적인 관리를 위해 SQL 대신에 엔티티 객체를 대상으로 하는 쿼리가 필요했기 때문이다. 객체 지향 프로그래밍에서는 테이블과 컬럼보다는 객체와 속성에 중..

📝JPA의 데이터 타입 JPA의 데이터 타입 최상위 분류는 2가지이다. 엔티티 타입 @Entity로 정의하는 객체이다. 데이터가 변해도 식별자로 지속해서 추적이 가능하다. 즉, 키를 통해 식별을 하는데 키나 나이가 달라져도 식별자는 동일하기 때문에 인식이 가능하다. 값 타입 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본타입이나 객체이다. 식별자는 없고 값만 있으므로 변경 시 추적 불가. 예) board 안에 content같은 것은 값 타입이다. 내용은 항상 변하나 content만으로 추적이 불가능 📝값 타입 값 타입은 기본키를 제외한 나머지 정보이다. 이것은 3가지로 크게 나눌 수 있다. 기본 값 타입 임베디드 타입 컬렉션 값 타입 기본 값 타임 String, int같은 자바..

📝프록시 프록시란? JPA에서는 em.getReference라는 메소드가 제공된다. em.getReference는 데이터베이스 조회를 미루는 가짜 엔티티 객체(프록시)를 조회한다. 이것을 사용하는 이유는 무엇일까? 객체처럼 조회로 인해 Member을 조회할때 Team도 조회해야한다. 이것은 성능적으로 좋지 않다.! EntityManager em = // EntityManager 생성 // 프록시 획득 Member proxyMember = em.getReference(Member.class, 1L); // 프록시 사용 System.out.println("프록시 클래스: " + proxyMember.getClass()); // 프록시를 통한 엔터티 접근 System.out.println("프록시를 통한 엔터..

📝상속 관계 매핑 관계형 데이터베이스는 상속 관계가 없다. 그러나 객체 상속관계와 유사한 슈퍼타입, 서브타입 관계라는 모델링 기법이 있다. 상속 관계 매핑은 객체의 상속 구조와 DB의 슈퍼타입, 서브타입 관계를 매핑한다. DB에서 슈퍼타입, 서브타입 논리 모델을 구현하는 방법 각각 테이블로 변환 - 조인 전략 통합 테이블로 변환 - 단일 테이블 전략 서브타입 테이블로 변환 - 구현 클래스마다 테이블 전략 (추천 X) 주요 어노테이션 • @Inheritance(strategy=InheritanceType.XXX) • JOINED: 조인 전략 • SINGLE_TABLE: 단일 테이블 전략 • TABLE_PER_CLASS: 구현 클래스마다 테이블 전략 • @DiscriminatorColumn(name=“DTY..