일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- 포트폴리오
- S3
- Redis
- 디자인 패턴
- 데이터 베이스
- JPA
- LV01
- Join
- 일정관리 프로젝트
- LV0
- LV02
- spring boot
- CoffiesVol.02
- LV03
- Java
- Lv.0
- Til
- 코테
- 연습문제
- 프로그래머스
- 이것이 자바다
- GIT
- 일정관리프로젝트
- mysql
- SQL
- LV1
- LV.02
- docker
- CI/CD
- 알고리즘
- Today
- Total
목록JPA (12)
코드 저장소.

목차1.문제상황 2.동시성 이슈?3.비관적 락 VS 낙관적 락 4.프로젝트 적용1.문제상황 프로젝트를 진행하면서 게시글 조회수 증가기능을 확인해보는 도중에 포스트맨으로 동시요청을 해보았는데 조회수의 결과가 원하는 만큼 증가하지 않는 문제가 발생을 해서 무슨 문제인지를 검색해 보았더니 동시성이슈에 관련된 문제임을 알았고 앞으로도 필요한 문제이기에 이 문제를 해결해 보기로 했다.2.동시성 이슈?동시성이라는것은 두개 이상의 세션이 공통된 자원에 대해서 읽고 쓰는 작업을 할 때 발생하는 문제를 동시성 이슈라고 합니다. 3.비관적 락 VS 낙관적 락데이터베이스는 여러 사용자들이 같은 데이터를 동시에 접근 상황에서, 데이터의 무결성, 일관성을 지키기 위해 LOCK을 사용한다. Lock은 트랜잭션의 순차성을 보장하며..
목차1.프록시2.로딩전략 1.프록시JPA에서의 프록시는 엔티티의 지연 로딩(Lazy Loading)을 지원하기 위해 사용됩니다. JPA 구현체(예: Hibernate)는 엔티티 대신 프록시 객체를 반환하여 실제 데이터베이스 액세스를 지연할 수 있습니다. 프록시 객체는 실제 엔티티의 서브 클래스 또는 동적 프록시로서, 엔티티의 실제 데이터가 필요한 시점까지 데이터베이스 쿼리를 연기합니다. 프록시의 동작 원리지연 로딩 설정: 엔티티 관계(예: @OneToMany, @ManyToOne)에 fetch = FetchType.LAZY를 설정합니다.프록시 생성: JPA 구현체는 엔티티를 로드할 때 실제 엔티티 대신 프록시 객체를 반환합니다. 초기화: 프록시 객체의 메서드가 호출되면, JPA 구현체는 실제 엔티티 데이..
목차1.JPA의 데이터 타입2.기본값 타입3.임베디드 타입4.컬렉션 값 타입 1.JPA의 데이터 타입JPA에서의 데이터 타입은 크게 엔티티타입과 값 타입으로 되어있습니다. 엔티티 타입 엔티티 타입은 @Entity로 정의를 할 수 있는 객체를 의미합니다. 값타입 값타입은 크게 3가지로 분류를 할 수 있습니다. 1.기본 값 2.임베디드 타입3.컬렉션 타입2.기본값 타입기본 값 타입은 자바에서 기본 타입, 래퍼 클래스, String을 예로 들 수 있습니다.@Entity@Getter@NoArgsConstructor@AllArgsConstructorpublic class testEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) ..
목차1.JPA의 연관관계2.1대1관계3.1대다관계4.다대다관계 1.JPA의 연관관계JPA(Java Persistence API)에서 연관관계는 단방향과 양방향으로 설정할 수 있습니다. 연관관계는 크게 1대1,1대다,다대다의 세 가지 유형으로 나뉘며, 각각을 단방향과 양방향으로 구현할 수 있습니다. 2.1대1관계단방향: 한쪽 엔티티가 다른 한쪽 엔티티를 참조합니다. 예를 들어, User가 UserProfile을 참조하지만 UserProfile은 User를 참조하지 않습니다.@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name..

목차1.영속성 컨텍스트2.엔티티의 생명주기3.영속성 컨텍스트의 이점 1.영속성 컨텍스트영속성 컨텍스트는 엔티티(Entity) 객체의 생명주기를 관리하는 환경입니다. 영속성 컨텍스트는 JPA가 데이터베이스와 상호작용할 때 사용되며, 엔티티 객체의 상태를 추적하고 관리합니다. 2.엔티티의 생명주기비영속 (new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태영속 (managed) : 영속성 컨텍스트에 관리되는 상태준영속 (detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태삭제 (removed) : 삭제된 상태비영속객체를 생성했지만 영속성 컨텍스트에서 관리하지 않는 상태를 의미한다.//객체를 생성한 상태(비영속) Member member = new Member(); memb..
목차1. 엔티티2. 엔티티 매핑 관련 어노테이션 1. 엔티티 엔티티는 데이터베이스 테이블에 매핑되는 자바 클래스를 말합니다. 엔티티 ORM(Object-Relational Mapping)에서 중요한 역할을 하며, 개발자가 복잡한 SQL 쿼리를 작성하는 대신 객체를 사용하여 데이터베이스와 상호 작용할 수 있도록 합니다. 데이터 베이스의 테이블을 연관시키기 위해서는 Jpa에서 제공하는 어노테이션을 사용해서 테이블을 매핑시킬 수 있습니다. 아래는 Jpa에서 엔티티 클래스에 적용되는 어노테이션들입니다. 테이블을 매핑하는 어노테이션 : @Table, @Entity기본키를 설정하는 어노테이션 : @Id필드와 컬럼에 연관되는 어노테이션: @Column,@Enumerated,@Temporal,@Transient,@A..