도구 및 통합 서비스를 사용하여 개발자 생산성 향상

완료됨

SQL Server 2025는 개발자가 데이터, 이벤트 및 API를 사용할 수 있는 기능과 도구를 제공합니다. 이 단원에서는 2025년 SQL Server 개발 기능을 다룹니다.

데이터 보강 기능 구현

SQL Server 2025는 다음과 같은 몇 가지 주요 기능을 사용하여 데이터 보강 기능을 크게 향상시킵니다.

네이티브 JSON으로 작업

SQL Server 2025에서는 향상된 네이티브 JSON 지원을 제공하여 T-SQL에서 직접 JSON을 저장, 쿼리 및 조작할 수 있습니다. 새로운 기능인 JSON_OBJECTJSON_VALUE은 반구조화된 데이터 작업을 간소화하며, 향상된 인덱싱 기능은 JSON 쿼리의 성능을 높입니다. 따라서 최신 애플리케이션에서 관계형 및 계층적 데이터를 보다 쉽게 혼합할 수 있습니다.

SQL Server JSON 지원을 통해 JSON 데이터를 기본적으로 저장하고 작업할 수 있습니다.

  • SQL Server 직접 JSON 문서 처리
  • T-SQL을 사용하여 JSON 쿼리 및 업데이트
  • 더 빠른 성능을 위해 JSON 속성 인덱싱
  • 데이터베이스 수준에서 JSON 유효성 검사
  • 엄격한 형식 적용을 위해 JSON 데이터 형식 사용

다음 예제에서는 SQL Server 2025에서 자동 유효성 검사 및 점 표기법과 함께 새 JSON 데이터 형식을 사용하여 추가 함수 없이 T-SQL에서 직접 이름 및 가격과 같은 쿼리 속성과 열에 JSON을 저장할 수 있는 방법을 보여 줍니다.

-- Create a table with a JSON column
CREATE TABLE Products (
    ProductId int PRIMARY KEY,
    ProductData JSON
);

-- Insert valid JSON data with automatic validation
INSERT INTO Products (ProductId, ProductData)
VALUES (1, '{"name": "Widget", "price": 19.99, "features": ["durable", "lightweight"]}');

-- Query JSON properties using dot notation
SELECT 
    ProductId,
    ProductData.name,
    ProductData.price
FROM Products;

팁 (조언)

데이터베이스에 ISJSON() 저장하기 전에 함수를 사용하여 JSON 데이터의 유효성을 검사합니다.

REST API 통합

SQL Server 2025에는 기본 제공 REST API 지원이 도입되어 추가 미들웨어 없이 HTTP를 통해 데이터베이스 개체와 직접 상호 작용할 수 있습니다. 개발자는 테이블, 뷰 및 저장 프로시저를 RESTful 엔드포인트로 노출하여 최신 웹 및 모바일 애플리케이션과 SQL Server 쉽게 통합할 수 있습니다. 이 기능은 보안 인증, 입력 및 출력에 대한 JSON 페이로드 및 노출되는 작업에 대한 세분화된 제어를 지원합니다. 이렇게 하면 개발 오버헤드를 줄이면서 SQL Server 백 엔드로 사용하는 경량 서비스 및 마이크로 서비스를 빌드할 수 있습니다.

REST API 작업은 데이터베이스에서 실행되어 보안을 개선하고 외부 종속성을 줄입니다.

특징 설명 예제 사용 사례
API 통합 T-SQL에서 외부 API 호출 비 Microsoft 서비스를 사용하여 데이터 보강
API 인증 관리 ID를 사용하여 API 호출 보호 Azure 서비스에 안전하게 연결
응답 처리 기본적으로 JSON/XML 응답 처리 자동으로 외부 데이터 변환
요청 관리 시간 제한 구성 및 다시 시도 신뢰할 수 있는 API 통신 보장

RegEx 작업 사용

