# CLAUDE.md 이 파일은 Claude Code (claude.ai/code)가 이 저장소에서 코드 작업을 할 때 참고하는 가이드입니다. ## 프로젝트 개요 EduToy는 WPF(Windows Presentation Foundation) 기초를 학습하기 위한 교육용 프로젝트입니다. "WPF 기초를 위한 토이프로젝트"라는 이름으로도 불립니다. ## 빌드 및 실행 ```bash # 프로젝트 빌드 cd src/WPFBeginner dotnet build # 프로젝트 실행 dotnet run ``` ## 기술 스택 - **.NET 8.0** - Windows WPF 애플리케이션 - **CommunityToolkit.Mvvm 8.2.2** - MVVM 패턴 구현 - **Microsoft.Extensions.DependencyInjection 8.0.0** - 의존성 주입 ## 프로젝트 아키텍처 ``` src/WPFBeginner/ ├── Models/ # 데이터 모델 (Member, AppSettings) ├── ViewModels/ # MVVM ViewModel (LoginViewModel, MainViewModel, RegistViewModel) ├── Views/ # XAML Window (LoginWindow, MainWindow, RegistWindow) ├── Controls/ # 재사용 가능한 UserControl (InputPanel) ├── Services/ # 비즈니스 로직 서비스 (SettingsService, MemberService) ├── Converters/ # WPF 값 변환기 └── Resources/ ├── Themes/ # 테마 ResourceDictionary (DefaultTheme, LightTheme) └── Languages/ # 다국어 리소스 (ko-KR, en-US) ``` ## MVVM 패턴 - **View**: XAML만 사용, 코드 비하인드에 비즈니스 로직 없음 - **ViewModel**: CommunityToolkit.Mvvm의 `[ObservableProperty]`, `[RelayCommand]` 사용 - **DI**: App.xaml.cs에서 ServiceCollection으로 서비스 및 ViewModel 등록 ## 주요 기능 - **로그인**: appsettings.json의 자격 증명으로 인증 (기본: admin/0000) - **회원 관리**: DataGrid로 CRUD 작업 - **테마 전환**: 어두운 테마(Default) / 밝은 테마(Light) - **다국어 지원**: 한국어(ko-KR) / 영어(en-US) 동적 전환 ## 설정 파일 `appsettings.json`: 로그인 정보, 언어, 테마, 기본 회원 데이터 저장 ## 언어 프로젝트 문서 및 UI는 한국어를 기본으로 사용합니다.