AI 코딩도구

WPF는 “프롬프트 구조”만 잘 잡으면 AI가 꽤 정확하게 뽑아줘요

wins007 2026. 1. 2. 14:38

좋아. WPF는 “프롬프트 구조”만 잘 잡으면 AI가 꽤 정확하게 뽑아줘요.


1) WPF 프롬프트 핵심 규칙 (이대로 지시)

아래 6개를 항상 넣으면 품질이 급상승합니다.

  1. .NET 버전: (예: .NET 6/7/8, 또는 .NET Framework 4.8)
  2. MVVM 사용 여부 + 프레임워크: (순수 MVVM / CommunityToolkit.Mvvm / Prism)
  3. 파일 단위 산출물: “파일별로 나눠서 코드 제공”
  4. 바인딩/커맨드 방식: ICommand/RelayCommand 등 지정
  5. 패키지 제한: “추가 NuGet 없이” or “CommunityToolkit.Mvvm만 허용”
  6. 정확한 기능/화면 스펙: UI 요소, 동작, 예외/검증, 데이터 모델

2) “항상 통하는” 마스터 프롬프트 템플릿

아래를 복붙한 뒤, 대괄호만 바꾸면 됩니다.

너는 WPF 전문가야. 아래 조건을 반드시 지켜서 코드를 작성해줘.

[환경]
- 프로젝트: WPF
- 타겟: [.NET 8] (또는 .NET Framework 4.8)
- 패턴: MVVM (Code-behind 최소화)
- MVVM 라이브러리: [CommunityToolkit.Mvvm 사용] / [사용 안 함]
- 추가 NuGet: [허용/불가] (허용이면 목록 명시)

[산출물 형식]
- 파일 단위로 제공 (예: MainWindow.xaml / MainWindow.xaml.cs / MainViewModel.cs / Models/*.cs)
- 각 파일은 코드블록으로 분리
- 빌드 가능한 최소 예제로 작성
- XAML 바인딩 오류가 없도록 DataContext 설정 포함

[기능 요구사항]
- 화면: [원하는 화면 구성 상세]
- 동작: [버튼 클릭 시 무엇, API 호출 여부, validation 규칙]
- 상태: IsBusy, 오류 메시지 표시 방식 등 포함
- 데이터: Model 클래스와 샘플 데이터 포함

[UI 요구사항]
- Grid/StackPanel 등 레이아웃 명시
- Validation 시 빨간 테두리 + 메시지 표시
- 가능한 한 기본 컨트롤 사용 (필요 시 스타일 포함)

[검증]
- 입력값 검증 규칙: [예: 아이디 4자 이상, 비밀번호 8자 이상]
- 예외 처리: try/catch, 사용자에게 메시지 출력
- 바인딩 실패를 방지하기 위해 속성명/커맨드명 정확히 맞추기

이제 위 조건대로 전체 코드를 작성해줘.

3) “화면만” 빠르게 뽑는 프롬프트 (XAML 집중)

WPF XAML만 작성해줘.
- 목표: [로그인 화면/설정 화면 등]
- 레이아웃: Grid 기반, 반응형처럼 늘어나게
- 스타일: 기본 컨트롤 + 간단한 Style(ResourceDictionary 없이 Window.Resources에서)
- MVVM 바인딩 자리만 만들어줘: Text="{Binding ...}", Command="{Binding ...}"
- Code-behind 없이 동작 가능한 구조로 DataContext는 나중에 붙일 거야.
XAML 전체를 한 파일로 줘: MainWindow.xaml

4) “MVVM 뼈대” 자동 생성 프롬프트 (정확도 높음)

WPF MVVM 프로젝트의 최소 뼈대를 만들어줘.
- .NET 8 WPF
- CommunityToolkit.Mvvm 사용
- MainWindow + MainViewModel
- 예시로 Counter 기능: +1, -1, Reset
- ICommand는 RelayCommand 사용
- ObservableProperty 사용해서 Count 바인딩
- ViewModelLocator 사용하지 말고 MainWindow에서 DataContext를 직접 설정
파일 단위로 전체 코드 제공해줘.

5) “바인딩/커맨드 안 됨” 디버깅 프롬프트

WPF는 여기서 AI가 엄청 유용합니다.

WPF 바인딩/커맨드가 동작하지 않아. 아래 코드와 증상을 보고 원인 후보를 우선순위로 정리하고,
각 후보별 확인 방법과 수정 코드를 제시해줘.

[증상]
- (예: 버튼 클릭해도 Command 실행 안 됨 / TextBox 값이 VM에 안 들어감)
- (예: Output 창 바인딩 에러 메시지 있으면 그대로 붙여넣기)

[코드]
- MainWindow.xaml:
```(붙여넣기)```
- ViewModel:
```(붙여넣기)```

[제약]
- MVVM 유지
- Code-behind 최소화
- 필요하면 수정된 전체 파일을 다시 제공

6) “기존 코드 리팩토링” 프롬프트 (레거시에 강함)

아래 WPF 코드를 MVVM에 맞게 리팩토링해줘.
- 목표: code-behind 로직을 ViewModel로 이동
- 이벤트 핸들러 → ICommand로 변경
- 상태/에러 메시지를 바인딩으로 표현
- 동작은 동일하게 유지
- 변경 이유를 항목별로 설명하고, 최종 코드를 파일 단위로 제시해줘.

[기존 코드]
(MainWindow.xaml / .cs 붙여넣기)

7) “AI가 실수 많이 하는 부분” 방지 문구 (추가하면 좋음)

프롬프트 끝에 이 한 줄을 붙이면 체감 큽니다.

주의: WPF 바인딩 경로/속성명/커맨드명 오타가 나면 조용히 실패하니,
작성 후 스스로 바인딩 이름 일치 여부를 체크해서 제공해줘.

바로 써먹을 “예시 요청 3개”

원하는 걸 골라서 그대로 던지면 돼요.

예시 A) 로그인 화면 + 검증 + 로딩

.NET 8 WPF, MVVM, CommunityToolkit.Mvvm 사용.
로그인 화면을 만들어줘:
- ID, Password 입력
- 로그인 버튼
- 검증: ID 4자 이상, PW 8자 이상
- 로그인 중(IsBusy=true)에는 버튼 비활성화 + ProgressBar 표시
- 실패 시 오류 메시지 TextBlock로 표시
- 실제 서버 호출 대신 Task.Delay(1200)로 시뮬레이션
파일 단위로 전체 코드 제공.

예시 B) CRUD 리스트(데이터그리드) + 상세 편집

WPF MVVM(.NET 8), CommunityToolkit.Mvvm.
DataGrid로 사용자 목록 보여주고, 오른쪽에 선택된 사용자 편집 폼을 만들어줘.
- Add / Update / Delete
- ObservableCollection
- 선택 변경 시 상세 폼 자동 바인딩
- 입력 검증 + 오류 표시
파일 단위로 전체 코드.

예시 C) 설정 화면 (토글/콤보/저장)

WPF MVVM(.NET 8), 추가 NuGet 없이.
설정 화면:
- 다크모드 토글, 언어 선택 콤보(KO/JA/EN), 자동저장 체크박스
- 저장 버튼 누르면 JSON 파일로 저장(AppData)
- 로드시 자동으로 복원
에러 처리/메시지 표시 포함.
파일 단위로 코드 제공.