# 프로젝트 개발 히스토리

이 문서는 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 이벤트 처리
```csharp
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`
```xml
<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`
```xml
<Window Background="{DynamicResource WindowBackgroundBrush}">
    <Border Background="{DynamicResource SecondaryBrush}">
        <DataGrid Style="{DynamicResource DefaultDataGridStyle}">
```

### 테마 전환 구조
1. **MainWindow.xaml** - 라디오 버튼 Command 바인딩
2. **MainViewModel.cs** - SetDefaultThemeCommand, SetLightThemeCommand
3. **SettingsService.cs** - ApplyTheme() 메서드로 ResourceDictionary 교체

---

## 최종 결과

### 완료된 기능
- ✅ MVVM 패턴 기반 WPF 애플리케이션
- ✅ 의존성 주입 (DI) 구현
- ✅ 로그인/회원관리 기능
- ✅ 테마 전환 (Dark/Light)
- ✅ 다국어 지원 (한국어/영어)
- ✅ 세련된 로그인 화면 디자인
- ✅ 반응형 레이아웃 (MinWidth/MinHeight)
- ✅ 엔터키 검색 기능

### 빌드 및 실행
```bash
cd src/WPFBeginner
dotnet build
dotnet run
```

### 기본 로그인 정보
- ID: admin
- Password: 0000

---

*마지막 업데이트: 2025-12-29*
