일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dfs
- BFS
- JPA
- 세그먼트 트리
- 위상정렬
- 비트마스크
- ddd
- pandas
- 백준
- 파이썬
- UML
- disjoint set
- docker
- 포트앤어댑터 아키텍처
- 스프링
- dataframe
- DP
- 헥사고날 아키텍처
- 알고리즘
- 이펙티브 자바
- series
- spring security
- springboot
- 자바
- 다익스트라
- 데이터 flow
- java
- Redis
- 문자열
- equals
- Today
- Total
목록JPA (3)
코딩못하는사람
동시성 문제란? 두 개 이상의 세션이 공통된 자원에 대해서 읽고 쓰는 작업을 할 때 발생할 수 있는 문제이다. 기본적으로 동시성 문제는 완전한 해결이 있는 것이 아닌 타협이 있다. 성능을 포기하고 정확성을 높이느냐, 정확성을 타협하고 성능을 높이느냐이다(ex 트랜잭션 격리 단계) JPA에서도 JPA Transaction의 동시성을 제어하고자 하는 방법이 있다. JPA는 객체를 조회하면 영속성 컨텍스트에 캐시하기 때문에 "일관성 없는 읽기"의 문제는 없다. 주로 해결해야 하는 문제는 "갱신 손실"이다. 갱신 손실을 해결하기 위한 두가지 방법이 있다. Optimistic Lock(낙관적 잠금) 세션1이 데이터를 읽어 왔더라도 다른 세션인 세션2도 해당 데이터에 자유롭게 접근할 수 있다. 하지만 세션2가 Wr..
Spring Data JPA란? 스프링에서 JPA를 쉽게 사용할 수 있도록 지원해주는 모듈이다. CRUD 쿼리를 짜려면 하나의 도메인마다 반복되는 코드를 JPQL로 짜주어야했다. 하지만 Spring Data JPA를 의존성으로 주입받아 사용하게 된다면 우리가 일반적으로 사용하는 모든 메서드(쿼리)를 직접 작성하지 않아도 인터페이스만 만들어 놓는다면 대신 만들어준다. 인터페이스에서 공통으로 제공되는 메서드의 예시는 count, delete, deleteAll, deleteAll, deleteById, existsById, findById, findAll,save ..등이 있다. Spring Data JPA의 동작과정을 보자. Spring Data JPA가 JpaRepository를 확장한 Repositor..
JPA란? Java Persistence API 의 줄임말로 자바 진영 ORM 기술의 표준이다. ORM 이란? Object-relational mapping(객체 관계 매핑)으로 객체는 객체대로 설계하고 RDB는 RDB로 설계를 한 후 ORM 프레임워크가 중간에서 DB과 객체를 매핑해준다. 객체 지향적으로 설계할 수 있다는 장점이 생긴다. JPA는 java 애플리케이션과 JDBC사이에서 동작한다. 직접 JDBC를 컨트롤하는 것이 아닌 JPA가 JDBC API를 사용해 SQL 을 호출해서 DB와 동작한다. (JPA가 JDBC를 나 대신 sql을 작성해준다) JPA는 인터페이스의 모음이다. 구현체로 하이버네이트, EclipseLink, DataNucleus를 가지고 있고 8~90%가 하이버네이트이다. 왜 J..