기록이 힘이다.

[스프링 핵심 원리 고급편 ] - 로그 추적기V1 본문

SpringBoot

[스프링 핵심 원리 고급편 ] - 로그 추적기V1

dev22 2023. 3. 4. 15:36
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());

    }
}

참고: 이것은 온전한 테스트 코드가 아니다. 일반적으로 테스트라고 하면 자동으로 검증하는 과정이 
필요하다. 이 테스트는 검증하는 과정이 없고 결과를 콘솔로직접 확인해야한다. 이렇게 응답값이 없는 
경우를 자동으로 검증하려면 여러 가지 테스트 기법이 필요하다. 이번 강의에서는 예제를 최대한 단순화 
하기 위해 검증 테스트를 생략했다.
> 주의: 지금까지 만든 로그추적기가 어떻게 동작하는지 확실히 이해해야 다음 단계로 넘어갈 수 있다. 
복습과 코드를 직접 만들어 보면서 확실하게 본인 것으로 만들고 다음으로 넘어가자.