복붙용 마스터 프롬프트 (추천: .NET 8 + CommunityToolkit.Mvvm)
너는 WPF(.NET) 전문가야. 아래 조건을 정확히 지켜서 "로그인 화면"을 구현해줘.
[환경]
- 프로젝트: WPF
- 타겟 프레임워크: .NET 8
- 패턴: MVVM (code-behind 최소화)
- MVVM 라이브러리: CommunityToolkit.Mvvm 사용 (ObservableObject, [ObservableProperty], RelayCommand)
- 추가 NuGet은 CommunityToolkit.Mvvm만 사용 (그 외 금지)
[산출물 형식]
- 파일 단위로 제공:
1) App.xaml (필요 시)
2) MainWindow.xaml
3) MainWindow.xaml.cs (가능하면 최소, DataContext 설정만)
4) ViewModels/LoginViewModel.cs
5) Services/FakeAuthService.cs (로그인 시뮬레이션)
- 각 파일은 각각 코드블록으로 분리해서 제공
- 그대로 붙여넣으면 빌드/실행 가능한 최소 예제
[화면 요구사항]
- 화면 구성:
- 제목: "로그인"
- TextBox: ID 입력
- PasswordBox: PW 입력 (보안상 PasswordBox 사용)
- Button: "로그인"
- ProgressBar 또는 "로그인 중..." 표시 (IsBusy=true일 때만)
- 오류 메시지 영역 (ErrorMessage가 있을 때만 표시)
- 레이아웃: 중앙 정렬, 적당한 여백, Grid 기반
[동작 요구사항]
- 검증 규칙:
- ID: 4자 이상
- PW: 8자 이상
- 검증 실패 시:
- 해당 필드 아래에 검증 메시지 표시 (빨간색)
- 로그인 커맨드는 실행되지 않게 막기
- 로그인 실행 시:
- IsBusy = true
- 버튼 비활성화
- FakeAuthService를 호출하여 Task.Delay(1200)으로 시뮬레이션
- 성공 조건: id == "admin" && password == "password1234" 일 때 성공
- 실패 시 ErrorMessage = "아이디 또는 비밀번호가 올바르지 않습니다."
- finally에서 IsBusy = false
[바인딩/커맨드 요구사항]
- TextBox ID는 TwoWay 바인딩
- PasswordBox는 기본 바인딩이 안 되므로 아래 중 하나로 구현:
A) Attached Property(PasswordHelper)로 Password를 ViewModel에 바인딩
또는
B) PasswordChanged 이벤트를 code-behind에서 받아 VM에 전달 (단, code-behind 최소화)
- LoginCommand는 RelayCommand(또는 AsyncRelayCommand) 사용
- CanExecute는 입력 검증과 IsBusy를 반영
[검증 구현 방식]
- INotifyDataErrorInfo 또는 IDataErrorInfo 중 하나를 사용해서
XAML에서 빨간 테두리 + 메시지가 자연스럽게 보이게 구현
- 바인딩 실패/오타 없도록 속성명/경로를 정확히 맞출 것
[UI 디테일]
- 기본 컨트롤만 사용
- ErrorMessage TextBlock은 붉은 글씨
- IsBusy 때 ProgressBar는 Indeterminate로 표시
[마무리]
- 바인딩 이름 일치 여부를 스스로 점검해서 제공해줘.
- "실행 방법(어디에 어떤 파일로 넣는지)"도 간단히 마지막에 적어줘.
이제 위 조건대로 전체 코드를 작성해줘.
더 강하게 “바인딩 오류 방지”를 걸고 싶다면 (옵션 한 줄 추가)
프롬프트 맨 끝에 이 줄을 추가해줘:
추가 요구: XAML 바인딩이 조용히 실패하지 않도록, 각 바인딩 경로가 실제 ViewModel 속성과 1:1로 일치하는지 체크리스트 형태로 마지막에 점검 결과도 써줘.
'AI 코딩도구' 카테고리의 다른 글
| OpenCode(opencode.ai)로 터미널에서 AI 코딩하기: 설치부터 실전 워크플로우까지 (0) | 2026.01.24 |
|---|---|
| 터미널에서 쓰는 AI 코딩 에이전트, OpenCode 설치부터 활용까지 (0) | 2026.01.24 |
| WPF는 “프롬프트 구조”만 잘 잡으면 AI가 꽤 정확하게 뽑아줘요 (0) | 2026.01.02 |
| WPF는 바이브 코딩 친화적인 기술은 아닙니다 (0) | 2026.01.02 |
| 개발자 업무 속도를 2배 올려주는 최신 AI 코딩 도구 7종 (2025 기준) (1) | 2025.12.26 |