SQL Server 2025는 T-SQL에서 정규식(RegEx)에 대한 기본 지원을 추가하여 쿼리 내에서 직접 강력한 패턴 일치 및 텍스트 조작을 가능하게 합니다. 개발자는 다음과 같은 REGEXP_MATCHESREGEXP_REPLACE새 함수를 사용하여 입력의 유효성을 검사하고 REGEXP_LIKE복잡한 패턴을 추출하며 CLR(공용 언어 런타임) 또는 외부 스크립트를 사용하지 않고 고급 문자열 변환을 수행할 수 있습니다. 이 기능은 데이터 정리, 형식 유효성 검사 및 동적 패턴 검색과 같은 작업을 간소화하여 최신 데이터 처리 시나리오에서 SQL Server 더 다양하게 만듭니다.

정규식 지원은 패턴 일치 기능을 추가합니다.

기능 목적 예시
REGEXP_MATCHES 문자열이 패턴과 일치하는지 테스트 전자 메일 형식 유효성 검사
REGEXP_REPLACE 패턴을 사용하여 텍스트 바꾸기 데이터 정리 및 표준화
REGEXP_EXTRACT 일치하는 부분 문자열 추출 구조화된 텍스트 구문 분석
REGEXP_LIKE 패턴 기반 문자열 비교 패턴을 사용하여 데이터 필터링

다음 예제에서는 SQL Server 2025가 sp_invoke_external_service 사용하여 외부 API를 직접 호출하고, 동적 데이터 및 보안 헤더를 사용하여 POST 요청을 보내고, T-SQL에서 즉시 사용하기 위해 JSON 응답을 캡처하는 방법을 보여 줍니다.

-- Call an external API to enrich customer data
DECLARE @apiResponse JSON;
EXEC sp_invoke_external_service 
    @service_name = 'CustomerEnrichment',
    @url = 'https://api.example.com/enrich',
    @method = 'POST',
    @headers = '{"Authorization": "Bearer {{azure_token}}"}',
    @request_body = '{"customerId": @customerId}',
    @response = @apiResponse OUTPUT;

다음 예제에서는 SQL Server 2025에서 REGEXP_MATCHES 같은 RegEx 함수를 사용하여 전자 메일 형식의 유효성을 검사하고 REGEXP_REPLACE 전화 번호를 표준화하여 T-SQL에서 직접 강력한 텍스트 유효성 검사 및 변환을 사용하도록 설정하는 방법을 보여 줍니다.

-- Validate email addresses using RegEx
SELECT 
    CustomerID,
    Email,
    CASE 
        WHEN Email REGEXP_MATCHES '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
        THEN 'Valid'
        ELSE 'Invalid'
    END AS EmailStatus
FROM Customers;

-- Standardize phone numbers using RegEx
SELECT 
    PhoneNumber,
    REGEXP_REPLACE(
        PhoneNumber,
        '^\+?1?[-. ]?(\d{3})[-. ]?(\d{3})[-. ]?(\d{4})$',
        '($1) $2-$3'
    ) AS FormattedPhone
FROM Contacts;

이벤트 스트리밍 구성

SQL Server 2025에서는 네이티브 이벤트 스트리밍 기능을 도입하여 실시간 데이터가 복잡한 ETL 파이프라인 없이 데이터베이스에서 외부 소비자로 직접 흐를 수 있도록 합니다. 스트리밍 프로토콜에 대한 기본 제공 지원을 사용하여 테이블, 뷰 또는 쿼리의 변경 내용을 연속 스트림으로 Azure Event Hubs 같은 플랫폼에 게시할 수 있습니다.

변경 이벤트 스트리밍 설정

변경 이벤트 스트리밍을 설정하기 전에 Azure Event Hubs 네임스페이스가 제대로 구성되었는지 확인합니다.

변경 이벤트 스트리밍은 다음을 제공합니다.

  • 트랜잭션 로그 변경 내용을 Azure Event Hubs 직접 스트리밍
  • 기존 CDC에 비해 I/O 오버헤드 감소
  • 실시간 데이터 복제 사용
  • 이벤트 기반 아키텍처 지원

변경 이벤트 스트리밍의 주요 이점은 다음과 같습니다.

  • 대기 시간 감소: 트랜잭션 로그에서 직접 스트리밍하면 중간 스토리지가 필요하지 않습니다.
  • 리소스 사용 감소: CDC에 비해 최적화된 I/O 작업
  • 실시간 AI 통합: AI 에이전트가 데이터 변경 내용을 즉시 처리하고 대응할 수 있도록 설정
  • 확장 가능한 아키텍처: 대용량 트랜잭션 환경을 처리하도록 빌드

