Files
Groupware/Project/Web/wwwroot/react/react-jsx-test.html
ChiKyun Kim 6bd4f84192 feat(service): Console_SendMail을 Windows 서비스로 변환
- MailService.cs 추가: ServiceBase 상속받는 Windows 서비스 클래스
- Program.cs 수정: 서비스/콘솔 모드 지원, 설치/제거 기능 추가
- 프로젝트 설정: System.ServiceProcess 참조 추가
- 배치 파일 추가: 서비스 설치/제거/콘솔실행 스크립트

주요 기능:
- Windows 서비스로 백그라운드 실행
- 명령행 인수로 모드 선택 (-install, -uninstall, -console)
- EventLog를 통한 서비스 로깅
- 안전한 서비스 시작/중지 처리

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 09:08:40 +09:00

120 lines
3.8 KiB
HTML

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>React JSX Test - GroupWare</title>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
margin: 0;
padding: 20px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.container {
max-width: 900px;
margin: 0 auto;
background-color: white;
padding: 30px;
border-radius: 12px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}
.header {
text-align: center;
margin-bottom: 30px;
padding-bottom: 20px;
border-bottom: 2px solid #f0f0f0;
}
.header h1 {
color: #333;
margin: 0;
font-size: 2.5em;
}
.header p {
color: #666;
font-size: 1.2em;
margin: 10px 0;
}
.status {
padding: 20px;
margin: 20px 0;
border-radius: 8px;
}
.success {
background-color: #d4edda;
border: 1px solid #c3e6cb;
color: #155724;
}
.loading {
background-color: #fff3cd;
border: 1px solid #ffeaa7;
color: #856404;
}
.error {
background-color: #f8d7da;
border: 1px solid #f5c6cb;
color: #721c24;
}
.tech-info {
background-color: #e3f2fd;
border: 1px solid #90caf9;
color: #0d47a1;
margin: 20px 0;
padding: 15px;
border-radius: 8px;
}
.version-info {
font-size: 0.9em;
color: #666;
text-align: center;
margin-top: 30px;
padding: 15px;
background-color: #f8f9fa;
border-radius: 8px;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>🚀 React JSX Integration</h1>
<p>GroupWare + OWIN + React + JSX 모듈화 테스트</p>
<div class="tech-info">
<strong>기술 스택:</strong> C# WinForms + OWIN + React 18 + Babel JSX + 모듈화된 컴포넌트
</div>
</div>
<div id="react-app">
<div class="status loading">
React JSX 컴포넌트를 로딩 중입니다...
</div>
</div>
<div class="version-info">
<p><strong>환경:</strong> .NET Framework 4.6 + OWIN + React 18.2.0</p>
<p><strong>포트:</strong> 7979 | <strong>파일 위치:</strong> /react-jsx-test.html</p>
</div>
</div>
<!-- React & ReactDOM CDN -->
<script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<!-- Babel standalone for JSX -->
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<!-- JSX Component Import -->
<script type="text/babel" src="/react/component/TestApp"></script>
<!-- App Initialization -->
<script type="text/babel">
// JSX 컴포넌트를 DOM에 렌더링
const root = ReactDOM.createRoot(document.getElementById('react-app'));
root.render(<TestApp />);
console.log('✅ React JSX 컴포넌트가 성공적으로 마운트되었습니다.');
console.log('📁 컴포넌트 파일: /react/TestApp.jsx');
console.log('🌐 테스트 페이지: /react-jsx-test.html');
</script>
</body>
</html>