Connect with us

사상 리더

AI 코드 리뷰 для SQL: 경험이 풍부한 DBA의 눈은 대체할 수 있는가?

mm
A widescreen, photorealistic photograph captures a programmer working in a modern office at night. On the primary curved, transparent monitor, a complex SQL code review flowchart is visualized using glowing icons and diagrams. The screen contrasts 'Generic Code Flow' on the left with specialized database context on the right, connecting abstract representations of Schema Design, Data Distribution, and Real-time Workload. A human hand holds a stylus, emphasizing the hybrid collaboration between AI analysis and human DBA expertise.

인공지능은 빠르게 소프트웨어 개발 생명 주기의 거의 모든 단계에 침투하고 있다. 코드 생성에서 자동화된 테스트까지, AI 도구는 개발자의 일상적인 워크플로에 점점 더 많이 포함되고 있다. 최근 개발자 설문조사에 따르면, 84%의 개발자가 이미 AI 도구를 사용하거나 사용할 계획이며, 그 중 절반 이상이 정기적으로 사용하고 있다.

많은 엔지니어링 팀이 지금 묻고 있는 질문은 간단하다: 코드를 생성하고, 패턴을 분석하고, 최적화를 제안할 수 있는 AI는 또한 경험이 풍부한 DBA의 판단을 대체할 수 있는가?

간단한答案은 아니오이다. 하지만 더 흥미로운 현실은 AI가 이미 SQL 리뷰의 방식을 변革하고 있다는 것이다. AI는 데이터베이스 전문가를 대체하는 것이 아니라 개발 워크플로를 그들 주변에서 재구성하기 시작했다.

전통적인 DBA 코드 리뷰의 역할

오랜 시간 동안, SQL 코드 리뷰는 경험이 풍부한 DBA에 의존해 왔다. SQL에 대한 중요한 점은, 그것은 독자적으로 실행되지 않는다는 것이다. 모든 쿼리는 데이터베이스 엔진, 인덱스, 라이브 데이터에 영향을 미친다. 그래서 쿼리에서 작은 변경은 실행에 큰 영향을 미칠 수 있다.

그리고 때때로, 그런 작은 변경은 생각보다 더 중요할 수 있다. 하나의 나쁜 쿼리는 전체 테이블 스캔을 유발하고, 잘못된 인덱스를 선택하고, 시스템 전체가 느려질 수 있다.

그것이为什么 DBA가 SQL을 다르게 본다. 그들은 단순히 쿼리를 읽지 않고, 실제 트래픽에서 데이터베이스가 어떻게 작동할지 생각한다. 리뷰过程에서, DBA는 일반적으로 다음과 같은 것을 확인한다:

  • 비효율적인 조인 또는 깊게 중첩된 쿼리.
  • 누락되거나 잘못 사용된 인덱스.
  • 전체 테이블 스캔을 트리거하는 쿼리.
  • 다른 트랜잭션을 차단할 수 있는 잠금 위험.
  • 프로덕션 워크로드에 영향을 미칠 수 있는 작업.

하지만 이러한 리뷰의 실제 가치는 단순히 SQL 구문을 아는 것이 아니다. 그것은 쿼리 뒤에 있는 시스템을 아는 것이다.

경험이 풍부한 DBA는 일반적으로 스키마가 시간의 경과에 따라 어떻게 진화했는지, 피크 시간 동안 트래픽이 어떻게 행동하는지, 인덱스에 대한 작은 변경이 실행 계획에 어떻게 영향을 미치는지 알고 있다. 종이 위에서는 완벽하게 보이는 쿼리가 실제 프로덕션 데이터에서 매우 다르게 작동할 수 있다.

대규모 시스템에서 일하는 엔지니어들은 이 문제에 대해 자주 이야기한다. Google의 엔지니어 Jeff Dean은 시스템이 대규모로 작동할 때 우리가 예상하는 대로 작동하지 않는다고 말했다.

John Gall은 유명하게 말했듯이, “복잡한 시스템은 무수히 많은 방식으로 실패할 수 있다.”

이러한 아이디어는 모두 대규모 시스템이 주의 깊은 인간의 감시를 필요로 하는 이유를 보여준다. AI가 참여하는 동안, 경험이 풍부한 DBA는 여전히 매우 중요하다. 그들은 단순히 쿼리를 읽지 않고, 전체 데이터베이스 시스템이 어떻게 반응할지 예상한다.

