- 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>
120 lines
3.8 KiB
HTML
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> |