fems-admin | ||
fems-api | ||
fems-app | ||
.env.development | ||
.env.production | ||
.gitignore | ||
backup.sh | ||
dev_full_docke.sh | ||
dev_git_only.sh | ||
docker-compose.base.yml | ||
docker-compose.dev.yml | ||
docker-compose.full.yml | ||
docker-compose.prod.yml | ||
logs.sh | ||
monitor.sh | ||
README.md | ||
restart.sh | ||
setup.sh | ||
start-dev.sh | ||
start-full.sh | ||
start-prod.sh | ||
stop.sh |
FEMS(Factory Energy Management System)
1. 개요
FEMS는 공장 내에 공급, 소비되는 에너지를 최적화 시켜주는 에너지관리시스템입니다.
2. 프로젝트 아키텍처
2.1 시스템 구조
wacefems/
├── fems-admin/ # 공급업체 슈퍼 관리자 시스템
│ ├── src/
│ │ ├── app/
│ │ │ ├── (auth)/ # 관리자 인증
│ │ │ ├── dashboard/ # 전체 현황 대시보드
│ │ │ ├── companies/ # 기업 관리
│ │ │ │ ├── list/ # 기업 목록
│ │ │ │ ├── registration/ # 기업 등록
│ │ │ │ └── [id]/ # 기업 상세
│ │ │ ├── contracts/ # 계약 관리
│ │ │ ├── billing/ # 과금/결제 관리
│ │ │ ├── support/ # 기술 지원
│ │ │ └── settings/ # 시스템 설정
│ │ ├── components/
│ │ ├── services/
│ │ └── types/
│
├── fems-app/ # 사용 기업용 FEMS 시스템
│ ├── src/
│ │ ├── app/
│ │ │ ├── (auth)/ # 인증 시스템
│ │ │ │ ├── login/
│ │ │ │ └── register/
│ │ │ ├── (admin)/ # 기업 관리자용 기능
│ │ │ │ ├── company-settings/ # 회사 설정
│ │ │ │ │ ├── profile/ # 회사 프로필
│ │ │ │ │ ├── branches/ # 지점/공장 관리
│ │ │ │ │ └── billing/ # 결제 관리
│ │ │ │ ├── user-management/ # 사용자 관리
│ │ │ │ │ ├── departments/ # 부서 관리
│ │ │ │ │ ├── roles/ # 권한 관리
│ │ │ │ │ └── accounts/ # 계정 관리
│ │ │ │ └── system-settings/ # 시스템 설정
│ │ │ │
│ │ │ ├── dashboard/ # 대시보드
│ │ │ │ ├── overview/ # 전체 현황
│ │ │ │ ├── kpi/ # KPI 지표
│ │ │ │ └── costs/ # 비용 현황
│ │ │ │
│ │ │ ├── monitoring/ # 에너지 모니터링
│ │ │ │ ├── electricity/ # 전력
│ │ │ │ ├── gas/ # 가스
│ │ │ │ ├── water/ # 용수
│ │ │ │ └── steam/ # 스팀
│ │ │ │
│ │ │ ├── equipment/ # 설비 관리
│ │ │ │ ├── inventory/ # 설비 목록
│ │ │ │ ├── monitoring/ # 상태 모니터링
│ │ │ │ └── maintenance/ # 정비 관리
│ │ │ │
│ │ │ ├── analysis/ # 분석/리포트
│ │ │ │ ├── energy/ # 에너지 분석
│ │ │ │ ├── efficiency/ # 원단위 분석
│ │ │ │ └── reports/ # 보고서
│ │ │ │
│ │ │ ├── alarm/ # 알람/이벤트
│ │ │ │ ├── realtime/ # 실시간 알람
│ │ │ │ ├── history/ # 이력 관리
│ │ │ │ └── settings/ # 알람 설정
│ │ │ │
│ │ │ ├── planning/ # 에너지 계획
│ │ │ │ ├── targets/ # 절감 목표
│ │ │ │ ├── forecast/ # 수요 예측
│ │ │ │ └── optimization/# 최적화
│ │ │ │
│ │ │ ├── support/ # 도움말/지원
│ │ │ │ ├── manual/ # 사용자 가이드
│ │ │ │ ├── faq/ # FAQ
│ │ │ │ └── contact/ # 문의하기
│ │ │ │
│ │ │ └── community/ # 커뮤니티
│ │ │ ├── notice/ # 공지사항
│ │ │ ├── forum/ # 게시판
│ │ │ └── news/ # 뉴스
│ │ │
│ │ ├── components/ # 공통 컴포넌트
│ │ │ ├── ui/ # UI 컴포넌트
│ │ │ ├── charts/ # 차트 컴포넌트
│ │ │ └── forms/ # 폼 컴포넌트
│ │ │
│ │ ├── hooks/ # 커스텀 훅
│ │ ├── services/ # API 서비스
│ │ ├── stores/ # 상태 관리
│ │ ├── types/ # 타입 정의
│ │ └── utils/ # 유틸리티
│
├── fems-api/ # 백엔드 API 서버
│ ├── src/
│ │ ├── config/ # 설정
│ │ ├── controllers/ # 컨트롤러
│ │ │ ├── admin/ # 슈퍼 관리자 API
│ │ │ │ ├── companies/
│ │ │ │ ├── contracts/
│ │ │ │ └── billing/
│ │ │ │
│ │ │ └── app/ # 기업용 API
│ │ │ ├── auth/
│ │ │ ├── dashboard/
│ │ │ ├── monitoring/
│ │ │ └── ...
│ │ │
│ │ ├── models/ # 데이터 모델
│ │ ├── services/ # 비즈니스 로직
│ │ └── middleware/ # 미들웨어
│
├── shared/ # 공통 코드
├── .env # 환경 변수
├── docker-compose.base.yml # 기본 설정
├── docker-compose.dev.yml # 개발 환경 설정
├── docker-compose.full.yml # 전체 시스템 설정
└── docker-compose.prod.yml # 개발 환경 설정
2.2 기술 스택
Frontend
- Next.js App Router: SSR, 라우팅, 코드 스플리팅
- shadCN UI: 재사용 가능한 UI 컴포넌트
- TailwindCSS: 유틸리티 퍼스트 CSS
- TypeScript: 정적 타입 체크
- NextAuth.js: 인증 및 세션 관리
Backend
- Node.js: 이벤트 기반 서버
- PostgreSQL + TimescaleDB: 시계열 데이터 관리
데이터 수집 및 처리
-
데이터 수집 계층
- Open PLC: PLC 통신
- Eclipse Milo: OPC UA 통신
- Eclipse Kura: IoT 게이트웨이
-
데이터 전송 계층
- Eclipse Mosquitto: MQTT 브로커
- Node-RED: 데이터 흐름 관리
-
데이터 처리 계층
- Apache Kafka: 메시지 스트리밍
- Apache Spark: 실시간 처리
-
데이터 저장 계층
- TimescaleDB: 시계열 데이터
- Redis: 캐시 관리
-
모니터링 도구
- Prometheus + Grafana
- ELK Stack
3. 시스템 구성요소
시스템 주요 기능
3.1 FEMS Admin (공급업체용) - 주요 기능
- 기업 관리
- 계약 관리
- 과금/결제 관리
- 기술 지원
- 시스템 설정
3. 시스템 구성요소 및 주요 기능
3.1 FEMS Admin (공급업체용)
핵심 관리 기능
- 기업 관리
- 계약 관리
- 과금/결제 관리
- 기술 지원
- 시스템 설정
3.2 FEMS App (사용 기업용)
1. 대시보드
1.1 실시간 현황
에너지 사용량 모니터링
- 전력, 가스, 용수, 스팀 등 실시간 사용량 표시
- 설비별/구역별 사용량 분포
- 목표 대비 실적 현황
시각화 대시보드
- 그래프 및 차트를 통한 직관적 표시
- 실시간 업데이트되는 데이터 표현
- 사용자 정의 위젯 구성 가능
1.2 KPI 지표
핵심 성과 지표
- 에너지 효율성 지표
- 비용 절감률
- CO2 배출량
- 설비 가동률
목표 대비 실적
- 일간/주간/월간 목표 달성률
- 전년 동기 대비 비교
- 업계 평균 대비 비교
1.3 에너지 비용
비용 현황
- 에너지원별 사용 비용
- 실시간 요금 계산
- 예상 청구액 산정
비용 분석
- 시간대별 요금 분석
- 계절별 비용 변동
- 절감 기회 도출
2. 에너지 모니터링
2.1 전력 모니터링
실시간 데이터 수집
- 전력 사용량 측정
- 피크 전력 관리
- 역률 모니터링
품질 관리
- 전압/전류 품질
- 고조파 분석
- 정전 관리
2.2 가스/용수/증기 모니터링
사용량 관리
- 실시간 유량 측정
- 압력/온도 모니터링
- 품질 데이터 수집
효율성 평가
- 손실률 계산
- 최적 운영점 도출
- 누수/누기 감지
3. 설비 관리
3.1 설비 목록
기본 정보 관리
- 설비 마스터 데이터
- 설비 사양 정보
- 위치 정보
문서 관리
- 설비 매뉴얼
- 도면 관리
- 인증서 관리
3.2 설비 상태 모니터링
실시간 모니터링
- 가동 상태 확인
- 성능 지표 모니터링
- 이상징후 감지
데이터 로깅
- 운전 데이터 기록
- 상태 변화 이력
- 센서 데이터 저장
3.3 정비 관리
정비 계획
- 정기 점검 계획
- 예방 정비 일정
- 부품 교체 계획
이력 관리
- 정비 작업 기록
- 부품 교체 이력
- 비용 관리
4. 분석/리포트
4.1 에너지 분석
사용량 분석
- 시계열 분석
- 패턴 분석
- 이상치 탐지
효율성 분석
- 설비별 효율
- 구역별 효율
- 개선점 도출
4.2 원단위 분석
생산성 분석
- 생산량 대비 에너지 사용량
- 제품별 에너지 원단위
- 공정별 에너지 효율
벤치마킹
- 업계 평균 비교
- 최적 사례 분석
- 개선 목표 설정
4.3 보고서 생성
정기 보고서
- 일일/주간/월간 보고서
- 분기/연간 보고서
- 관리 보고서
맞춤형 보고서
- 사용자 정의 보고서
- 규제 대응 보고서
- 경영 분석 보고서
5. 알람/이벤트
5.1 실시간 알람
알람 유형
- 설비 이상 알람
- 에너지 사용량 초과
- 효율 저하
- 정비 필요
알람 우선순위
- 긴급 (Red)
- 경고 (Yellow)
- 주의 (Blue)
- 정보 (Gray)
5.2 알람 설정
조건 설정
- 임계값 설정
- 시간대별 조건
- 복합 조건
수신자 관리
- 담당자 설정
- 통보 방식 설정
- 에스컬레이션 규칙
6. 에너지 계획/최적화
6.1 절감 계획
목표 설정
- 에너지원별 절감 목표
- 비용 절감 목표
- CO2 감축 목표
실행 계획
- 단기/중기/장기 계획
- 투자 계획
- 효과 분석
6.2 수요 예측
예측 모델
- 시계열 분석
- 머신러닝 기반 예측
- 시나리오 분석
최적화
- 운전 최적화
- 비용 최적화
- 효율 최적화
7. 사용자/관리자 설정
7.1 기업 정보
기본 정보
- 회사 정보
- 사업장 정보
- 조직 구조
계약 정보
- 에너지 공급 계약
- 요금제 설정
- 목표 관리
7.2 사용자 관리
계정 관리
- 사용자 등록/수정/삭제
- 권한 그룹 설정
- 접근 이력 관리
조직 관리
- 부서 관리
- 직책 관리
- 업무 분장
8. 시스템 설정
8.1 일반 설정
환경 설정
- 시스템 기본 설정
- 언어/시간대 설정
- 화면 설정
데이터 설정
- 데이터 수집 주기
- 보관 기간 설정
- 백업 설정
8.2 연동 설정
외부 시스템 연동
- ERP 연동
- MES 연동
- 센서 데이터 연동
API 설정
- API 키 관리
- 접근 권한 설정
- 로그 관리
9. 도움말/지원
9.1 사용자 가이드
매뉴얼
- 시스템 사용 설명서
- 기능별 가이드
- FAQ
교육 자료
- 동영상 매뉴얼
- 실습 가이드
- 문제 해결 가이드
9.2 기술 지원
지원 센터
- 문의 접수
- 원격 지원
- 장애 처리
자료실
- 기술 문서
- 참고 자료
- 양식 다운로드
10. 커뮤니티
10.1 게시판
- 공지사항
- 자유게시판
- 기술 토론
- 개선 제안
10.2 뉴스
- 에너지 뉴스
- 정책 동향
- 기술 동향
- 성공 사례