하지만 이러한 경험의 필요성에 대해, 당신은 “AI가 실제로 이러한 리뷰에 도움이 될 수 있나, 아니면 그것들이 어떻게 수행되는지 변경할 수 있나?”라고 궁금해할 수 있다.

소프트웨어 개발에서 AI의 부상

과거 몇 년 동안, AI는 소프트웨어 개발의 방식을 변화시키기 시작했다. 실험적인 것으로 느껴졌던 것이 이제 일상적인 작업의 일부가 되고 있다.

대규모 코드베이스에서 훈련된 대규모 언어 모델은 이제 편집기 내에서 두 번째 개발자처럼 작동할 수 있다. 함수를 제안하고, 문서를 작성하고, 코드를 작성하는 동안 버그를 가리킨다. GitHub Copilot과 같은 도구는 이미 많은 개발 워크플로에 빠르게 포함되었다.

그리고 이러한 변화는 이미 측정할 수 있는 영향을 미치고 있다. 일부 연구에 따르면, AI 어시스턴트를 사용하는 개발자는 제어된 환경에서 최대 55% 빠르게 코딩 작업을 완료할 수 있다. 팀이 이러한 도구를 채택함에 따라, AI는 코드가 처음부터 작성되는 방식을 영향하기 시작했다. 일부 추정에 따르면, 현대적인 워크플로에서 약 40%의 코드는 어느 정도의 AI 지원을 포함한다.

대규모 기술 회사들도 같은 패턴을 보이고 있다. Microsoft의 CEO인 Satya Nadella는 최근에 Microsoft의 코드 중 약 30%가 이제 AI 도구의 도움으로 작성되고 있으며, 이 숫자는 계속 증가하고 있다고 말했다.

그러나 코드를 생성하는 것은 퍼즐의 한 조각일 뿐이다. AI가 더 많은 코드를 생성함에 따라, 그 코드가 어떻게 리뷰되는지에 대한 질문이 더욱 중요해진다.

AI가 SQL 코드 리뷰를 개선할 수 있는 곳

이것이 AI가 실제로 가치 있는 곳이다. SQL에는 AI가 선호하는 패턴이 있다. 대부분의 쿼리는 인식 가능한 구조를 따르며, 많은 성능 문제는 예측 가능한 방식으로 나타난다. 따라서 대규모 SQL 쿼리 컬렉션에서 훈련된 AI 시스템은 쿼리를 매우 빠르게 스캔하고 개발자가 초기 개발 중에 종종 놓치는 문제를 발견할 수 있다.

예를 들어, AI 어시스턴트는 다음과 같은 것을 가리킬 수 있다:

  • 비효율적인 조인 패턴.
  • 누락되거나 잘못 사용된 인덱스.
  • 전체 테이블 스캔을 트리거할 가능성이 있는 쿼리.
  • 잠재적인 성능 병목 현상.
  • 프로덕션에서 실행하기에 안전하지 않은 작업.

이러한 확인은 전체 리뷰를 대체하지 않는다. 그러나 초기에 많은 문제를 잡을 수 있다. 그리고 그것이 SQL 개발이 어떻게 일어나는지 변경한다. 더 이상 쿼리를 작성하고 나중에 코드 리뷰를 기다리지 않아도 된다. 개발자는 코드를 작성하는 동안 피드백을 받을 수 있다. 이러한 초기 피드백 루프는 많은 시간을節約할 수 있다. AI 지원 개발에 대한 일부 연구에 따르면, 자동 분석이 도입되면 리뷰 사이클이 크게 감소할 수 있다. 한 엔터프라이즈 연구에 따르면, 풀 리퀘스트 리뷰 시간이 약 31.8% 감소했다.

실제로 이것은 많은 SQL 문제가 프로덕션 시스템에 도달하기 전에 초기에 잡히게 된다. 이것은 현대적인 SQL 개발 도구가 진화하기 시작하는 곳이다. dbForge 생태계 내의 도구는 예를 들어, 더好的 조인, 불필요한 인덱스를 감지하고, 쿼리 구조에 대한 팁을 제공할 수 있는 AI 지원 쿼리 분석을 포함한다. 그리고 당신이 아직 코드를 작성하는 동안에 그것을 잡을 수 있다.

하지만 우리가 더 넓은 관점에서 본다면, AI는 여전히 한계가 있다.

데이터베이스 엔지니어링에서 AI의 한계

