강의

멘토링

로드맵

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

blackhole124님의 프로필 이미지
blackhole124

작성한 질문수

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

5-5. JPA 와 N+1 문제 - 이력서

API 별 실행 쿼리 모니터링 구현 질문 있습니다.

작성

·

17

0

1. 현재 학습 진도

  • 몇 챕터/몇 강을 수강 중이신가요?

     

  • 여기까지 이해하신 내용은 무엇인가요?

 

2. 어려움을 겪는 부분

  • 어느 부분에서 막히셨나요?

  • 코드의 어떤 로직이 이해가 안 되시나요?

  • 어떤 개념이 헷갈리시나요?

 

3. 시도해보신 내용

  • 문제 해결을 위해 어떤 시도를 해보셨나요?

  • 에러가 발생했다면 어떤 에러인가요?

  • 현재 작성하신 코드를 공유해주세요

 

 

안녕하세요 강의 잘 보고 있습니다.

 

저는 강의를 보고 아래와 같이 이해를 했습니다.

1.API 별 실행 쿼리 모니터링 구현

2.그러면, 모든 api 엔드포인트에 대한 쿼리 min , max값을 알 수 있음.

 

질문1

근데, 그렇게 되면 실제로 서비스에 필요한 코드와 모니터링 코드가 불필요하게 섞이는 거 아닌가요?

 

왜냐하면, 실제 모니터링이라고 하면 서버를 유지보수할 때, 필요한 데이터를 실시간으로 받아와서 시각화한다는 것으로 이해를 했습니다.

 

그런데 "API 별 실행 쿼리 모니터링 구현"은 서버의 유지보수에 필요한 모니터링 기능이 아니라,

 

1번만 딱 실행되면 되는데 이 부분이 왜 모니터링 구현으로 분류가 되는지 잘 모르겠습니다!

 

질문2

API 별 실행 쿼리 모니터링 구현 부분에서,

실무에서도 "API 별 실행 쿼리 모니터링을 구현"해서 사용하는게 맞나요?

 

잘은 모르겠지만, 쿼리 분석이나 다른 방법이 있을 것 같은데 왜 이 부분이 서비스 코드 내에 포함을 시키면서까지 모니터링의 영역으로 분류가 되는지 잘 모르겠습니다 !

 

질문3

만약에 실무에서는 해당 방법을 잘 사용하지 않는다면 API 별 실행 쿼리 횟수를 보통 어떤 식으로 측정을 하는건가요???

 

감사합니다 !

 


 

 

이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다!

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. blackhole124님.

API 실행 쿼리 모니터링에 대한 고민을 하고 계신 것 같습니다. 백엔드 성능 모니터링 및 쿼리 분석은 매우 중요한 주제이며, 다양한 방법으로 접근할 수 있습니다. 질문에 대한 답변을 드리겠습니다.

질문 1: 실제 서비스 코드와 모니터링 코드의 분리

API별 실행 쿼리를 모니터링하는 것은 성능 개선을 위한 중요한 작업입니다. 그러나 실제 서비스 코드에 모니터링 코드를 포함시키면 코드가 복잡해질 수 있는 우려가 있습니다. 그래서 대부분의 경우, 로깅 프레임워크나 APM(Application Performance Management) 도구를 사용하여 모니터링 기능을 통합합니다. 예를 들어, Spring Boot에서는 Actuator를 사용하여 다양한 모니터링 엔드포인트를 제공할 수 있습니다. 이 방식은 모니터링과 비즈니스 로직을 분리하여 코드의 가독성과 유지보수성을 높입니다.

질문 2: 실무에서의 API별 쿼리 모니터링 구현

실무에서 API별 쿼리 모니터링은 일반적으로 APM 도구나 데이터베이스 모니터링 도구를 통해 이루어집니다. 대표적인 APM 도구로는 New Relic, Datadog, AppDynamics 등이 있으며, 이러한 도구는 쿼리 성능 및 호출 횟수를 모니터링하고 성능 개선에 필요한 데이터를 제공합니다. 이러한 솔루션들은 코드 외부에서 동작하며, 개발자는 모니터링 설정만 해두면 되므로 코드의 복잡성을 늘리지 않고도 모니터링이 가능합니다.

질문 3: 실무에서의 쿼리 횟수 측정 방식

실무에서는 데이터베이스 측에서 제공하는 도구나 쿼리 로깅 기능을 활용하여 쿼리 횟수와 성능을 측정합니다. MySQL의 경우 EXPLAIN 명령어나 slow query log를 활용할 수 있으며, 이는 애플리케이션 코드와 독립적으로 데이터를 수집해줍니다. 또한, 데이터베이스드 대시보드 모니터링 도구나 클라우드 서비스의 모니터링 도구를 사용하여 쿼리 성능을 모니터링할 수 있습니다.

이런 방법론을 차용하면 모니터링 코드가 실제 비즈니스 코드와 분리되어 유지보수성을 높일 수 있습니다. 해당 주제에 대해 더 깊이 이해하시는데 도움이 될만한 자료는 다음 링크에서 찾으실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

blackhole124님의 프로필 이미지
blackhole124

작성한 질문수

질문하기