| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Proxy
- Kafka
- c언어
- OS
- spring webflux
- 알고리즘
- IT
- JavaScript
- 운영체제
- Heap
- MySQL
- design pattern
- 디자인 패턴
- 파이썬
- redis
- Algorithm
- mongoDB
- JPA
- C
- 백준
- 자바
- Galera Cluster
- 자료구조
- Data Structure
- 네트워크
- Spring
- 컴퓨터구조
- Java
- react
- MSA
- Today
- Total
목록전체 글 (211)
시냅스
영속성 컨텍스트 persistence context 엔티티를 영구 저장하는 환경 영속성 컨텍스트는 논리적인 개념으로 눈에 보이지 않는다. 엔티티 매니저를 통해 영속성 컨텍스트에 접근한다. J2SE(일반 자바 어플리케이션 개발 툴) EntityManger 와 영속성 컨텍스트는 1:1 의 관계이다. J2EE (서버용 자바 어플리케이션 개발 툴), Spring 과 같은 컨테이너 환경 EntityManager와 영속성 컨텍스트는 N:1 의 관계이다. 엔티티의 생명주기 비영속 (new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 Member member = new Member(); member.setId("member1"); member.setUsername("회원1"); 영속 (manag..
예외와 트랜잭션 커밋, 롤백 정책 예외 발생시 스프링 트랜잭션 AOP 는 예외의 종류에 따라 트랜잭션을 커밋하거나 롤백한다. 언체크 예외인 RuntimeException, Error와 그 하위 예외가 발생하면 트랜잭션을 롤백한다. 개발자가 다루기 어려운 복구 불가능한 문제라는 판단이 이유이다. 체크 예외인 Exception과 그 하위 예외가 발생하면 트랜잭션을 커밋한다. 비즈니스 의미가 있을 때 사용한다. 클라이언트가 행동을 수정/변경한다면 예외를 회피할 수 있을 때를 의미한다. 스프링 트랜잭션 전파 트랜잭션이 각각 수행된다면 사용되는 DB 커넥션 또한 각각 다르다 로직 1에서 트랜잭션을 수행하면서 트랜잭션이 적용된 로직 2를 부른다면, 로직 1은 외부 트랜잭션, 로직 2는 내부 트랜잭션이라고 말할 수 ..
선언적 트랜잭션과 AOP 개발자는 트랜잭션 처리가 필요한 곳에 @Transactional 애노테이션만 붙여주면 된다. @Transactional 애노테이션이 특정 클래스나 메서드에 하나라도 있다면 실제 객체 대신에 트랜잭션을 처리해주는 프록시 객체가 스프링 빈에 등록된다. 스프링의 트랜잭션 AOP는 이 애노테이션을 인식해서 트랜잭션을 처리하는 프록시를 적용해준다. 위 케이스에서 tx()의 경우 프록시 객체가 호출되고 트랜잭션이 적용된다. nonTx() 는 트랜잭션이 없는 것을 확인할 수 있다. 트랜잭션은 구체적이고 자세한 것이 높은 우선순위를 가진다. e.g. 클래스 < 메서드 만약 트랜잭션이 적용되지 않은 함수 내부에서 트랜잭션이 적용된 함수를 호출한다면 트랜잭션이 적용되지 않는다. 객체.externa..