일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 암호화폐
- 데이터 분석
- ORM
- springboot
- node.js
- seaborn
- 프로그래밍
- SQL
- Practice
- 데이터 시각화
- 블록체인실습
- 파이썬
- 머신러닝
- JPA
- SpringDataJpa
- 코딩
- java
- 데이터베이스
- 딥러닝
- Ai
- 실습
- 스마트컨트랙트
- OpenAI
- 이더리움
- tutorial
- 웹개발
- querydsl
- Python
- ChatGPT
- 블록체인
- Today
- Total
목록JPA (22)
집돌이 공대남 IT
JPA 트랜잭션 관리: 더 깊이 알아보기 안녕하세요, 공대남입니다. 이번 포스트에서는 JPA에서의 트랜잭션 관리에 대해 더 깊이 들어가겠습니다. 트랜잭션을 제대로 이해하고 활용하는 것은 데이터 일관성과 성능에 큰 영향을 미칩니다. 트랜잭션의 개념 재정립 먼저 트랜잭션이 무엇인지 간단히 복습해봅시다. 트랜잭션은 데이터베이스의 상태를 변화시키기 위해 수행되는 작업 단위입니다. 이 작업 단위 내에서의 모든 동작은 원자적(Atomic)입니다, 즉, 작업이 중간에 실패하면 처음부터 롤백이 됩니다. @Transactional 어노테이션 속성 @Transactional 어노테이션은 다양한 속성을 제공합니다: propagation: 트랜잭션 전파 방식을 설정합니다. 예를 들어, Propagation.REQUIRES_N..
JPA 성능 최적화 이해와 실습 안녕하세요, JPA 여행을 계속 이어가는 집돌이 공대남입니다. 이번 포스트에서는 JPA 성능 최적화에 대해 알아보도록 하겠습니다. 쿼리 최적화를 위한 기본 원칙 우선 JPA에서 성능을 최적화하기 위한 가장 기본적인 원칙은 다음과 같습니다. 필요한 데이터만 조회합니다. 불필요한 데이터를 조회하게 되면 네트워크 용량을 낭비하고, 애플리케이션에서 그 데이터를 처리하는데 CPU 자원이 낭비됩니다. 필요한 시점에 데이터를 조회합니다. 데이터를 미리 조회해 두었다가 나중에 사용하게 되면, 그 사이에 데이터가 변경될 수 있으므로 최신 상태를 반영하지 못할 수 있습니다. 한 번에 가능한 한 많은 데이터를 조회합니다. 데이터베이스에서 데이터를 조회할 때는 네트워크 비용이 크게 발생하므로,..
JPA 동적 쿼리의 활용과 페이징 기능 구현 안녕하세요, 집돌이 공대남입니다.오늘도 저와 함께 JPA에 대한 여행을 이어가 주셔서 감사합니다. 이번 포스트에서는 동적 쿼리를 실제로 어떻게 활용하는지, 그리고 페이징이라는 중요한 웹 애플리케이션 기능을 어떻게 구현하는지에 대해 알아보려 합니다. 동적 쿼리란? 먼저 동적 쿼리에 대해 간단히 설명하자면, 프로그램 실행 중에 SQL 문을 생성하여 데이터베이스에 접근하는 방식을 말합니다. 이는 사용자의 요청에 따라 SQL 문이 변경되어야 할 경우 유용하게 사용될 수 있습니다. 이번 포스트에서는 JPA와 QueryDSL을 활용하여 동적 쿼리를 구현하는 방법을 알아보겠습니다. 페이징 기능과 동적 쿼리 페이징이란 데이터베이스에서 가져온 데이터를 페이지 단위로 나눠서 보..
JPA 활용 전략 및 최적화 기법: 동적 쿼리 작성과 QueryDSL 안녕하세요, 여러분! 집돌이 공대남입니다. 지난 시간에 이어, 이번 포스트에서는 JPA와 QueryDSL을 활용하여 동적 쿼리를 작성하는 방법에 대해 알아보도록 하겠습니다. 동적 쿼리의 필요성 먼저, 동적 쿼리가 필요한 이유에 대해 간략하게 설명하겠습니다. 웹 애플리케이션에서는 사용자의 요청에 따라 다양한 형태의 데이터를 반환해야 합니다. 사용자의 검색 조건에 따라 결과를 필터링하거나 정렬해야 하는 경우가 많죠. 이럴 때 매번 쿼리를 작성하는 것은 매우 비효율적입니다. 이런 문제를 해결하기 위해 동적 쿼리를 사용합니다. JPA와 QueryDSL 사용법 JPA는 JPQL이라는 쿼리 언어를 제공합니다. 하지만, 동적 쿼리를 작성할 때는 J..
JPA 활용 전략 및 최적화 기법: 트랜잭션 관리 디테일 안녕하세요, 여러분! 집돌이 공대남입니다. 이번 포스트에서는 트랜잭션 관리에 대해 조금 더 디테일하게 살펴보도록 하겠습니다. 트랜잭션 관리 데이터베이스에서 트랜잭션은 여러 단계의 처리를 한 번에 수행하는 하나의 작업 단위를 의미합니다. JPA에서 트랜잭션 관리는 EntityManager 인스턴스와 관련이 있습니다. EntityManager는 EntityTransaction 인스턴스를 통해 트랜잭션을 시작, 커밋, 롤백하는 API를 제공합니다. 아래는 트랜잭션을 사용하는 기본적인 코드 예제입니다. EntityManagerFactory emf = Persistence.createEntityManagerFactory("example-unit"); Ent..
JPA 활용 전략 및 최적화 기법: 성능 최적화 전략 파트 2 안녕하세요, 집돌이 공대남입니다. 이전 포스트에서 페치 전략에 대해 알아보았습니다. 이번 포스트에서는 JPA의 성능을 높이는 또 다른 방법인 캐시 전략에 대해 자세히 알아보도록 하겠습니다. 캐시 전략 JPA는 데이터베이스와의 통신을 최소화하기 위해 캐시 전략을 제공합니다. 이는 애플리케이션의 성능을 향상시키는 데 큰 도움이 됩니다. JPA는 일차 캐시(1st Level Cache)와 이차 캐시(2nd Level Cache)를 지원합니다. 1. 일차 캐시 (First Level Cache) 일차 캐시는 트랜잭션 범위의 캐시로, 트랜잭션을 시작하고 종료할 때까지 해당 트랜잭션에서 사용되는 엔티티를 캐싱합니다. 아래 코드는 일차 캐시를 사용하는 예..
JPA 활용 전략 및 최적화 기법: 고급 매핑 전략과 벌크 연산 안녕하세요, 집돌이 공대남입니다. 이번 포스트에서는 JPA의 고급 매핑 전략과 벌크 연산에 대해 다뤄보겠습니다. JPA는 객체지향 프로그래밍의 특징과 데이터베이스 테이블간의 차이점을 해소하는 고급 매핑 전략을 제공합니다. 또한, 벌크 연산을 통해 한 번의 쿼리로 여러 행을 한꺼번에 처리하는 것이 가능합니다. 그래서 오늘은 실습을 해보려 합니다.(항상 그랬지만..) 고급 매핑 전략 우선, 상속 관계 매핑을 보겠습니다. JPA는 SINGLE_TABLE, JOINED, TABLE_PER_CLASS 세 가지의 상속 관계 매핑 전략을 제공합니다. 아래의 코드는 SINGLE_TABLE 전략을 사용한 예시입니다. @Entity @Inheritance(s..
JPA 활용 전략 및 최적화 기법: 쿼리 최적화와 트랜잭션 관리 안녕하세요. 집돌이 공대남입니다. 초급부터 전문가까지 과정을 총 15회를 거쳐서 마쳤습니다. 초급을 하시면서 쿼리 최적화도 잠시 해보고 트랜잭션 관리도 해보고 이렇게 최적화를 초급단계에서 조금씩 맛(?) 보았습니다. 이제 중급 단계에서 좀 더 다뤄보도록 하겠습니다. 이번 포스트에서는 JPA를 활용한 쿼리 최적화 전략과 트랜잭션 관리에 대해 실습하면서 배워보도록 하겠습니다. 쿼리 최적화 JPA를 사용하면서 데이터베이스 쿼리를 최적화하는 데에는 여러 전략이 있습니다. 여기서는 페치 전략과 캐시를 이용한 최적화에 대해 다루겠습니다. 페치 전략: JPA는 LAZY와 EAGER 두 가지 페치 전략을 제공합니다. LAZY(나태) 전략은 데이터가 실제로..
JPA 실습: 복잡한 도메인 모델과 비즈니스 로직 다루기 안녕하세요. 집돌이 공대남입니다. 이번에는 좀 더 복잡한 도메인 모델과 비즈니스 로직을 다루는 JPA 실습을 진행해 보겠습니다. 이번 실습에서는 회원, 상품, 주문 등 여러 개의 도메인을 다루며, 1:N, N:1, N:M 등 다양한 관계 매핑을 경험해볼 예정입니다. 재밌겠죠?(아닌가..) 1단계: 도메인 모델링 먼저, 회원(Member), 상품(Item), 주문(Order), 주문 상세(OrderItem) 등의 엔티티를 만들어 보겠습니다. @Entity public class Member { // 기존에 작성한 코드 @OneToMany(mappedBy = "member") private List orders = new ArrayList(); } @..
JPA 실습: 실제 애플리케이션에 활용하기 안녕하세요, 집돌이 공대남입니다. 오늘은 JPA를 활용하여 실제 애플리케이션을 구축해보는 실습을 진행해보겠습니다. 이번 포스트에서는 간단한 웹 애플리케이션을 만들어볼 예정이며, 애플리케이션에는 회원 등록, 회원 조회, 회원 수정, 회원 삭제 기능이 포함될 예정입니다. 재미있으시길 바라겠습니다.^^ 1단계: 개발 환경 설정 먼저, 실습을 위해 필요한 개발 환경을 설정하겠습니다. 이를 위해서는 Spring Boot를 기반으로 JPA를 적용할 준비를 해야 합니다. 2단계: 도메인 모델링 회원(Member) 클래스를 만들어 보겠습니다. 아래는 'Member' 엔티티의 예시입니다. @Entity public class Member { @Id @GeneratedValue ..