소소한개발팁
반응형
article thumbnail
자바 버전 별 특징 정리 ( 8이후 )
컴퓨터 언어/Java 2024. 2. 14. 12:58

개요 실무에서는 주로 자바 8 버전을 사용하였고 별도의 자바 버전을 업그레이드에서 사용하지 않았었는데 현재 사용하고 있는 스프링 부트 생성 사이트를 사용하던 중 기본 값이 17임을 확인하였고 이에 대해 업그레이드 된 자바의 기능들을 정리하고자 작성하였습니다. 해당 내용들은 ChatGpt 활용하여 정리하였습니다. Java 8 람다 표현식(Lambda Expressions) 및 함수형 인터페이스(Functional Interfaces) 도입. // 함수형 인터페이스 정의 interface MyFunction { int apply(int a, int b); } public class Main { public static void main(String[] args) { // 람다 표현식을 사용하여 함수형 인터페..

article thumbnail
JPA - OSIV 패턴
컴퓨터 언어/Java 2023. 9. 23. 17:53

OSIV 패턴 OSIV 패턴은 웹 애플리케이션의 데이터베이스와의 효율적인 상호 작용을 가능하게 하는 디자인 패턴 중 하나입니다. 주로 Java 기반의 웹 애플리케이션 개발에서 사용되며, Hibernate 및 JPA와 같은 ORM 프레임워크와 관련이 있습니다. 이 패턴은 세션(Session)을 효과적으로 관리하고 데이터베이스 트랜잭션을 간편하게 처리할 수 있도록 도와줍니다. 웹 애플리케이션은 사용자 요청을 처리하고 데이터베이스와 상호 작용해야 합니다. 일반적으로, 웹 요청이 들어올 때마다 데이터베이스 세션을 열고 요청이 완료되면 세션을 닫는 것이 일반적인 접근 방식입니다. 그러나 이러한 방식은 몇 가지 문제를 야기할 수 있습니다. 성능 문제: 데이터베이스 세션을 열고 닫는 작업은 오버헤드를 초래할 수 있습..

article thumbnail
JPA - N+1 문제란?
컴퓨터 언어/Java 2023. 9. 12. 18:29

N+1 문제란 ? N+1 쿼리 문제(N+1 Query Problem)는 객체 관계 매핑(Object-Relational Mapping, ORM) 라이브러리와 관련된 성능 이슈 중 하나로, 데이터베이스와의 효율적인 데이터 검색 및 로딩을 방해하는 문제입니다. 이 문제는 다음과 같은 상황에서 발생합니다. 일대다 또는 다대일 관계(One-to-Many 또는 Many-to-One Relationship): 예를 들어, 한 명의 고객(Customer)가 여러 개의 주문(Order)을 가질 수 있는 경우 또는 여러 주문이 한 명의 고객에게 연결된 경우와 같이 일대다 또는 다대일 관계가 있는 엔터티 간의 관계입니다. 지연 로딩(Lazy Loading)이 설정된 경우: 많은 ORM 라이브러리에서는 기본적으로 연관된 엔..

article thumbnail
JPA - JPQL 사용 방법
컴퓨터 언어/Java 2023. 9. 12. 18:18

JPQL JPQL(Java Persistence Query Language)은 객체 지향 쿼리 언어로, JPA와 함께 사용하여 데이터베이스에서 데이터를 검색, 필터링 및 조작하는 데 사용됩니다. 경로 표현식 단일 속성 경로 (Single-Attribute Path): 단일 엔티티 속성에 대한 경로입니다. 예를 들어, "employee.name"은 Employee 엔티티의 "name" 속성에 대한 경로를 나타냅니다. 다중 속성 경로 (Multiple-Attribute Path): 여러 개의 속성을 연결하여 엔티티 그래프 내에서 속성에 대한 경로를 나타낼 수 있습니다. 예를 들어, "department.manager.name"은 Department 엔티티의 "manager" 속성을 통해 Employee 엔티..

article thumbnail
JPA - 값 타입 사용 방법
컴퓨터 언어/Java 2023. 9. 11. 16:54

기본값과 래퍼 클래스 데이터 유형 기본 값 (Primitive Values): 기본 데이터 유형은 자바에서 제공하는 8개의 기본 데이터 유형으로 이루어져 있습니다. 이러한 데이터 유형에는 int, float, boolean, char 등이 포함됩니다. 이러한 데이터 유형은 소문자로 작성됩니다. 래퍼 클래스 (Wrapper Classes): 래퍼 클래스는 기본 값에 대한 객체 표현으로, 기본 데이터 유형을 감싼(wrapper) 클래스입니다. 예를 들어, Integer, Float, Boolean, Character 등이 있습니다. 이러한 클래스는 대문자로 시작하며, 기본 데이터 유형과 관련된 여러 유용한 메서드와 기능을 제공합니다. 값의 초기화 기본 값 (Primitive Values): 기본 데이터 유형..

article thumbnail
JPA - Proxy(프록시) 이해하기
컴퓨터 언어/Java 2023. 9. 7. 23:08

Proxy 란 무엇인가? 프록시는 객체 지향 프로그래밍에서 다른 객체에 대한 접근을 제어하거나 추가적인 동작을 수행하는 데 사용되는 중간 객체입니다. JPA에서 프록시는 엔티티 객체를 대신하여 데이터베이스에서 필요한 정보를 지연 로딩하거나 추가적인 작업을 수행합니다. 프록시의 주요 사용 사례 엔티티 로딩: JPA는 엔티티를 로딩할 때 프록시를 사용하여 성능을 최적화합니다. 엔티티가 실제로 필요할 때까지 로딩을 지연할 수 있습니다. 지연 로딩 (Lazy Loading): 프록시를 사용하여 엔티티의 연관 관계를 지연 로딩으로 설정할 수 있으며, 실제로 접근할 때 로딩됩니다. @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "부서_id") private 부서 부..

반응형