개발자 도구 및 언어 사용

SQL Server 2025는 광범위한 언어 및 도구 지원을 통해 개발자 생산성을 확장합니다. 개발자는 통합 런타임 환경을 통해 Python, R 및 JavaScript와 같은 최신 언어와 함께 T-SQL을 사용하여 데이터베이스에서 직접 고급 분석 및 AI 워크플로를 사용할 수 있습니다.

향상된 Visual Studio 확장은 더 풍부한 디버깅, IntelliSense 및 배포 기능을 제공하며, 새로운 CLI 도구는 자동화 및 Azure Pipelines 간소화합니다. REST API 엔드포인트 및 네이티브 JSON, RegEx 및 이벤트 스트리밍 기능과 결합된 SQL Server 2025는 최신 데이터 기반 애플리케이션을 효율적으로 빌드하기 위한 통합 플랫폼을 제공합니다.

Python 드라이버 설치

SQL Server 2025용 새로운 Python 드라이버는 다음을 제공합니다.

  • pip를 통한 간단한 설치: pip install mssql-python
  • 성능 향상을 위한 비동기/대기 지원
  • 기본 제공 연결 풀링
  • 더 나은 IDE 통합을 위한 형식 힌트
  • 포괄적인 오류 처리

다음 Python 코드 조각은 Python 사용하여 SQL Server 데이터베이스에 대해 비동기 쿼리를 수행하는 방법을 보여줍니다. mssql.async 라이브러리를 사용하여 connect('connection_string')과 비차단 연결을 설정하여 비동기로 효율적인 리소스 관리를 보장합니다. 연결 내에서 커서를 만들고, SELECT TOP 10 * FROM Customers를 사용하여 await cursor.execute()와 비동기적으로 SQL 쿼리를 실행한 다음, await cursor.fetchall()를 사용하여 모든 결과를 가져옵니다.

from mssql.async import connect

async with connect('connection_string') as conn:
    async with conn.cursor() as cursor:
        await cursor.execute('SELECT TOP 10 * FROM Customers')
        results = await cursor.fetchall()

GitHub Copilot 사용하여 VS Code 환경 개선

Visual Studio Code용 MSSQL 확장에는 이제 GitHub Copilot 통합을 통한 AI 기반 기능이 포함됩니다.

  • 지능형 SQL 생성:

    • 자연어 설명에 따라 SQL 쿼리 완료
    • 최적화된 쿼리 패턴 제안
    • 데이터베이스 스키마 수정 생성
  • 스마트 스키마 탐색:

    • AI 기반 스키마 권장 사항
    • 자동 관계 검색
    • 스키마 변경에 대한 영향 분석
  • 쿼리 최적화:

    • 성능 향상 제안
    • 인덱스 권장 사항
    • 실행 계획 분석
  • ORM 지원:

    • Entity Framework 마이그레이션 생성
    • 데이터베이스 스키마에 따라 모델 변경 제안
    • 데이터 액세스 계층 코드 만들기

MSSQL 확장을 사용하여 연결 프로필을 설정하고 새 쿼리 편집기를 엽니다. 다음과 같은 주석 입력을 시작할 때:

-- Find all customers who made purchases in the last 30 days
-- and calculate their total spending

Copilot 의도를 읽고 전체 SQL 쿼리를 자동으로 제안합니다.

SELECT 
    c.CustomerID,
    c.Name,
    COUNT(o.OrderID) as OrderCount,
    SUM(o.TotalAmount) as TotalSpending
FROM 
    Customers c
    JOIN Orders o ON c.CustomerID = o.CustomerID
WHERE 
    o.OrderDate >= DATEADD(day, -30, GETDATE())
GROUP BY 
    c.CustomerID,
    c.Name
HAVING 
    COUNT(o.OrderID) > 0
ORDER BY 
    TotalSpending DESC;

Tab 또는 Enter 키를 눌러 Copilot 제안을 수락하거나 정확도를 위해 편집합니다.

이러한 기능을 통해 개발자는 AI 지원 및 최신 도구를 통해 생산성을 향상하면서 보다 정교하고 효율적이며 유지 관리 가능한 데이터베이스 애플리케이션을 빌드할 수 있습니다.