본문 바로가기
728x90

분류 전체보기143

DataBase Index 개념 정리하기 Index에 대해서 공부해 보자😀 오늘은 index란 것에 대해서 정리해 볼까 합니다. 아무래도 DB를 구축하고 운용하는 것에 그치지 않고, 성능을 개선하기 위해 index라는 자료 구조가 꼭 필수적이기 때문에 개념을 정리하게 되었습니다. Index 란? 일단 인덱스는 서두에서도 언급했다시피 자료 구조에 해당합니다. 이 자료 구조는 데이터 테이블에 저장된 데이터들을 조회하는 속도를 빠르게 하기 위해 사용합니다. Index와 연관된 기본 용어부터 정리해봅시다. search-key: search-key는 하나 이상의 속성들(attributes) 집합입니다. index file: search-key와 pointer를 쌍으로 하는 records들로 구성된 형태입니다. 여기서 search-key를 구성하는 속성들.. 2023. 2. 24.
[JPA] JPQL 2 - 중급 문법 정리 경로 표현식 간단하게 .(점)을 찍어 객체 그래프를 탐색하는 것을 의미한다. 접근하는 필드의 타입에 따라서 경로 표현식의 종류가 3가지로 나뉘게 된다. 상태 필드 m.username 단일 값 연관 필드 m.team t 컬렉션 값 연관 필드 m.orders o 어떤 필드에 접근하는지에 따라 내부적인 JPA의 동작 방식이 달라지기 때문에, 유의해서 봐야할 개념이라고 한다. 경로 표현식에 대한 용어 정리 우선 상태 필드와 연관 필드로 접근할 수 있는 필드의 경로가 나뉜다. 상태 필드 (status field): 단순히 값을 저장하기 위한 필드 연관 필드 (association field): 연관관계를 위한 필드 단일 값 연관 필드: @ManyToOne, @OneToOne 관계에 대한 즉, 하나의 엔티티 대상 .. 2023. 2. 24.
[Spring] data.sql을 이용한 테스트 데이터 추가하기.. (스프링 부트 2.7.8 버전) Spring을 이용해서 jwt 관련 개념을 공부하다가 맞딱뜨린 문제를 해결한 과정을 기록하려 합니다.. 대략 user, authority, user_authority 세 개의 entity를 JPA를 이용해 관리하는 애플리케이션이고, user, authority가 다대다 관계로 매핑되는 예제를 구현하고 있었습니다. 그러던중 data.sql을 resources 폴더에 넣어 초기화 과정에서 테스트 데이터를 넣는 과정을 실행하는데.. 아무리 h2 database를 조회해도 데이터가 추가되지 않았습니다.. 해결책부터 말하자면, application.yaml 설정 파일에 다음 두 가지를 추가해서 해결했습니다. sql.init.mode jpa.defer-datasource-initialization 이런 문제가 발생.. 2023. 2. 22.
[JPA] JPQL 1 - 기본 문법 정리 객체 지향 쿼리 언어 JPQL 이란 JPA에서는 다양한 쿼리 방식을 지원한다. JPQL JPA Criteria QueryDSL 네이티브 SQL JDBC API 직접 사용, MyBatis, SpringJdbcTemplate을 JPA와 같이 사용 앞서 배웠던 엔티티 조회 방식은 Entity manager의 find method 호출을 통한 조회 혹은 객체 그래프 탐색(ex entityA.getB())을 통한 entity 조회였다. 하지만, 조건을 포함한 검색 쿼리 같은 경우는 앞서 사용한 방식으로는 해결이 불가능하다. JPA를 사용하는 경우 엔티티 객체를 중심으로 개발을 할 수 있게 되지만, 결국 애플리케이션에서 필요한 데이터만 조회하기 위해서는 SQL의 도움이 필요하다. JPQL 이러한 문제를 해결하기 위.. 2023. 2. 22.
SELECT query가 실행되는 과정 들어가면서.. 오늘은 database에서 데이터를 조회하기 위한 기본적인 방법인 SELECT query에서 데이터를 조회하는 과정을 단계별로 살펴보려고 합니다. SELECT query에 포함되는 where, group by, having, order by 절과 같은 구문들을 실행하는 순서가 정해져 있고, 이에 따라서 성능이 좌우되는 경우도 많기 때문에, 매우 중요한 개념입니다. SELECT query 기본 구성 요소 우선 select query에 포함되는 모든 clause를 표현하면, 다음과 같이 정리됩니다. SELECT FROM WHERE GROUP BY HAVING ORDER BY ; 총 6단계(select, from, where, group by, having, order by)로 구성된 과정을 거.. 2023. 2. 21.
[JPA] 값 타입 기본값 타입 JPA의 기본적인 데이터 타입 분류는 크게 두가지이다. (최상위 분류) 엔티티 타입 @Entity 어노테이션으로 정의하는 객체 데이터가 변해도 식별자를 이용해서 지속적으로 추적 가능 예) 회원 엔티티의 키나 이름 값을 변경해도 식별자로 인식 가능 값 타입 int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체를 의미 식별자 없고 값만 있어 변경시 추적이 불가능하다. 예) 숫자 100 → 200 변경하면, 완전히 다른 값으로 대체된 것 값 타입 분류 기본값 타입 자바 기본 타입 (int, double ...) Wrapper class (Integer, Double ...) String 임베디드 타입 (embedded type, 복합 값 타입) 컬렉션 값 타입.. 2023. 2. 18.
728x90