본문 바로가기

분류 전체보기170

2024.09.23(월) { 페이징, @EntityGraph } 페이징(Paging)은 대량의 데이터를 한 번에 모두 가져오지 않고, 일정한 단위(페이지)로 나누어 나누어 처리하는 기법입니다. 이를 통해 성능을 개선하고, 메모리 사용을 최적화하며, 사용자에게 보다 나은 경험을 제공합니다. 예를 들어, 데이터베이스에 1000개의 데이터가 있다면, 이를 한 번에 모두 가져오지 않고, 한 페이지에 10개씩 나누어 보여주는 것이 페이징입니다.페이징의 주요 개념페이지 번호 (Page Number):데이터를 나누었을 때, 각 묶음을 식별하는 번호입니다. 보통 1페이지, 2페이지, 3페이지 등으로 표현되며, 사용자가 원하는 페이지를 선택할 수 있습니다.페이지 크기 (Page Size):한 페이지에 표시할 데이터의 개수입니다. 예를 들어, 페이지 크기가 10이라면, 한 페이지에 1.. 2024. 9. 23.
서브쿼리 (Subquery) 서브쿼리(Subquery)는 SQL에서 다른 쿼리 내에 포함된 쿼리를 말합니다. 서브쿼리는 일반적으로 내부 쿼리 또는 중첩 쿼리라고도 하며, 메인 쿼리(Main Query)에 의해 참조되어 데이터를 반환하거나 필터링하는 데 사용됩니다. 서브쿼리는 하나의 쿼리 내에서 다른 쿼리의 결과를 참조하거나 비교하기 위해 사용됩니다.서브쿼리의 기본 구조서브쿼리는 일반적으로 괄호 안에 작성되며, 메인 쿼리와 함께 실행됩니다.SELECT column1, column2FROM table_nameWHERE columnX = (SELECT column FROM another_table WHERE condition);서브쿼리: SELECT column FROM another_table WHERE condition 부분이 서브쿼.. 2024. 9. 23.
2024.09.20 (금) { WHERE 절, HAVING 절, GROUP BY, ORDER BY } WHERE 절, HAVING 절, GROUP BY, ORDER BY1. WHERE 절용도: WHERE 절은 행 단위로 데이터를 필터링합니다. 즉, 데이터베이스에서 가져온 원시 데이터를 조건에 맞게 필터링하여 필요한 데이터만 남깁니다.특징: WHERE 절은 그룹화되기 전에 조건을 적용합니다. 즉, 데이터가 그룹화되기 전에 필터링이 먼저 일어납니다.예시:SELECT * FROM Employees WHERE salary > 5000;이 쿼리는 Employees 테이블에서 급여가 5000보다 큰 행만 가져옵니다.2. HAVING 절용도: HAVING 절은 그룹화된 데이터에 조건을 적용합니다. 즉, GROUP BY로 그룹화된 결과에 조건을 걸어서 필터링합니다.특징: WHERE 절과 달리, HAVING 절은 집계 .. 2024. 9. 23.
이너 조인(Inner Join)과 레프트 조인(Left Join) 이너 조인(Inner Join)과 레프트 조인(Left Join)은 SQL에서 두 개 이상의 테이블을 결합할 때 사용하는 조인의 유형입니다. 이 둘의 가장 큰 차이점은 조인 후 결과에 포함되는 행의 기준에 있습니다.1. 이너 조인(Inner Join)이너 조인은 두 테이블에서 일치하는 데이터만 가져옵니다. 즉, 조인 조건에 맞는 행들만 결과에 포함됩니다. 일치하지 않는 데이터는 무시됩니다.예시:Customer 테이블과 Order 테이블이 있다고 가정해봅시다.Customer 테이블:id | name----|--------1 | John2 | Alice3 | BobOrder 테이블:id | customer_id | order_date----|--------------|------------1.. 2024. 9. 20.
Shallow copy와 Deep copy Shallow copy와 Deep copy는 객체 복사 방식의 두 가지 유형으로, 객체의 필드를 어떻게 복사하는지에 따라 구분됩니다. 이 두 가지 복사 방법은 주로 객체 내부에 참조 타입 필드(다른 객체를 참조하는 필드)가 있을 때 차이를 보입니다.1. Shallow Copy (얕은 복사)Shallow copy는 객체의 최상위 필드만 복사하는 방식입니다. 기본 데이터 타입 필드(예: int, float)는 새롭게 복사되지만, 참조 타입 필드(객체를 참조하는 필드)는 참조값만 복사됩니다. 즉, 객체 내부에 또 다른 객체가 있으면 그 하위 객체는 복사되지 않고, 원본 객체와 복사된 객체가 동일한 하위 객체를 참조합니다.특징:복사 성능이 우수: 복사 과정에서 메모리 사용량이 적고 빠르게 수행됩니다.참조 공유:.. 2024. 9. 19.
2024.09.19(목) { 컬렉션 값 타입, CROSS JOIN } 컬렉션 값 타입은 JPA(Java Persistence API)에서 값 타입(Value Type)을 컬렉션으로 사용하는 개념을 의미합니다. 즉, 값 타입이 여러 개 모여서 하나의 엔티티에서 관리될 때, 이를 컬렉션 값 타입이라고 합니다. 주로 Embeddable로 정의된 값 타입을 여러 개 관리할 수 있도록 컬렉션 형태로 사용합니다.컬렉션 값 타입의 특징값 타입(Value Type):값 타입은 엔티티가 아닌, 데이터 그 자체를 의미하는 타입입니다. 기본 값 타입(예: String, Integer)이나, 임베디드 타입(@Embeddable로 정의된 클래스)이 있습니다.값 타입은 엔티티와는 다르게 식별자(ID)가 없으며, 동일한 값을 가지면 동일한 것으로 간주됩니다.컬렉션으로 관리:여러 값 타입 객체를 한 .. 2024. 9. 19.