
SQL 로깅 설정실행 환경Spring Boot 3.4.1Spring Data JPA 3.4.1Hibernate 6.6.4 Hibernate SQL 로깅 활성화 & 예쁘게 출력하기Hibernate의 SQL 로깅을 활성화하려면 application.yaml에 아래 설정을 하면 된다.spring: jpa: properties: hibernate: show-sql: true # SQL 출력 format_sql: true # SQL 포맷팅 highlight_sql: true # SQL 하이라이팅hibernate.show_sqltrue로 설정 시 SQL을 콘솔에 출력hibernate.format_sqltrue로 설정시 SQL을 포맷팅hibernate.highli..
Retry가 사용되는 경우외부 서비스에 데이터를 조회할 때, 잠시 서버에 문제가 생기거나 네트워크 오류로 응답을 받지 못할 때가 있다. 이런 경우 다시 요청을 하면 응답을 받을 수 있는 확률이 높기 때문에 재시도를 한다.Retry 정책SimpleRetryPolicy예외 집합에 대해 고정된 횟수만큼 재시도하는 정책maxAttempts를 명시하지 않을 경우, 기본 최대 3번까지 재시도RetryTemplate.builder() .maxAttempts(5) // 최대 5번까지 재시도 .retryOn(TimeoutException::class.java) .build()BackOff 정책Backoff 정책delaymaxDelaymultiplierrandom..

프록시 기반의 AOP 스프링에서 AOP를 학습할 때 프록시 기반의 AOP란 말을 한 번쯤은 들어봤을 것이다. 현재 스프링은 프록시 기반의 AOP를 구현할 때 CGLIB를 사용하는데, 핵심은 런타임시 프록시 객체를 생성하는 다이나믹 프록시다. 도대체 프록시는 무엇이고, Java의 리플렉션을 사용한 JDK 다이나믹 프록시, CGLIB의 MethodProxy를 사용한 다이나믹 프록시가 어떤 차이가 있는지 알아보자. 프록시 패턴 프록시(Proxy)는 '대리', '중계' 라는 의미다. 클라이언트는 타겟에게 요청을 보내지만 실제로는 프록시가 요청을 대신 받는다. 실제 요청을 수행하는 타겟의 기능은 프록시 손에 달렸다. 위임해서 기능을 수행할 수도 있고, 위임하지 않고 클라이언트에게 다른 응답을 줄 수도 있다. 실제..
AOP (Aspect Oriented Programming) 들어가며 공통 관심사항(cross cutting concern) vs 핵심 관심사항(core concern) 분리 핵심 기능에 부가 기능(ex. 호출 시간 측정, 트랜잭션)을 추가했다. 핵심 기능을 담당하는 코드에서 흩어져 나타나는 부가 기능 코드는, 말 그대로 부가적이기 때문에 적용이 되는 대상(Target)이 있어야 의미가 있다. 두 기능을 무조건 분리하기가 애매하다. 부가 기능을 여러 메소드에서 공통으로 사용한다고 해보자. 부가 기능 코드가 중복된다. 요구사항이 변경되서 부가 기능 코드를 수정해야 한다. 여러 메소드에서 사용한 부가 기능 코드를 일일히 수정해야 한다. 위 상황에서 하나의 관심, 핵심 비즈니스 로직에만 집중하는 단일 책임의 ..
IoC 제어의 역전(Inversion of Control)? 나 자신이 제어권을 가지고 있지 x, 나 이외의 누군가가 의존성에 대한 제어권을 가지고 있다. 어떤 객체가 사용하는 의존 객체를 직접 만들어서 사용하는게 아니라 주입 받아서 사용하는 것을 말한다. 1. 의존성에 대한 제어권 일반적인 경우 "내가 쓸 놈은 내가 만들어 쓸게" class OwnerController { private OwnerRepository repository = new OwnerRepository(); } OwnerController가 OwnerRepository를 생성한다. 의존성에 대한 제어권 => 본인(OwnerController) IoC : 역전된 경우 "내가 쓸 놈은 이 놈인데... 누군가 알아서 주겠지" class ..
- Total
- Today
- Yesterday
- 쿼리 파라미터 바인딩
- 도메인구성요소
- AOP
- TCP연결
- spring boot3 쿼리 로그
- http커넥션
- github actions 구성요소
- github actions components
- 콜레이션
- csv to bean
- csv 라이브러리
- opencsv
- 4Way Handshake
- file
- 이모지입력오류
- 문자집합변경
- mysql 이모지
- jpa 쿼리 로그
- utf8mb3
- mysql 온라인 ddl
- hibernate 쿼리 로그
- tcp커넥션
- 엔티티와값객체
- 코프링
- github actions 기초
- read timeout
- spring retry
- CGLIB프록시
- 콜레이션변경
- online ddl
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |