// TestApp.jsx - React Test Component for GroupWare const { useState, useEffect } = React; function TestApp() { const [status, setStatus] = useState('loading'); const [counter, setCounter] = useState(0); const [serverTime, setServerTime] = useState(''); const [apiTest, setApiTest] = useState({ status: 'pending', message: '' }); // 컴포넌트가 마운트될 때 실행 useEffect(() => { // React가 정상적으로 로드되었음을 표시 setTimeout(() => { setStatus('success'); setServerTime(new Date().toLocaleString('ko-KR')); }, 1000); // API 테스트 testAPI(); }, []); // GroupWare API 테스트 함수 const testAPI = async () => { try { // Home 컨트롤러 테스트 const response = await fetch('/Home'); if (response.ok) { setApiTest({ status: 'success', message: 'API 연결 성공' }); } else { setApiTest({ status: 'warning', message: `API 응답: ${response.status}` }); } } catch (error) { setApiTest({ status: 'error', message: `API 오류: ${error.message}` }); } }; const buttonStyle = { padding: '10px 20px', margin: '5px', border: 'none', borderRadius: '5px', cursor: 'pointer', fontSize: '14px' }; return (
{status === 'success' ? (

✅ React 컴포넌트가 성공적으로 로드되었습니다!

현재 시간: {serverTime}

파일 위치: /react/TestApp.jsx

) : (

React 컴포넌트를 로딩 중입니다...

)}
{status === 'success' && (

📊 상태 관리 테스트

카운터: {counter}

🌐 GroupWare API 연결 테스트

상태: {apiTest.message}

테스트 엔드포인트: /Home

📋 React + OWIN 통합 테스트 체크리스트

  • ✅ OWIN 정적 파일 서빙
  • ✅ React 라이브러리 로딩 (CDN)
  • ✅ JSX 파일 분리 및 로딩
  • ✅ JSX 컴파일 (Babel)
  • ✅ React Hooks (useState, useEffect)
  • ✅ 이벤트 핸들링
  • ✅ API 호출 (fetch)
  • ✅ 반응형 UI 업데이트
  • ✅ 컴포넌트 모듈화

🎉 통합 테스트 결과

GroupWare + OWIN + React 환경이 성공적으로 구성되었습니다!

다음 단계:

  • React Router 추가 (SPA 라우팅)
  • 상태 관리 라이브러리 추가 (Redux/Zustand)
  • UI 컴포넌트 라이브러리 추가 (Material-UI/Ant Design)
  • 번들링 도구 설정 (Webpack/Vite)
  • TypeScript 지원 추가
)}
); }