# 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는 한국어를 기본으로 사용합니다.
