250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- AWS
- 이펙티브 자바
- 알고리즘분석
- 기술면접
- SQL쿡북
- react
- 자바예외
- 인프런김영한
- 도메인 주도 개발 시작하기
- vue.js
- java
- 자바
- AWS RDS
- MariaDB
- 스프링부트와AWS로혼자구현하는웹서비스
- 알고리즘
- 네트워크
- mysql
- DDD
- 혼공SQL
- aop
- CleanCode
- 이펙티브자바
- 클린코드
- 자료구조
- 인프런백기선
- 이팩티브 자바
- jpa
- 자바스터디
- 인덱스
Archives
- Today
- Total
기록이 힘이다.
[스프링 핵심 원리 고급편 ] - 로그 추적기V1 본문
728x90
TraceId 클래스
로그 추적기는 트랜잭션ID와 깊이를 표현하는 방법이 필요하다.
여기서는 트랜잭션ID와 깊이를 표현하는 level을 묶어서 'TraceId'라는 개념을 만들었다.
TraceId는 단순히 id(트랜잭션ID)와 level 정보를 함께 가지고 있다.
package hello.advenced.trace.hellotrace;
import hello.advenced.trace.TraceStatus;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class HelloTraceV1Test {
@Test
void begin_end() {
HelloTraceV1 trace = new HelloTraceV1();
TraceStatus status = trace.begin("hello");
trace.end(status);
}
@Test
void begin_exception() {
HelloTraceV1 trace = new HelloTraceV1();
TraceStatus status = trace.begin("hello");
trace.exception(status, new IllegalStateException());
}
}
참고: 이것은 온전한 테스트 코드가 아니다. 일반적으로 테스트라고 하면 자동으로 검증하는 과정이
필요하다. 이 테스트는 검증하는 과정이 없고 결과를 콘솔로직접 확인해야한다. 이렇게 응답값이 없는
경우를 자동으로 검증하려면 여러 가지 테스트 기법이 필요하다. 이번 강의에서는 예제를 최대한 단순화
하기 위해 검증 테스트를 생략했다.
> 주의: 지금까지 만든 로그추적기가 어떻게 동작하는지 확실히 이해해야 다음 단계로 넘어갈 수 있다.
복습과 코드를 직접 만들어 보면서 확실하게 본인 것으로 만들고 다음으로 넘어가자.
'SpringBoot' 카테고리의 다른 글
스프링 AOP (0) | 2023.07.14 |
---|---|
AspectJ 프레임워크 (0) | 2023.07.14 |
WebSecurityConfigurerAdapter 대체 SecurityFilterChain (0) | 2023.07.07 |
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "drop table if exists user CASCADE " via JDBC Statement (0) | 2023.07.07 |
[스프링 핵심 원리 고급편 ] - 로그 추적기 (0) | 2023.03.02 |