"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 개발자에서 검토자까지: 데이터베이스 쿼리 검토를 위한 주니어 개발자 체크리스트

개발자에서 검토자까지: 데이터베이스 쿼리 검토를 위한 주니어 개발자 체크리스트

2024-11-08에 게시됨
검색:659

개발자로서 기능적일 뿐만 아니라 성능에 최적화된 고품질 코드를 제공하는 것이 중요합니다. 개발자 분야에서 3년 동안 저는 실무 개발자에서 리뷰어 역할로 전환했습니다. 제가 검토하는 동안 중점을 둔 주요 영역 중 하나는 데이터베이스 쿼리 최적화입니다.

왜 데이터베이스 쿼리에 중점을 두나요?
데이터베이스 쿼리는 애플리케이션 성능에 큰 영향을 미칠 수 있습니다. 잘 작성된 쿼리는 데이터를 효율적으로 가져올 수 있는 반면, 잘못 작성된 쿼리는 과도한 데이터베이스 적중으로 이어져 전체 시스템 속도를 저하시킬 수 있습니다. 주니어 개발자라면 코드 검토 중에 이러한 쿼리의 성능을 평가하는 방법이 궁금할 것입니다. 제가 꼭 체크해야 할 체크리스트는 다음과 같습니다.

데이터베이스 쿼리 검토를 위한 체크리스트

  1. 데이터베이스 조회 수:

    • 첫 번째 단계는 코드 조각으로 생성된 데이터베이스 히트 수를 확인하는 것입니다. 데이터베이스에 대한 각 적중으로 인해 대기 시간이 추가될 수 있으므로 적중 횟수가 적을수록 일반적으로 성능이 향상됩니다.
    • 프로 팁: Django의 Connection.queries 및 Reset_queries를 사용하여 실행된 쿼리 수와 각 쿼리에 소요된 시간을 추적하세요. 예를 들어: From Developer to Reviewer: A Junior Developer
  2. 조회수 감소:

    • 히트 횟수를 알고 나면 다음 단계는 히트 횟수를 줄일 수 있는지 확인하는 것입니다. 쿼리를 최적화하거나 여러 쿼리를 하나로 결합하면 데이터베이스 적중률을 줄일 수 있는 경우가 많습니다.
    • 주요 기술:
      • 느린 로딩과 빠른 로딩: 쿼리가 평가되는 시점을 이해합니다. 지연 로딩은 데이터가 실제로 필요할 때까지 쿼리를 지연하지만 이로 인해 N 1 쿼리 문제가 발생할 수 있습니다. select_관련 또는 prefetch_관련을 사용하는 즉시 로드는 단일 쿼리로 관련 개체를 가져오므로 총 적중 횟수가 줄어듭니다.
      • 조인: 관련 테이블의 데이터가 필요한 경우 조인 쿼리 사용을 고려하세요. Django의 select_관련(외래 키 관계용) 및 prefetch_관련(다대다 또는 역외래 키 관계용)이 여기에 있습니다.
  3. 중복 쿼리 방지:

    • 동일한 쿼리가 여러 번 실행되는 중복 쿼리를 확인하세요. 이는 결과를 캐시하거나 코드를 재구성하여 방지할 수 있는 경우가 많습니다.
    • 예: 루프 내에서 관련 개체를 쿼리하는 대신 루프 전에 모든 관련 개체를 한 번 가져옵니다.
  4. 메모리 고려 사항:

    • 데이터베이스 적중 횟수를 줄이는 것이 중요하지만 메모리 사용량도 고려하세요. 대규모 데이터 세트를 메모리에 로드하면 애플리케이션 속도가 느려지거나 충돌이 발생할 수 있습니다. 필요한 기록/데이터만 가져오는 것을 목표로 하세요.

결론
성능을 위해 데이터베이스 쿼리를 검토하는 것은 시간과 경험을 통해 발전하는 기술입니다. 주니어 개발자로서 데이터베이스 적중 횟수를 계산하고 이를 줄이는 방법을 찾는 등 기본 사항에 집중하는 것부터 시작하세요. Connection.queries, Reset_queries 및 Django의 ORM 기능과 같은 도구는 이 프로세스에서 매우 중요합니다. 시간이 지남에 따라 코드를 보는 것만으로도 성능 문제를 발견하는 직관을 개발하게 될 것입니다. 그때까지는 여기에서 설명하는 도구와 기술을 참고하세요.

추가 팁:

  1. 실행 계획 이해: ORM 쿼리로 생성된 SQL 실행 계획을 이해하여 더 깊이 알아보세요. SQL의 EXPLAIN과 같은 도구는 데이터베이스 엔진이 쿼리를 실행하는 방식을 이해하는 데 도움이 되며 잠재적인 최적화에 대한 통찰력을 제공할 수 있습니다.

초보 개발자를 위한 팁:
다른 사람의 코드 검토를 시작하기 위해 시스템의 모든 흐름을 알 필요는 없습니다. 코드 품질 및 최적화와 같은 작은 사항을 검토하는 것부터 시작하세요. 첫 번째 단계부터 시작하여 기본에 집중하면 결국에는 훌륭한 리뷰어가 될 것입니다.
또한, 검토할 때 거만하게 대하기보다는 정중하고 도움이 되는 의견을 제시하도록 노력하십시오. 목표는 단순히 실수를 지적하는 것이 아니라 코드를 개선하고 팀을 돕는 것임을 기억하세요.

릴리스 선언문 이 글은 https://dev.to/aman-giri/from-developer-to-reviewer-a-junior-developers-checklist-for-reviewing-database-queries-4kdm?1 에서 재현됩니다. 침해 내용이 있는 경우 , [email protected]로 문의해주세요.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3