2026-10-20 16:13:34 +09:00
<UserControl xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
2026-10-20 20:48:08 +09:00
xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml"
Background= "{StaticResource BgDarkBrush}" >
2026-10-20 16:13:34 +09:00
<Grid Margin= "24" >
<Grid.RowDefinitions>
<RowDefinition Height= "Auto" />
<RowDefinition Height= "*" />
<RowDefinition Height= "Auto" />
</Grid.RowDefinitions>
<!-- Header -->
<StackPanel Grid.Row= "0" Margin= "0,0,0,20" >
<TextBlock Text= "환경설정 및 실제 인프라 연결 구성" FontSize= "24" FontWeight= "Bold" Foreground= "{StaticResource TextPrimaryBrush}" />
<TextBlock Text= "Active Directory, NetApp ONTAP 스토리지 및 MS SQL 데이터베이스 접속 엔드포인트를 구성하고 실시간 테스트합니다."
FontSize= "13" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,4,0,0" />
</StackPanel>
<!-- Settings Cards Scroll Area -->
<ScrollViewer Grid.Row= "1" VerticalScrollBarVisibility= "Auto" >
<StackPanel>
<!-- Group 1: Global Operating Mode -->
<Border Style= "{StaticResource ModernCardStyle}" Margin= "0,0,0,16" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width= "*" />
<ColumnDefinition Width= "Auto" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column= "0" >
<TextBlock Text= "전역 동작 모드 (Global Operation Mode)" FontSize= "16" FontWeight= "Bold" Foreground= "{StaticResource TextPrimaryBrush}" />
<TextBlock Text= "실제 인프라 장비 및 서버와 통신할지, 또는 데모/시뮬레이션 모드로 작동할지 선택합니다."
FontSize= "12" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,4,0,0" />
</StackPanel>
<CheckBox x:Name= "ChkGlobalLiveMode" Grid.Column= "1" Content= "실제 연결 모드 활성화 (Live Production Mode)"
Foreground= "{StaticResource PrimaryAccentHoverBrush}" FontWeight= "Bold" VerticalAlignment= "Center" FontSize= "13" />
</Grid>
</Border>
<!-- Group 2: Active Directory Configuration -->
<Border Style= "{StaticResource ModernCardStyle}" Margin= "0,0,0,16" >
<StackPanel>
<DockPanel Margin= "0,0,0,12" >
<TextBlock Text= "Active Directory (AD DS) 연결" FontSize= "16" FontWeight= "Bold" Foreground= "{StaticResource TextPrimaryBrush}" />
<CheckBox x:Name= "ChkAdLive" Content= "AD 실제 연결 사용" Foreground= "{StaticResource TextPrimaryBrush}" HorizontalAlignment= "Right" VerticalAlignment= "Center" />
</DockPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width= "*" />
<ColumnDefinition Width= "*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column= "0" Margin= "0,0,12,0" >
<TextBlock Text= "도메인 컨트롤러 (DC FQDN / IP):" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,0,0,4" FontSize= "12" />
<TextBox x:Name= "TxtAdDc" Text= "dc01.corp.local" Style= "{StaticResource ModernTextBoxStyle}" Margin= "0,0,0,12" />
<TextBlock Text= "검색 기본 루트 OU (DN):" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,0,0,4" FontSize= "12" />
<TextBox x:Name= "TxtAdBaseOu" Text= "DC=corp,DC=local" Style= "{StaticResource ModernTextBoxStyle}" Margin= "0,0,0,12" />
<CheckBox x:Name= "ChkAdLdaps" Content= "보안 LDAPS 암호화 연결 (Port 636) 사용" Foreground= "{StaticResource TextPrimaryBrush}" Margin= "0,4,0,0" />
</StackPanel>
<StackPanel Grid.Column= "1" Margin= "12,0,0,0" >
<TextBlock Text= "관리자 계정 (비워둘 시 현재 Windows 로그인 토큰 사용):" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,0,0,4" FontSize= "12" />
<TextBox x:Name= "TxtAdUser" Style= "{StaticResource ModernTextBoxStyle}" Margin= "0,0,0,12" />
<TextBlock Text= "관리자 암호:" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,0,0,4" FontSize= "12" />
<PasswordBox x:Name= "TxtAdPassword" Background= "#0F172A" Foreground= "{StaticResource TextPrimaryBrush}" BorderBrush= "{StaticResource CardBorderBrush}" Height= "34" Margin= "0,0,0,12" />
<Button x:Name= "BtnTestAd" Content= "AD 연결 테스트" Style= "{StaticResource SecondaryButtonStyle}" HorizontalAlignment= "Right" Padding= "14,6" />
</StackPanel>
</Grid>
</StackPanel>
</Border>
<!-- Group 3: NetApp ONTAP Storage Configuration -->
<Border Style= "{StaticResource ModernCardStyle}" Margin= "0,0,0,16" >
<StackPanel>
<DockPanel Margin= "0,0,0,12" >
<TextBlock Text= "NetApp ONTAP 스토리지 (REST API) 연결" FontSize= "16" FontWeight= "Bold" Foreground= "{StaticResource TextPrimaryBrush}" />
<CheckBox x:Name= "ChkNetAppLive" Content= "NetApp 실제 연결 사용" Foreground= "{StaticResource TextPrimaryBrush}" HorizontalAlignment= "Right" VerticalAlignment= "Center" />
</DockPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width= "*" />
<ColumnDefinition Width= "*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column= "0" Margin= "0,0,12,0" >
<TextBlock Text= "클러스터 관리 LIF (HTTPS 엔드포인트 URL):" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,0,0,4" FontSize= "12" />
<TextBox x:Name= "TxtNetAppEndpoint" Text= "https://10.200.10.50" Style= "{StaticResource ModernTextBoxStyle}" Margin= "0,0,0,12" />
<TextBlock Text= "기본 대상 SVM (Vserver):" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,0,0,4" FontSize= "12" />
<TextBox x:Name= "TxtNetAppDefaultSvm" Text= "svm_cifs_prod01" Style= "{StaticResource ModernTextBoxStyle}" Margin= "0,0,0,12" />
<CheckBox x:Name= "ChkNetAppIgnoreSsl" Content= "자체 서명(Self-signed) SSL 인증서 신뢰" IsChecked= "True" Foreground= "{StaticResource TextPrimaryBrush}" Margin= "0,4,0,0" />
</StackPanel>
<StackPanel Grid.Column= "1" Margin= "12,0,0,0" >
<TextBlock Text= "스토리지 관리자 ID (vsadmin / admin):" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,0,0,4" FontSize= "12" />
<TextBox x:Name= "TxtNetAppUser" Text= "admin" Style= "{StaticResource ModernTextBoxStyle}" Margin= "0,0,0,12" />
<TextBlock Text= "스토리지 관리자 암호:" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,0,0,4" FontSize= "12" />
<PasswordBox x:Name= "TxtNetAppPassword" Background= "#0F172A" Foreground= "{StaticResource TextPrimaryBrush}" BorderBrush= "{StaticResource CardBorderBrush}" Height= "34" Margin= "0,0,0,12" />
<Button x:Name= "BtnTestNetApp" Content= "NetApp ONTAP 연결 테스트" Style= "{StaticResource SecondaryButtonStyle}" HorizontalAlignment= "Right" Padding= "14,6" />
</StackPanel>
</Grid>
</StackPanel>
</Border>
<!-- Group 4: MS SQL Server Configuration -->
<Border Style= "{StaticResource ModernCardStyle}" Margin= "0,0,0,16" >
<StackPanel>
<DockPanel Margin= "0,0,0,12" >
<TextBlock Text= "MS SQL Server 연결 기본값" FontSize= "16" FontWeight= "Bold" Foreground= "{StaticResource TextPrimaryBrush}" />
<CheckBox x:Name= "ChkSqlLive" Content= "MS SQL 실제 연결 사용" Foreground= "{StaticResource TextPrimaryBrush}" HorizontalAlignment= "Right" VerticalAlignment= "Center" />
</DockPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width= "*" />
<ColumnDefinition Width= "*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column= "0" Margin= "0,0,12,0" >
<TextBlock Text= "SQL 인스턴스 주소 (예: localhost 또는 SRV\INSTANCE):" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,0,0,4" FontSize= "12" />
<TextBox x:Name= "TxtSqlServer" Text= "localhost" Style= "{StaticResource ModernTextBoxStyle}" Margin= "0,0,0,12" />
<TextBlock Text= "인증 방식:" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,0,0,4" FontSize= "12" />
2026-10-21 08:37:11 +09:00
<ComboBox x:Name= "CmbSqlAuthType" SelectedIndex= "0" Height= "32" Background= "#0F172A" Foreground= "{StaticResource TextPrimaryBrush}" Margin= "0,0,0,6" >
<ComboBoxItem Content= "Windows 통합 인증 (현재 Windows 세션 토큰)" />
<ComboBoxItem Content= "AD 도메인 계정 위장 Windows 인증 (LogonUser /netonly)" />
<ComboBoxItem Content= "SQL Server 자체 계정 인증 (User ID / Password)" />
2026-10-20 16:13:34 +09:00
</ComboBox>
2026-10-21 08:37:11 +09:00
<TextBlock x:Name= "TxtSqlAuthHint" Text= "현재 윈도우에 로그인된 사용자 자격증명으로 SQL Server에 접속합니다." FontSize= "11" Foreground= "#60A5FA" Margin= "0,0,0,12" TextWrapping= "Wrap" />
2026-10-20 16:13:34 +09:00
<TextBlock Text= "백업 파일 기본 저장 디렉토리:" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,0,0,4" FontSize= "12" />
<TextBox x:Name= "TxtSqlBackupDir" Text= "C:\Backups" Style= "{StaticResource ModernTextBoxStyle}" />
</StackPanel>
<StackPanel Grid.Column= "1" Margin= "12,0,0,0" >
2026-10-21 08:37:11 +09:00
<TextBlock x:Name= "LblSqlDomain" Text= "AD 도메인 (AD 위장 인증 시):" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,0,0,4" FontSize= "12" />
<TextBox x:Name= "TxtSqlDomain" Text= "corp" Style= "{StaticResource ModernTextBoxStyle}" Margin= "0,0,0,12" />
<TextBlock x:Name= "LblSqlUser" Text= "로그인 계정 (AD 사용자명 또는 SQL 계정):" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,0,0,4" FontSize= "12" />
2026-10-20 16:13:34 +09:00
<TextBox x:Name= "TxtSqlUser" Text= "sa" Style= "{StaticResource ModernTextBoxStyle}" Margin= "0,0,0,12" />
2026-10-21 08:37:11 +09:00
<TextBlock x:Name= "LblSqlPassword" Text= "비밀번호:" Foreground= "{StaticResource TextSecondaryBrush}" Margin= "0,0,0,4" FontSize= "12" />
2026-10-20 16:13:34 +09:00
<PasswordBox x:Name= "TxtSqlPassword" Background= "#0F172A" Foreground= "{StaticResource TextPrimaryBrush}" BorderBrush= "{StaticResource CardBorderBrush}" Height= "34" Margin= "0,0,0,12" />
<Button x:Name= "BtnTestSql" Content= "SQL Server 연결 테스트" Style= "{StaticResource SecondaryButtonStyle}" HorizontalAlignment= "Right" Padding= "14,6" />
</StackPanel>
</Grid>
</StackPanel>
</Border>
</StackPanel>
</ScrollViewer>
<!-- Bottom Action Bar -->
<Border Grid.Row= "2" Margin= "0,16,0,0" >
<DockPanel>
<Button x:Name= "BtnTestAllConnections" Content= " 전체 인프라 연결 상태 일괄 진단" Style= "{StaticResource SecondaryButtonStyle}" HorizontalAlignment= "Left" />
<StackPanel Orientation= "Horizontal" HorizontalAlignment= "Right" >
<Button x:Name= "BtnReloadConfig" Content= "설정 다시 로드" Style= "{StaticResource SecondaryButtonStyle}" Margin= "0,0,8,0" />
<Button x:Name= "BtnSaveSettings" Content= "설정 저장 및 적용" Style= "{StaticResource PrimaryButtonStyle}" />
</StackPanel>
</DockPanel>
</Border>
</Grid>
</UserControl>