Spring Data JPA - Pageable
·
Spring
Pageable?Pageable은 Spring Data JPA에서 제공하는 페이징 처리를 위한 인터페이스입니다.데이터를 한 번에 모두 가져오지 않고 페이지 단위로 나누어 조회하기 위해 사용됩니다.Pageable의 주요 개념페이지 번호 (Page Number): 가져올 페이지의 인덱스를 의미합니다.페이지 번호는 0부터 시작합니다. (1페이지 = 인덱스 0)페이지 크기 (Page Size): 한 페이지에 포함될 데이터의 개수입니다.정렬 (Sort): Pageable 객체에 정렬 기준을 포함할 수 있습니다.Pageable의 주요 인터페이스와 클래스Pageable: 페이징 정보를 추상화한 인터페이스입니다.PageRequest: Pageable 인터페이스의 구현체로, 페이지 번호와 크기, 정렬 정보를 제공합니다...
Spring Data JPA - Sort
·
Spring
Sort란?Sort는 데이터 조회 시 특정 필드를 기준으로 정렬할 수 있도록 도와주는 Spring Data JPA 기능입니다.정렬 방식은 크게 두 가지입니다:오름차순(Ascending): 작은 값 → 큰 값 (ASC)내림차순(Descending): 큰 값 → 작은 값 (DESC)2. Sort의 주요 개념Sort 객체: Spring Data JPA의 Sort 클래스를 사용하여 정렬 기준과 방식을 설정합니다.필드 기준: 정렬은 엔티티의 필드(예: name, age, createdAt)를 기준으로 적용됩니다.다중 필드 정렬: 여러 필드를 조합해서 정렬할 수 있습니다. 예: 나이 기준 내림차순 → 같은 나이에서는 이름 오름차순3. Sort 사용법 단계별 이해1. 단일 필드를 기준으로 정렬하기오름차순 정렬Sort..
REDBOX(헌혈증 기부 시스템) - JWT 정리
·
Spring Security/JWT
1. JWT 기반 인증/인가 시스템 구축JWTFilter@Overrideprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { String accessToken = request.getHeader("access"); if (accessToken == null) { filterChain.doFilter(request, response); return; } try { jwtUtil.isExpired(accessToken); ..
Spring Data JPA - JPA Query Methods
·
Spring
JPA Query Methods :: Spring Data JPAJPA Query Method개념JPA Query Method는 메서드 이름만으로 쿼리를 생성하는 Spring Data JPA의 강력한 기능입니다.개발자는 메서드의 이름 규칙을 따라 작성하기만 하면, Spring Data JPA가 자동으로 JPQL(Java Persistence Query Language) 쿼리를 생성해 실행합니다.장점SQL 작성 필요 없음: 메서드 이름만으로 쿼리를 작성할 수 있습니다.자동화된 쿼리 생성: Spring Data JPA가 자동으로 JPQL을 생성해줍니다.간결하고 직관적: 쿼리의 목적을 메서드 이름으로 표현하므로 코드의 가독성이 높아집니다.JPA Query Method 작성 규칙기본 형식findBy 또는 rea..
Spring MVC 아키텍처 계층 구조 + Entity와 DTO를 변환하는 이유
·
Spring
1. 구조 단계별 설명Client사용자 또는 클라이언트가 요청을 보냅니다.웹 페이지나 모바일 애플리케이션이 클라이언트 역할을 합니다.Controller역할: 클라이언트의 요청을 받고 적절한 서비스를 호출합니다.DTO 사용: 클라이언트가 보낸 데이터를 DTO (Data Transfer Object)로 받아 처리합니다.주요 기능:요청(Request) 데이터 검증Service 계층에 데이터 전달처리 결과를 클라이언트에게 반환Service역할: 비즈니스 로직을 담당합니다.Controller에서 넘어온 DTO를 처리하고 Entity로 변환해 Repository로 전달합니다.ServiceImpl: 비즈니스 로직의 세부 구현을 처리하는 클래스입니다.DAO (Repository)DAO (Data Access Objec..
ModelMapper 라이브러리
·
Spring
https://modelmapper.org/https://mvnrepository.com/artifact/org.modelmapper/modelmapperModelMapper란?ModelMapper는 객체 간 매핑(객체 변환)을 간편하게 처리할 수 있는 Java 라이브러리입니다. 주로 DTO(Data Transfer Object)와 Entity 간의 변환에 사용되며, 이를 통해 코드를 간결하고 효율적으로 작성할 수 있습니다.왜 ModelMapper가 필요한가?DTO와 Entity의 변환은 반복적이고 귀찮은 작업이 될 수 있습니다.수동 변환 시 코드가 복잡하고 가독성이 떨어질 수 있습니다.ModelMapper의 특징자동 매핑객체의 필드명이 동일하면 자동으로 매핑해줍니다.예: DTO의 name 필드 → En..
코틀린 핵심 개념 정리
·
Kotlin
자바의 문제점 & 코틀린으로 해결NullPointerException : Nullable 타입과 안전한 연산자 도입.장황한 코드 : 간결하고 직관적인 문법 제공.데이터 클래스 : 단순 클래스 작성을 위한 data 키워드 제공.함수형 프로그래밍 : 더욱 강력하고 완전한 지원.1. 코틀린의 Nullable 처리 및 장점1.1 Nullable 처리 방식코틀린은 자바의 NullPointerException(NPE) 문제를 해결하기 위해 다양한 연산자를 제공한다. 1. Safe Call( ?. ) : 객체가 null일 경우 null을 반환하며 연산을 수행하지 않는다.var str: String? = nullprintln(str?.length) // null 반환, NPE 방지 2. Elvis 연산자( ?: ) :..
War, Jar 란? 그리고 차이점
·
Java
1. Jar(Java ARchive)파일정의: JAR 파일은 여러 개의 Java 클래스 파일, 메타 데이터, 리소스 파일 등을 하나의 파일로 묶은 아카이브 파일목적: Java 클래스와 관련 리소스를 패키징하여 재사용 가능한 라이브러리나 실행 가능한 애플리케이션을 생성사용처: Java 라이브러리, 스탠드얼론 Java 애플리케이션, 의존성 패키지 등확장자: .jar2. WAR (Web Application aRchive) 파일정의: WAR 파일은 웹 애플리케이션을 패키징하기 위한 파일 포맷이다. Java 클래스, JSP, 서블릿, XML, 라이브러리, 정적 웹 리소스 (예: HTML, CSS, JavaScript) 등 웹 애플리케이션 구성 요소를 포함한다.목적: 웹 애플리케이션을 하나의 단위로 패키징하고 배..
Spring Data JPA 개요
·
Spring
Spring Data JPA 소개https://spring.io/projects/spring-data-jpa1. Spring Data JPA의 목적과 특징Spring Data JPA란?JPA를 더 쉽고 간단하게 사용할 수 있도록 도와주는 Spring 프레임워크의 하위 모듈입니다.JPA가 제공하는 표준 기능 외에도 반복적으로 사용되는 코드를 최소화하고, 간단한 방식으로 CRUD 작업을 구현할 수 있게 도와줍니다.Spring Data JPA의 주요 특징Repository 기반의 개발데이터를 조작하는 코드를 작성하지 않고도, JpaRepository 인터페이스만 상속하면 기본적인 CRUD 메소드가 자동으로 제공됩니다.메소드 이름으로 쿼리 생성findByName, findByAgeGreaterThan처럼 메소드..
JPA - JPQL (Java Persistence Query Language)
·
Spring
JPA 쿼리 방식쿼리 방식특징유리한 상황JPQL객체 지향 쿼리 언어, 데이터베이스 독립적.일반적인 쿼리, JPA 기본 기능 활용.Criteria API코드 기반 동적 쿼리, 타입 안전성 제공.동적 쿼리 작성 시.Native QuerySQL 직접 실행, 데이터베이스 종속적.복잡한 SQL 작성, 성능 최적화가 필요한 경우.Named Query엔티티에 미리 정의된 JPQL, 재사용 가능.자주 사용되는 JPQL을 미리 정의할 때.Spring Data JPA메서드 이름 기반 쿼리 생성 및 @Query를 활용.빠르고 간단한 쿼리 작성.QueryDSL타입 안전한 동적 쿼리 작성 가능, 코드 가독성 좋음.복잡한 동적 쿼리 작성.JDBC Template순수 SQL 실행, Spring에서 리소스 관리 제공.JPA 사용하지..