스킬을 새로운 수준으로 끌어올리기
Source: Dev.to
Introduction
개발자이든, 전문가이든, 혹은 이제 시작했든, 지속적으로 배우고 기술을 연마해야 합니다. 이를 달성하는 좋은 방법은 목표를 적어두고 사이드 프로젝트를 만드는 것입니다.
여기서 목표는 SQL Server 관계형 데이터베이스와 Microsoft EF Core를 사용해 상호작용하는 연락처 솔루션을 클래스 프로젝트에 구현하는 것입니다.
데이터베이스 생성
개발자는 관계형 데이터베이스와 적절한 인덱스에 대한 경험이 제한적인 경우 특히 AI 도구를 사용하여 데이터베이스를 구축하는 것을 고려해야 합니다.
ChatGPT를 사용하여 데이터베이스 만들기
프롬프트
연락처 데이터베이스를 위해 다음 프롬프트를 사용했습니다:
Microsoft SQL Server용으로 다음을 위한 새로운 관계형 데이터베이스 스크립트를 작성하여 연락처 데이터베이스를 생성하십시오.
데이터베이스 이름: Contacts
Person 테이블, 성별 참조 테이블 (Male, Female, Other), United States 참조 테이블, 주소 유형 참조 테이블, 주소 테이블, 디바이스 테이블 (Home phone, Work phone, Home email, Work email)
다른 어떤 테이블이 필요합니까?
마지막 문장은 ChatGPT(또는 다른 도구)에게 권장 사항을 제시하도록 요청합니다. 이 경우, 여러 개의 조인 테이블이 포함되었습니다.
Note
A junction table (also known as an associative, bridge, or linking table) is a standard relational database design practice used to manage many‑to‑many relationships between two other tables.
조인 테이블(연관 테이블, 브리지 테이블, 또는 링크 테이블이라고도 함)은 두 다른 테이블 간의 다대다 관계를 관리하기 위해 사용되는 표준 관계형 데이터베이스 설계 관행입니다.
데이터베이스 테이블 채우기
참조 테이블의 경우, ChatGPT가 생성한 스크립트에는 성별 테이블을 포함한 여러 테이블이 있었으며, 해당 테이블에 데이터가 채워져 있었습니다.
ChatGPT가 만든 스크립트 실행하기
SSMS (SQL Server Management Studio) 사용
- Contacts 데이터베이스를 생성합니다.
- ChatGPT가 생성한 스크립트를 실행합니다.
- 데이터베이스의 백업을 생성합니다.
- 하나의 연락처를 완전히 채워 넣습니다.
다음 문을 사용하여 연락처를 읽고 스키마를 검증합니다:
SELECT P.PersonId,
P.FirstName,
P.LastName,
P.MiddleName,
P.DateOfBirth,
P.GenderId,
G.GenderName,
P.CreatedAt,
P.UpdatedAt,
D.IsActive,
D.DeviceValue,
DT.DeviceTypeName,
DT.DeviceKind,
DT.DeviceTypeId,
P.Notes
FROM dbo.DeviceType AS DT
INNER JOIN dbo.Device AS D
ON DT.DeviceTypeId = D.DeviceTypeId
INNER JOIN dbo.PersonDevice AS PD
ON D.DeviceId = PD.DeviceId
INNER JOIN dbo.Person AS P
ON PD.PersonId = P.PersonId
INNER JOIN dbo.Gender AS G
ON P.GenderId = G.GenderId;- 현재 스키마를 그대로 사용하거나 조정하고 다시 검증합니다.
데이터베이스 역공학
이 작업은 Microsoft Visual Studio 확장인 EF Power Tools 를 사용하면 가장 쉽습니다.
도구에 대한 소개는 25‑분 데모를 시청하세요.
역공학은 클래스 프로젝트에서 수행되며, 하나 이상의 프런트엔드 프로젝트가 생성된 모델을 사용할 수 있도록 합니다.
프론트엔드와 통합
프론트엔드 프로젝트 유형(데스크톱, 모바일 또는 웹)을 선택합니다. 코드를 바로 작성하거나 AI 도구를 사용하기보다 먼저 외관과 느낌에 대한 계획을 세우고, 폼이나 페이지에 필요한 클래스를 식별한 뒤, 필요에 따라 모달을 추가합니다.
계획
계획을 시작하는 두 가지 방법:
- 문서와 이미지를 사용합니다.
- Behaviour‑Driven Development (BDD)를 위한 Gherkin 구문을 사용합니다.
Before coding
솔루션을 위한 GitHub 저장소를 만들고(비공개 또는 공개) 작동하는 코드만 포함하도록 하세요.
Coding
천천히 진행하고, 계획을 따르며, 코딩 중에 계획이 변할 수 있음을 준비하세요; 필요에 따라 업데이트하십시오.
문서화
문서는 필수입니다—오늘 작성한 코드를 다음 주에 다시 살펴볼 때 완전히 이해하지 못할 수도 있습니다.
- 각 프로젝트는 최소한 프로젝트를 설명하기 위해
README.md가 필요합니다. - 모든 클래스, 메서드 및 인라인 코드를 문서화하세요.
- 모바일 및 웹 프로젝트의 경우 CSS 스타일을 문서화하세요.
Summary
데이터베이스 기본 코드와 스크립트가 제공되었지만, 다음 학습 프로젝트에서 직접 시도해 보세요. 프론트엔드 프로젝트 선택은 배울 것이 많습니다; 정말 막히지 않는 한 AI 도구 사용을 억제하세요. 기억하세요, 가장 중요한 목표는 학습이며—이것이 “바이브 코딩”을 피해야 하는 가장 큰 이유입니다.