尽管 AI는驚人的 발전을 이루었지만, 여전히 데이터베이스 엔지니어링에서 가장 어려운 부분 중 하나인 컨텍스트를 다루는 데 어려움을 겪고 있다. SQL 쿼리는 거의孤立적으로 작동하지 않는다. 그들의 성능은 시스템 내의 많은 요인에 의존한다. 예를 들어:

  • 데이터 분포
  • 테이블 크기
  • 기존 인덱스
  • 병렬 워크로드
  • 하드웨어 제약
  • 비즈니스 특정 논리

일반 데이터셋에서 훈련된 AI 모델은 이러한 현실에 대한 가시성을 thường적으로欠如한다. 더욱 우려되는 것은, AI 생성 코드가 미묘한 오류를 도입할 수 있다. 최근 분석에 따르면, AI 생성 코드 샘플의 최대 45%가 보안 결함을 포함하고 있어, 자동 제안에 대한 인간의 리뷰 없이頼る 위험을 강조한다.

신뢰는 또 다른 도전이다. 채택이 급격히 증가하고 있지만, 설문조사에 따르면 46%의 개발자가 아직 AI 생성 출력을 완전히 신뢰하지 않는다. 이것은 자동화와 감시 사이에 자연적인 긴장을 생성한다. 데이터베이스 엔지니어링에서, 이러한 회의는 정당화된다. 개발 환경에서 완벽하게 작동하는 쿼리는 프로덕션 워크로드에서 매우 다르게 작동할 수 있다. 이것은 경험이 풍부한 DBA가 여전히 필수적인 곳이다.

하이브리드 모델: AI + 인간 전문지식

가장 효과적인 개발 팀은 AI가 DBA를 대체할 수 있는지 묻지 않는다. 대신, 그들은 어떻게 AI 자동화와 인간 전문지식을 결합할 수 있는지 묻고 있다. 이 모델에서, AI 도구는 개발을 느리게 하는 반복적인 확인을 처리한다. 그리고 경험이 풍부한 엔지니어들은 데이터베이스 작업의 더 깊은 부분에 집중한다. 예를 들어, AI 시스템은 다음과 같은 작업을 수행할 수 있다:

  • 구문 오류 감지
  • 쿼리 개선 제안
  • 비효율적인 쿼리 패턴 플래그
  • 자동 분석 확인 실행

이러한 확인은 개발자가 쿼리를 작성하는 동안 즉시 발생할 수 있다. 그리고 많은 문제를 초기에 잡을 수 있다. AI가 이러한 루틴 확인을 처리하는 동안, DBA는 시스템 이해가 더 필요한 작업에 집중한다. 예를 들어, 스키마 설계, 인덱스 전략, 성능 튜닝, 용량 계획, 프로덕션 안정성 보호 등이다.

다시 말해서, AI는 SQL 개발의 루틴 부분을 가속화하는 데 집중한다. 그리고 DBA는 데이터베이스 시스템이 실제로 어떻게 작동하는지 결정하는 결정에 집중한다.

마지막 단어

AI는 이미 SQL 개발이 어떻게 작동하는지 변경하고 있다. 도구는 쿼리를 즉시 분석하고, 일반적인 오류를 잡고, 개발자가 코드를 작성하는 동안 잠재적인 성능 문제를 강조할 수 있다. 그러나 데이터베이스 시스템은 쿼리 구문보다 더 많은 것을 포함한다. 스키마 설계, 인덱싱 전략, 워크로드 동작은 여전히 인간의 판단을 필요로 한다. इसलिए, 가장 효과적인 팀은 AI를 대체하는 것이 아니라 공동 작업자로서 다루기 시작했다.

AI는 문제를 초기에 잡고 개발을 가속화할 수 있다. 개발자는 더 빠르게 반복할 수 있다. 그리고 DBA는 데이터베이스가 실제로 어떻게 작동하는지 결정하는 더 깊은 결정에 집중할 수 있다. 이러한 균형은 실제 가치가 나타나는 곳이다. AI는 속도와 패턴 인식을 제공한다. 경험이 풍부한 DBA는 컨텍스트와 판단력을 제공한다. 그리고 데이터베이스 엔지니어링에서, 이러한 조합은 시스템을 빠르고, 신뢰할 수 있고, 안정적으로 유지하는 데 필요한 것이다.

Viсtor Horlenko는 Devart의 AI 혁신 책임자로서, 회사의 데이터베이스 관리 및 커넥티비티 도구 모음 전체에 걸쳐 AI 기반 자동화, 제품 최적화, 고객 경험과 관련된 이니셔티브를 주도합니다.