인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김행님의 프로필 이미지
김행

작성한 질문수

스프링 핵심 원리 - 고급편

로그관련 리소스에 대해서 질문이 있습니다.

해결된 질문

작성

·

265

·

수정됨

0

안녕하세요 수강 중인 실무 주니어 개발자입니다!

강의를 듣던 도중 실무에 관해서 궁금한 것이 있어서 질문드립니다.

[b7a653ac] OrderControllerV1.request()

[b7a653ac] |-->OrderServiceV1.orderItem()

[b7a653ac] | |-->OrderRepositoryV1.save()

[b7a653ac] | |<--OrderRepositoryV1.save() time=1001ms

[b7a653ac] |<--OrderServiceV1.orderItem() time=1003ms

[b7a653ac] OrderControllerV1.request() time=1005ms

 

강의 때 진행했던 방식으로 로그 추적기를 도입을 하고자 합니다.

질문은 다음과 같습니다.

  1. 실무에서 저렇게 메서드 호출을 다 나열하시는 지 궁금합니다.

  2. 저렇게 sl4j를 적용하면 메모리나 리소스 낭비가 심하지는 않는지 궁금합니다.

  3. 발생한 로그 info를 db에 적재시키는지 궁금합니다.

감사합니다.

답변 1

3

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 김행님

  1. 실무에서 저렇게 메서드 호출을 다 나열하시는 지 궁금합니다.

  2. 저렇게 sl4j를 적용하면 메모리나 리소스 낭비가 심하지는 않는지 궁금합니다.


    -> 이런 부분은 실무에서도 선택입니다. 메서드 호출을 나열하면 이슈를 빨리 찾을 수 있는 등 편리한 점이 많지만 그만큼 디스크 + 성능을 사용하게 됩니다. 본인 서비스에 트래픽이 적다면 보통 이런 문제가 크게 이슈가 되지는 않습니다. 하지만 트래픽이 매우 많다면 먼저 성능 테스트를 해보아야 합니다. 저의 경우 트래픽이 많지 않은 경우 로그를 많이 남겨두는 것을 선호합니다. 그러면 이후에 이슈가 발생했을 때 문제를 찾기 쉽기 때문입니다. 다만 트래픽이 많은 경우 성능 테스트를 통해서 적성 수준을 찾아야 합니다.

  3. 발생한 로그 info를 db에 적재시키는지 궁금합니다.


    -> 로그는 가급적 관계형 데이터베이스에 적재하는 것은 권장하지 않습니다. 관계형 데이터베이스는 중요한 비즈니스 로직을 담당해야 하는 것이고, 로그 때문에 귀중한 자원인 관계형 데이터베이스의 성능을 쓰는 것은 바람직하지 않습니다. 최악의 경우 로그 때문에 관계형 데이터베이스의 자원(성능)을 다 사용하게 되어서 문제가 될 수 있습니다. 만약 꼭 로그를 데이터베이스에 저장해야 한다면 로그를 위한 별도의 데이터베이스에 저장하는 것을 권장드립니다.



    감사합니다.

김행님의 프로필 이미지
김행
질문자

답변 감사합니다 해당 부분 고려해보고 적용하도록 하겠습니다.!!!

김행님의 프로필 이미지
김행

작성한 질문수

질문하기