- .NET 8.0 WPF 프로젝트 생성 - MVVM 패턴 적용 (CommunityToolkit.Mvvm) - 의존성 주입 구현 (Microsoft.Extensions.DependencyInjection) - 로그인/회원관리/회원등록 화면 구현 - 테마 전환 기능 (Dark/Light) - 다국어 지원 (한국어/영어) - 세련된 로그인 UI 디자인 - CLAUDE.md 및 History.md 문서화 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
4.9 KiB
4.9 KiB
프로젝트 개발 히스토리
이 문서는 EduToy WPF 프로젝트의 개발 과정을 기록합니다.
1. 프로젝트 분석 및 CLAUDE.md 생성
요청
- 코드베이스 분석 및 CLAUDE.md 파일 생성
작업 내용
- 프로젝트 구조 탐색
- "EduToy" - WPF 교육용 프로젝트로 확인
- docs/sampleApp/WPFBeginner.exe (컴파일된 바이너리) 발견
- CLAUDE.md 파일 영문으로 최초 작성
2. 한국어 전환 및 CLAUDE.md 번역
요청
- 모든 대화를 한글로 진행
- CLAUDE.md를 한글로 번역
작업 내용
- CLAUDE.md 한국어로 번역 완료
- 프로젝트 문서화 한국어 기준으로 변경
3. WPF 애플리케이션 구현
요청
- PowerPoint 파일 (WPF 기초를 위한 토이프로젝트.pptx) 분석
- sampleApp 참고하여 프로그램 구현
기술 스택
- .NET 8.0 Windows WPF
- CommunityToolkit.Mvvm 8.2.2 - MVVM 패턴
- Microsoft.Extensions.DependencyInjection 8.0.0 - DI
구현된 구조
src/WPFBeginner/
├── Models/
│ ├── Member.cs
│ └── AppSettings.cs
├── ViewModels/
│ ├── LoginViewModel.cs
│ ├── MainViewModel.cs
│ └── RegistViewModel.cs
├── Views/
│ ├── LoginWindow.xaml / .cs
│ ├── MainWindow.xaml / .cs
│ └── RegistWindow.xaml / .cs
├── Controls/
│ └── InputPanel.xaml / .cs
├── Services/
│ ├── SettingsService.cs
│ └── MemberService.cs
├── Converters/
│ └── BoolToVisibilityConverter.cs
└── Resources/
├── Themes/
│ ├── DefaultTheme.xaml
│ └── LightTheme.xaml
└── Languages/
├── ko-KR.xaml
└── en-US.xaml
주요 기능
- 로그인 (appsettings.json 자격 증명)
- 회원 관리 (DataGrid CRUD)
- 테마 전환 (Dark/Light)
- 다국어 지원 (한국어/영어)
4. 검색 영역 짤림 현상 수정
요청
- 창 크기 줄였을 때 검색 영역이 짤리는 현상 수정
- 엔터키로 검색 가능하도록 기능 개선
해결 방법
- MinWidth="700" MinHeight="400" 설정
- SearchTextBox_KeyDown 이벤트 핸들러 추가
수정 파일
MainWindow.xaml- MinWidth/MinHeight 추가MainWindow.xaml.cs- KeyDown 이벤트 처리
private void SearchTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter && DataContext is MainViewModel viewModel)
{
viewModel.SearchCommand.Execute(null);
}
}
5. 로그인 화면 디자인 개선
요청
- 가로 스크롤 디자인 개선
- 로그인 화면을 세련되게 변경
적용된 디자인
- 그라데이션 배경 (#1a1a2e → #16213e)
- 둥근 모서리 (CornerRadius="12")
- 그림자 효과 (DropShadowEffect)
- 로고 아이콘 (원형 그라데이션)
- 모던한 입력 필드 스타일
- 그라데이션 로그인 버튼
수정 파일
LoginWindow.xaml- 전체 디자인 재구성
6. 로그인 화면 짤림 현상 수정
요청
- 로그인 화면 위아래 짤림 현상 수정
해결 방법
- 외부 Border에 Margin="15" 추가
- 창 크기 500x420 → 540x440으로 확대
수정 파일
LoginWindow.xaml
<Window Height="540" Width="440">
<Border Margin="15" CornerRadius="12">
<Border.Effect>
<DropShadowEffect BlurRadius="15" ShadowDepth="0" Opacity="0.5"/>
</Border.Effect>
...
</Border>
</Window>
7. 테마 버튼 동작 수정
요청
- 테마 버튼이 동작하지 않는 문제 수정
- 로그인 화면 제외 이전 디자인 유지
문제 원인
- MainWindow.xaml에 하드코딩된 색상 사용
- DynamicResource 대신 직접 색상값 (#1a1a2e 등) 사용
해결 방법
- MainWindow.xaml을 DynamicResource 사용하도록 복원
- LoginWindow.xaml은 새 디자인 유지 (하드코딩)
수정 파일
MainWindow.xaml
<Window Background="{DynamicResource WindowBackgroundBrush}">
<Border Background="{DynamicResource SecondaryBrush}">
<DataGrid Style="{DynamicResource DefaultDataGridStyle}">
테마 전환 구조
- MainWindow.xaml - 라디오 버튼 Command 바인딩
- MainViewModel.cs - SetDefaultThemeCommand, SetLightThemeCommand
- SettingsService.cs - ApplyTheme() 메서드로 ResourceDictionary 교체
최종 결과
완료된 기능
- ✅ MVVM 패턴 기반 WPF 애플리케이션
- ✅ 의존성 주입 (DI) 구현
- ✅ 로그인/회원관리 기능
- ✅ 테마 전환 (Dark/Light)
- ✅ 다국어 지원 (한국어/영어)
- ✅ 세련된 로그인 화면 디자인
- ✅ 반응형 레이아웃 (MinWidth/MinHeight)
- ✅ 엔터키 검색 기능
빌드 및 실행
cd src/WPFBeginner
dotnet build
dotnet run
기본 로그인 정보
- ID: admin
- Password: 0000
마지막 업데이트: 2025-12-29