작성
·
17
0
몇 챕터/몇 강을 수강 중이신가요?
여기까지 이해하신 내용은 무엇인가요?
어느 부분에서 막히셨나요?
코드의 어떤 로직이 이해가 안 되시나요?
어떤 개념이 헷갈리시나요?
문제 해결을 위해 어떤 시도를 해보셨나요?
에러가 발생했다면 어떤 에러인가요?
현재 작성하신 코드를 공유해주세요
안녕하세요 강의 잘 보고 있습니다.
저는 강의를 보고 아래와 같이 이해를 했습니다.
1.API 별 실행 쿼리 모니터링 구현
2.그러면, 모든 api 엔드포인트에 대한 쿼리 min , max값을 알 수 있음.
질문1
근데, 그렇게 되면 실제로 서비스에 필요한 코드와 모니터링 코드가 불필요하게 섞이는 거 아닌가요?
왜냐하면, 실제 모니터링이라고 하면 서버를 유지보수할 때, 필요한 데이터를 실시간으로 받아와서 시각화한다는 것으로 이해를 했습니다.
그런데 "API 별 실행 쿼리 모니터링 구현"은 서버의 유지보수에 필요한 모니터링 기능이 아니라,
1번만 딱 실행되면 되는데 이 부분이 왜 모니터링 구현으로 분류가 되는지 잘 모르겠습니다!
질문2
API 별 실행 쿼리 모니터링 구현 부분에서,
실무에서도 "API 별 실행 쿼리 모니터링을 구현"해서 사용하는게 맞나요?
잘은 모르겠지만, 쿼리 분석이나 다른 방법이 있을 것 같은데 왜 이 부분이 서비스 코드 내에 포함을 시키면서까지 모니터링의 영역으로 분류가 되는지 잘 모르겠습니다 !
질문3
만약에 실무에서는 해당 방법을 잘 사용하지 않는다면 API 별 실행 쿼리 횟수를 보통 어떤 식으로 측정을 하는건가요???
감사합니다 !
이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. blackhole124님.
API 실행 쿼리 모니터링에 대한 고민을 하고 계신 것 같습니다. 백엔드 성능 모니터링 및 쿼리 분석은 매우 중요한 주제이며, 다양한 방법으로 접근할 수 있습니다. 질문에 대한 답변을 드리겠습니다.
API별 실행 쿼리를 모니터링하는 것은 성능 개선을 위한 중요한 작업입니다. 그러나 실제 서비스 코드에 모니터링 코드를 포함시키면 코드가 복잡해질 수 있는 우려가 있습니다. 그래서 대부분의 경우, 로깅 프레임워크나 APM(Application Performance Management) 도구를 사용하여 모니터링 기능을 통합합니다. 예를 들어, Spring Boot에서는 Actuator를 사용하여 다양한 모니터링 엔드포인트를 제공할 수 있습니다. 이 방식은 모니터링과 비즈니스 로직을 분리하여 코드의 가독성과 유지보수성을 높입니다.
실무에서 API별 쿼리 모니터링은 일반적으로 APM 도구나 데이터베이스 모니터링 도구를 통해 이루어집니다. 대표적인 APM 도구로는 New Relic, Datadog, AppDynamics 등이 있으며, 이러한 도구는 쿼리 성능 및 호출 횟수를 모니터링하고 성능 개선에 필요한 데이터를 제공합니다. 이러한 솔루션들은 코드 외부에서 동작하며, 개발자는 모니터링 설정만 해두면 되므로 코드의 복잡성을 늘리지 않고도 모니터링이 가능합니다.
실무에서는 데이터베이스 측에서 제공하는 도구나 쿼리 로깅 기능을 활용하여 쿼리 횟수와 성능을 측정합니다. MySQL의 경우 EXPLAIN 명령어나 slow query log를 활용할 수 있으며, 이는 애플리케이션 코드와 독립적으로 데이터를 수집해줍니다. 또한, 데이터베이스드 대시보드 모니터링 도구나 클라우드 서비스의 모니터링 도구를 사용하여 쿼리 성능을 모니터링할 수 있습니다.
이런 방법론을 차용하면 모니터링 코드가 실제 비즈니스 코드와 분리되어 유지보수성을 높일 수 있습니다. 해당 주제에 대해 더 깊이 이해하시는데 도움이 될만한 자료는 다음 링크에서 찾으실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.