소소한개발팁
반응형
HTTP
컴퓨터 과학/네트워크 2023. 9. 20. 18:14

인터넷 네트워크 IP (인터넷 프로토콜) 인터넷을 통해 데이터를 전송하는 데 사용되는 프로토콜입니다. 각 기기는 고유한 IP 주소를 가지며, 이 주소를 통해 데이터가 전송되고 라우팅됩니다. IPv4와 IPv6는 주로 사용되며, IPv4는 32비트 주소를, IPv6는 128비트 주소를 사용합니다. TCP (전송 제어 프로토콜) 신뢰성 있는 데이터 전송을 제공하는 프로토콜입니다. 데이터를 분할하고 보내고, 수신측에서 재조립하여 손실이나 오류를 최소화합니다. 웹 브라우징, 이메일 전송 등과 같이 신뢰성이 중요한 애플리케이션에서 주로 사용됩니다. UDP (사용자 데이터그램 프로토콜) TCP와 달리 연결 지향적이지 않고, 데이터 전송을 빠르게 처리합니다. 그러나 손실이나 중복 데이터 처리를 제공하지 않기 때문에,..

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 부서 부..

article thumbnail
JPA - 상속 관계 및 MappedSuperclass
컴퓨터 언어/Java 2023. 9. 7. 15:44

상속 관계의 종류 단일 테이블 전략 (Single Table Strategy): 이 전략은 상속 계층의 모든 엔티티를 하나의 테이블에 매핑합니다. 이 테이블에는 부모와 자식 엔티티의 모든 속성이 포함됩니다. 엔티티_유형(Discriminator 컬럼)을 사용하여 각 엔티티의 유형을 식별합니다.공통 속성과 자식 엔티티의 속성 모두 하나의 테이블에 존재하며, 자식 엔티티의 속성이 없는 경우에는 null 값으로 채워집니다. 조인 테이블 전략 (Joined Table Strategy): 이 전략은 상속 계층의 각 엔티티를 별도의 테이블에 매핑합니다. 부모 엔티티와 자식 엔티티 간의 관계는 조인 테이블을 사용하여 정의됩니다.부모 엔티티와 자식 엔티티 간의 관계는 외래 키(FK)를 사용하여 정의됩니다. 각 엔티티는..

반응형