Spring Boot(22)
-
페이징
JPA는 페이징을 다음 두 API로 추상화합니다.setFirstResult(int startPosition) : 조회 시작 위치(0부터 시작)setMaxResults(int maxResult) : 조회할 데이터 수실제로 SQL 쿼리를 작성하는 과정에서 페이징 처리는 굉장히 번거로울 수 있습니다. 하지만 JPA에서는 이러한 기능을 들을 쉽게 처리할 수 있습니다. 페이징 예시)List result = em.createQuery("select m from Member m order by m.age desc", Member.class) .setFirstResult(0) .setMaxResults(10) ..
2025.06.28 -
JPQL
JPQL(Java Persistence Query Language)- JPQL은 객체지향 쿼리 언어 입니다. 따라서 테이블을 대상으로 쿼리하는 것이 아니라 엔티티 객체를 대상으로 쿼리한다.- JPQL은 SQL을 추상화해서 특정데이터베이스 SQL에 의존하지 않는다.- JPQL은 결국 SQL로 변환된다. 객체 모델 VS DB 테이블 모델 JPQL 문법-SQL 문법과 거의 유사-SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY - 이러한 방식으로 가능,-엔티티와 속성은 대소문자 구분함.-JPQL 키워드는 대소문가 구분X(SELECT,select)-엔티티의 이름을 사용, 테이블의 이름 사용(X)-별칭은 필수( AS는 생략가능) -> SELECT m FROM Member M (..
2025.06.27 -
객체지향 쿼리 언어
JPA는 다양한 쿼리 방법으로 지원- JPQL, JPA Criteria, QueryDSL, 네이티브 SQL, JDBC API 직접 사용, MyBatis, SpringJdbc Template 함께 사용. JPQL 소개 -JPA를 사용하면 엔티티 객체를 중심으로 개발.-문제는 검색 쿼리-검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색을 해야함.-모든 DB 데이터를 객체로 변환해서 검색하는 것은 절대 불가능-애플리케이션이 필요한 데이터만 DB에서 불러오려면 결국 검색 조건이 포함된 SQL 필요. JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어 제공SQL 문법과 유사(SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 지원)JPQL은 엔티티 객체를 대상으로 쿼..
2025.06.24 -
Spring JPA 값 타입
JPA의 데이터 타입 분류JPA는 크게 2가지의 타입으로 분류하고 있습니다. 엔티티 타입※@Entity로 정의하는 객체※데이터가 변해도 식별자로 지속해서 추적 가능※예시) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능. 값 타입※int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체※식별자가 없고 값만 있으므로 변경시 추적 불가※예시)숫자 100을 200으로 변경하면 완전히 다른 값으로 대체 값 타입 분류 (크게 3가지로 분류 할 수 있습니다)1.기본값 타입 - 자바 기본 타입(int, double) - 래퍼 클래스(Integer, Long) - String 2.임베디드값 타입(embedded type, 복합 값 타입)3.컬렉션 값 타입(collecti..
2025.06.23 -
웹 스코프
웹 스코프의 특징※ 웹 스코프는 웹 환경에서만 동작한다.※ 웹 스코프는 프로토타입과 다르게 스프링이 해당 스코프의 종료시점까지 관리한다. 따라서 종료 메서드가 호출된다. 웹 스코프의 종류1. request : HTTP 요청 하나가 들어오고 나갈 때 까지 유지되는 스코프, 각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고 관리된다.2.session : HTTP Session과 동일한 생명주기를 가지는 스코프3.application : 서블릿 컨텍스트와 동일한 생명주기를 가지는 스코프4.websocket : 웹 소켓과 동일한 생명주기를 가지는 스코프 웹 스코프는 어떠한 방식으로 움직이는지 살펴보겠습니다.※우선 2명의 클라이언트 A와 B가 동일한 컨트롤러를 요청했다고 가정하겠습니다. 스프링이 reques..
2025.06.21 -
빈 스코프
빈 스코프란?- 자바 스프링(Spring) 프레임워크에서 "빈 스코프(Bean Scope)"는 스프링 컨테이너가 빈(Bean)의 생성, 사용, 소멸 주기를 어떻게 관리할지 정의하는 개념입니다. 빈 스코프는 하나의 빈 객체를 애플리케이션에서 어떤 범위로 사용할지 정의합니다. 즉, 객체가 언제 생성되고, 어디까지 살아있으며, 누가 공유하는지를 결정하는 설정입니다. 빈 이란?- 스프링에서 빈은 스프링 컨테이너에 의해 생성되고 관리되는 객체입니다. 예를 들어 @Component, @Service, @Repository, @Bean 등으로 등록된 객체들이 모두 빈입니다. "스프링은 다음과 같은 스코프를 지원한다."※싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다.※..
2025.06.20