이 빠른 시작에서는 GitHub Copilot를 사용하여 애플리케이션 개발, 테스트 및 데모를 지원하기 위해 현실적이고 테마가 있는 데이터 세트를 만드는 방법을 알아봅니다. GitHub Copilot는 데이터베이스의 스키마와 컨텍스트를 분석하여 실제 형식에 맞는 모의 데이터를 생성하고, 에지 사례를 시뮬레이션하고, 데이터베이스를 시드하는 수동 작업을 줄여 실제 시나리오를 더 빠르고 더 많이 대표할 수 있습니다.
시작하기
데이터베이스에 연결되어 있고 MSSQL 확장으로 활성 편집기 창이 열려 있는지 확인합니다. 이 연결을 사용하면 채팅 참가자가 @mssql
데이터베이스 환경의 컨텍스트를 이해할 수 있으므로 정확하고 컨텍스트 인식 제안을 사용할 수 있습니다. 데이터베이스 연결이 없으면 채팅 참가자는 의미 있는 응답을 제공하는 스키마 또는 데이터 컨텍스트가 없습니다.
다음 예제에서는 AdventureWorksLT2022
홈페이지에서 다운로드할 수 있는 샘플 데이터베이스를 사용합니다.
최상의 결과를 위해 사용자 고유의 환경에 맞게 테이블 및 스키마 이름을 조정합니다.
@mssql
접두사가 채팅에 포함되어 있는지 확인하세요. 예를 들어, @mssql
을 입력한 후에 질문이나 프롬프트를 작성합니다. 이렇게 하면 채팅 참가자가 SQL 관련 지원을 요청하는 것을 이해할 수 있습니다.
GitHub Copilot를 사용하여 현실적이고 테스트 가능한 데이터 생성
GitHub Copilot는 SQL 스키마 또는 JSON 샘플에서 직접 테스트 및 모의 데이터를 생성하는 데 도움이 될 수 있습니다. 데모용 데이터 세트를 준비하든, 에지 사례를 테스트하든, 테마 또는 임의 데이터를 사용하여 개발 환경을 시드하든, GitHub Copilot는 특히 수동 데이터 입력이 느리거나 일관성이 없는 시나리오에서 시간을 줄이고 적용 범위를 개선하는 데 도움이 되는 상황에 맞는 제안을 제공합니다.
다음은 채팅 참가자를 통해 요청할 수 있는 일반적인 사용 사례 및 예제입니다.
모의 데이터 생성
GitHub Copilot를 사용하여 기존 테이블에 대한 테마, 임의 또는 대표 모의 데이터를 생성합니다. 특정 행 수를 요청하거나, 이름/값 패턴을 적용하거나, JSON 샘플과 같은 외부 구조를 기반으로 데이터 세트를 빌드할 수 있습니다.
샘플 레코드가 100인 테이블에 대한 모의
SalesLT.Customer
데이터를 생성합니다.SalesLT.Product
테이블을 각각 고유한 이름과 가격으로 50개 항목으로 채웁니다.주문 날짜 및 고객 ID를
SalesLT.SalesOrderHeader
포함하여 200개의 레코드가 있는 테이블에 대한 모의 데이터를 생성합니다.4개의 레코드가 있는 이 샘플 JSON을 기반으로 SQL 테이블 스키마를 생성하고 50개의 모의 레코드로 채웁다. 잘 알려진 공상 과학 서적(예: Dune, Foundation, Ready Player One)에서
firstName
및lastName
필드에 사용할 문자 이름을 선택하여 데이터를 보다 현실적이고 테마에 조화롭게 만드세요.[ { "firstName": "Alice", "lastName": "Smith", "email": "alice@example.com" }, { "firstName": "Bob", "lastName": "Jones", "email": "bob@example.com" }, { "firstName": "Charlie", "lastName": "Brown", "email": "charlie@example.com" }, { "firstName": "Dana", "lastName": "White", "email": "dana@example.com" } ]
에지 사례 테스트
GitHub Copilot를 사용하여 에지 사례를 시뮬레이션하고 시스템의 동작을 확인하여 기본 데이터 생성을 넘어갑니다. 비즈니스 논리를 스트레스 테스트하든, 데이터 유효성 검사 실패를 확인하든, 관계형 일관성을 보장하든, GitHub Copilot는 올바른 데이터를 생성하고, 어설션 또는 테스트 논리를 작성하여 결과의 유효성을 검사할 수 있습니다.
SalesLT.SalesOrderDetail
에 대해 상한값으로OrderQty
값을 가지는 (예: 1,000 단위) insert 문을 생성하고, 시스템이 수량 제약 조건을 제대로 적용하고 있는지 확인합니다.잘못된 전자 메일 형식의
SalesLT.Customer
테스트 데이터를 만들고 이러한 레코드를 검토 대상으로 표시하는 쿼리를 작성합니다.경계 사례 가격 책정(예:
SalesLT.Product
또는 음수 값)을 사용하여StandardCost = 0
의 테스트 데이터를 생성하고 이상 현상을 강조하는 쿼리를 작성합니다.관련 테이블에서 유효한
SalesOrderDetail
값과ProductID
값을 올바르게 참조하는 500SalesOrderID
개의 행을 생성하여 데이터 무결성을 시뮬레이션하고 GitHub Copilot에 유효성 검사 논리가 포함되어 있는지 확인합니다.각 주문에 대해
SalesOrderHeader.TotalDue
값이 항상SubTotal
값보다 큰지 확인하는 테스트 스크립트를 작성하여 비즈니스 논리에서 발생하는 계산 오류를 발견하는 데 도움이 됩니다.SQLAlchemy를 사용하여 null
SalesOrderDetail
이 있는 레코드를ProductID
삽입하려는 테스트를 만들고 ORM이 외래 키 제약 조건으로 인해 무결성 오류를 발생시키는지 확인합니다.Prisma를 사용하여
Product
의StandardCost
을(를) 갖는-10
을(를) 삽입하려는 테스트 논리를 생성합니다. Prisma가 항목을 거부하고 적절한 오류 메시지를 기록하는지 확인합니다.
피드백: 테스트 및 모의를 위한 데이터 생성
MSSQL 확장에 대한 GitHub Copilot를 구체화하고 개선하는 데 도움이 되도록 다음 GitHub 문제 템플릿을 사용하여 피드백을 제출합니다. GitHub Copilot 피드백
피드백을 제출할 때 다음을 포함하는 것이 좋습니다.
테스트된 시나리오 – 스키마 만들기, 쿼리 생성, 보안, 지역화와 같이 집중한 영역을 알려주세요.
잘 작동하는 기능 – 원활하거나 도움이 되거나 예상을 초과한 모든 경험을 설명합니다.
문제 또는 버그 – 문제, 불일치 또는 혼란스러운 동작을 포함합니다. 스크린샷 또는 화면 녹화는 특히 유용합니다.
개선 제안 - 유용성 향상, 적용 범위 확장 또는 GitHub Copilot의 응답 향상을 위한 아이디어를 공유합니다.