[Logging] 로그 출력을 효율적으로 생성 및 추적하기 7편 - Spring AOP
·
Spring/Logging
Spring AOP수 많은 문제점을 거쳐서 드디어 결론에 도달했다... 결국에는 Spring에서 제공하는 AOP의 동작방식과 강력한 지원 기능에 대해 설명하려고 달려왔던것 같았다 ㅎㅎ처음 다뤘던 내용과 같이 애플리케이션의 비즈니스 로직은 핵심 기능과 부가 기능으로 분리할 수 있다.핵심 기능은 도메인의 객체가 수행하는 고유의 기능이다.부가 기능은 핵심 기능을 보조하기위해 제공하는 기능이다. 예를 들어서 로그 추적 로직, 트랜잭션 기능 등이 이에 해당된다.핵심 기능은 각 객체의 고유 기능이기에 중복적인 수행이 아니지만, 부가 기능은 동일한 기능을 수행하기 때문에 각 도메인마다 중복되는 기능이 수행된다.객체지향적인 코드를 짜기 위해서는 중복된 내용은 하나의 추상화를 통해 공통적으로 사용할 수 있는 하나의 객체..
[Logging] 로그 출력을 효율적으로 생성 및 추적하기 2편
·
Spring/Logging
Logging Trace V2목차TraceV2TraceId에서 추가된 메서드TestControllerService결과문제점TraceV2V2에서는 beginSync() 메서드를 호출하여 TraceId 값을 일관적으로 사용할 수 있도록 동기화하고 depth를 설정해준다.@Slf4j@Componentpublic class TraceV2 { private static final String START_PREFIX = "-->"; private static final String END_PREFIX = "TraceId에서 추가된 메서드public TraceId createNextId() { return new TraceId(traceId, level + 1);} Test이전과 다른 점..
[Logging] 로그 출력을 효율적으로 생성 및 추적하기 1편
·
Spring/Logging
Loggin에 TraceId를 부여하여 추적을 쉽게 만들기목차요구 사항TraceID 클래스TraceStatus 클래스TraceV1TestControllerService결과문제점우선 내 로그 기록을 살펴보면서 어떤 개선이 필요한지 찾아보자select u1_0.uuid,u1_0.account_status,u1_0.address1,u1_0.address2,u1_0.birthday,u1_0.birthyear,u1_0.email,u1_0.fcm_token,u1_0.mapx,u1_0.mapy,u1_0.mate_mate_uuid,u1_0.name,u1_0.nickname,u1_0.owner_uuid,u1_0.password,u1_0.phone_number,u1_0.profile_image,u1_0.role,u1_0...