POJO로 개발했는데 비즈니스 로직을 로깅해야 할 경우, 어떻게 해야 할까요?
337
投稿した質問数 14
강의 잘 듣고 있습니다!
강의 들으면서 문득 궁금한 점이 생겼는데요.
POJO로 개발했는데, 도메인 클래스 내의 비즈니스 로직을 로깅을 해야하는 경우가 실무에서 많을까요? 만약, 그런 경우가 있다면, 어떻게 해야 할지 궁금합니다. 공통된 패턴이 있다면, AOP를 사용해볼 수 있을 것 같은데, 그렇지 않은 경우, 어쩔 수 없이 도메인 모델이 로깅 프레임워크에 의존하지 않나 라는 생각이 들어서요. 로깅하고 싶은게 클래스의 메서드의 매개변수와 리턴값이 아닌 내부 로직 함수일 경우가 특히 궁금합니다. 혹시, 이런 경우는 실무에서 잘 발생하지 않아 알 필요가 없을까요?
回答 1
0
안녕하세요, 인프런 AI 인턴입니다.
serverstudymaster님의 질문에 답변 드리겠습니다.
실무에서 POJO 도메인 클래스의 비즈니스 로직 내부를 로깅하는 경우는 상당히 많습니다. 이러한 내부 로직을 로깅할 때 가장 보편적인 방법 중 하나는 AOP(Aspect-Oriented Programming)를 사용하는 것입니다. AOP를 이용하면 비즈니스 로직을 구현하는 도메인 모델이 로깅 프레임워크에 직접 의존하지 않으면서도 로깅을 할 수 있도록 외부에서 관점을 주입할 수 있습니다.
내부 로직 함수의 매개변수와 리턴값뿐만 아니라, 메서드 호출 이전이나 이후, 예외 발생 시점 등 다양한 지점에 로그를 남길 수 있는데, 이는 로깅뿐만 아니라 트랜잭션 관리, 보안 등 다양한 공통된 관심사(Cross-Cutting Concerns)를 처리하는 데에도 유용합니다.
특히, 내부 로직 로깅이 필요한 경우에는, 메서드 실행을 감싸는 형태로 AOP 어드바이스(Advice)를 구성하여 필요한 로직을 실행하게 할 수 있습니다. 이를 구현하기 위해 Spring 에서는 @Aspect 어노테이션을 사용한 AOP 구현을 제공하고 있으며, 이를 통해 비즈니스 로직 실행 전후로 원하는 로깅 로직을 삽입할 수 있습니다.
다만, 실제 코드 내에 AOP를 적용할 때는 성능과 의존성의 관리, 로깅의 범위와 같은 요소들을 고려하여 적절한 로깅 전략을 선택하는 것이 중요합니다. 너무 많은 로그는 오히려 시스템의 성능을 저하시킬 수 있으니, 로깅의 범위와 수준을 사전에 충분히 고려한 후 적용하는 것이 좋습니다.
이 내용 외에도 관련 자세한 내용은 Spring 공식 문서에서 찾아보실 수 있습니다. AOP 관련 내용은 Spring Data JDBC 문서의 용어집 섹션에 AOP(Aspect-Oriented Programming)에 대한 간략한 설명이 포함되어 있으니 참고하시면 도움이 될 것입니다.
링크: https://docs.spring.io/spring-data/jdbc/docs/current/reference/html/#glossary
도움이 되셨기를 바랍니다. 추가로 궁금한 사항이 있으시면 언제든지 질문해주세요.
POJO에서 Spring Test로 넘어갈 때 누락(해결됨)
0
33
1
DatabaseCleanup 코드입니당 필요한 분들 쓰세요
0
125
1
이 방법이 TDD가 맞나요?
0
1109
2
generate -> add Dependency 이 메뉴가 안보이던데, 어떻게 보이게할까요?
0
355
1
실무 Asserta 사용여부가 궁금합니다.
0
455
1
테스트 코드 내의 지역변수를 final로 선언하는 이유가 궁금합니다.
0
530
1
통합테스트와 단위 테스트
0
964
1
의존성 및 설계? 부분 질문드립니다.
0
400
1
테스트 더블
0
394
1
리뷰반영 강의에서 shortcut ctrl + esc 는 어떻게 설정하나요?
0
483
1
POJO
0
597
1
POJO 상품 등록 기능 구현하기 강의 질문
1
543
1
steps 클래스를 사용하는 이유
0
340
1
랜덤 포트를 사용하는 이유
0
1104
1
상품등록 API 개발, JPA로 변환하기 에서
0
875
2
패키지 구조에 대해서 궁금합니다!
0
645
1
BeforeEach 를 하위 클래스에서 다시 사용하는것에 대해서 질문 드립니다.
1
562
1
ProductService의 updateProduct 로직 질문입니다.
0
556
2
TRUNCATE TABLE 시 AUTO_INCREMENT 컬럼 1로 초기화
2
3498
1
POJO로 개발 후 스프링으로 전환, 이후 JPA 전환하는 이유
4
1283
1
TestRestTemplate 대신에 RestAssured를 사용하는 이유가 있을까요?
0
1190
1
API 테스트로 전환하기
0
1019
1
코드 스타일에 대해서 질문드립니다.
2
1138
1
혹시 강의 중에 나오는 플러그인 좀 알 수 있을까요
0
1221
1

