Go to file
2024-12-15 03:10:21 +09:00
.vscode 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
fems-admin 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
fems-api 변경 2024-12-13 14:03:12 +09:00
fems-app plm명칭 변경 2024-12-13 10:57:13 +09:00
fems-mqtt 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
fems-postgres 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
fems-realtime-api 변경 2024-12-13 14:03:12 +09:00
fems-timescaledb 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
.env.development 오류다시커밋 2024-12-13 16:14:45 +09:00
.env.production 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
.gitignore 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
DATABASE.md 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
docker-compose.app.yml 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
docker-compose.db.yml 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
docker-compose.dev.yml 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
docker-compose.prod.yml 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
logs.sh 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
monitor.sh 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
README.md 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
restart.sh 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
setup.sh 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
start-dev_linux-full.sh 리눅스용 실행 2024-12-15 03:10:21 +09:00
start-dev-app.sh 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
start-dev-db.sh 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
start-dev-full.sh 최신 커밋 메시지 2024-12-12 18:31:36 +09:00
stop.sh 최신 커밋 메시지 2024-12-12 18:31:36 +09:00

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/
│   │   ├── lib/             # 라이브러리
│   │   ├── services/
│   │   └── types/
│
├── fems-app/               # 사용 기업용 FEMS 시스템
│   ├── src/
│   │   ├── app/
│   │   │   ├── (auth)/    # 인증 시스템
│   │   │   │   ├── login/
│   │   │   │   └── register/
│   │   │   ├── (admin)/   # 기업 관리자용 기능
│   │   │   │   ├── company/  # 회사 설정
│   │   │   │   │   ├── profile/      # 회사 프로필
│   │   │   │   │   ├── branches/     # 지점/공장 관리
│   │   │   │   │   └── billing/      # 결제 관리
│   │   │   │   ├── user/  # 사용자 관리
│   │   │   │   │   ├── departments/  # 부서 관리
│   │   │   │   │   ├── roles/       # 권한 관리
│   │   │   │   │   └── accounts/    # 계정 관리
│   │   │   │   └── system/  # 시스템 설정
│   │   │   │
│   │   │   ├── (general)/  # 일반 사용자용 기능
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── dashboard/      # 대시보드
│   │   │   │   │   ├── overview/   # 전체 현황
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── kpi/         # KPI 지표
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   └── costs/       # 비용 현황
│   │   │   │   │       └── page.tsx
│   │   │   │   │
│   │   │   │   └── settings/       # 개인 설정
│   │   │   │       └── page.tsx
│   │   │   │
│   │   │   ├── (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/       # 폼 컴포넌트
│   │   │
│   │   ├── lib/             # 라이브러리
│   │   ├── hooks/          # 커스텀 훅
│   │   ├── services/       # API 서비스
│   │   ├── stores/         # 상태 관리
│   │   ├── types/          # 타입 정의
│   │   └── utils/          # 유틸리티
│
├── fems-api/              # 백엔드 API 서버
│   ├── src/
│   │   ├── config/       # 설정
│   │   ├── controllers/  # 컨트롤러
│   │   │   ├── admin/   # 슈퍼 관리자 API
│   │   │   │   ├── companies/
│   │   │   │   ├── contracts/
│   │   │   │   └── billing/
│   │   │   │
│   │   │   └── app/     # 기업용 API
│   │   │       ├── auth/
│   │   │       ├── dashboard/
│   │   │       ├── monitoring/
│   │   │       └── ...
│   │   │
│   │   ├── routes/      # 라우터
│   │   ├── utils/       # 유틸리티
│   │   ├── models/      # 데이터 모델
│   │   ├── services/    # 비즈니스 로직
│   │   └── middleware/  # 미들웨어
│
├── shared/              # 공통 코드
├── .env.development
├── .env.production
├── docker-compose.base.yml  # 기본 설정
├── docker-compose.dev.yml   # 개발 환경 설정
├── docker-compose.full.yml  # 전체 시스템 설정
└── docker-compose.prod.yml  # 개발 환경 설정

flowchart TB
 subgraph Factory[공장 현장]
     E1[설비] --> NR
     E2[전력계] --> NR
     subgraph EDGE[엣지 서버]
         NR[Node-RED] --> |저장| LDB[(로컬 DB)]
         NR --> |실시간| MQTT[MQTT Client]
         NR --> |API 호출| REST[REST Client]
     end
 end

 subgraph Cloud[클라우드]
     subgraph MainService[기존 서비스]
         API[API Gateway] --> BE[Main Backend]
         BE --> PG[(PostgreSQL)]
     end

     subgraph RealtimeService[실시간 서비스]
         MB[MQTT Broker] --> RT[Realtime Backend]
         RT <--> |구독 확인| BE
         RT --> TSDB[(TimescaleDB)]
         RT --> REDIS[(Redis Cache)]
     end
 end

 MQTT --> |SSL/TLS| MB
 REST --> |HTTPS| API

2.2 데이터베이스 모델

데이터베이스 생성

createdb wacefems_database

데이터베이스 마이그레이션

npx sequelize-cli db:migrate

데이터베이스 ERD


### 2.3 기술 스택

#### Frontend

- **Next.js App Router**: SSR, 라우팅, 코드 스플리팅
- **shadCN UI**: 재사용 가능한 UI 컴포넌트
- **TailwindCSS**: 유틸리티 퍼스트 CSS
- **TypeScript**: 정적 타입 체크
- **NextAuth.js**: 인증 및 세션 관리

#### Backend

- **Node.js**: 이벤트 기반 서버
- **PostgreSQL + TimescaleDB**: 시계열 데이터 관리

#### 데이터 수집 및 처리

1. **데이터 수집 계층**

   - Open PLC: PLC 통신
   - Eclipse Milo: OPC UA 통신
   - Eclipse Kura: IoT 게이트웨이

2. **데이터 전송 계층**

   - Eclipse Mosquitto: MQTT 브로커
   - Node-RED: 데이터 흐름 관리

3. **데이터 처리 계층**

   - Apache Kafka: 메시지 스트리밍
   - Apache Spark: 실시간 처리

4. **데이터 저장 계층**

   - TimescaleDB: 시계열 데이터
   - Redis: 캐시 관리

5. **모니터링 도구**
   - Prometheus + Grafana
   - ELK Stack

## 3. 시스템 구성요소

## 시스템 주요 기능

### 3.1 FEMS Admin (공급업체용) - 주요 기능

- 기업 관리
- 계약 관리
- 과금/결제 관리
- 기술 지원
- 시스템 설정

## 3. 시스템 구성요소 및 주요 기능

### 3.1 FEMS Admin (공급업체용)

#### 핵심 관리 기능

1. 기업 관리
2. 계약 관리
3. 과금/결제 관리
4. 기술 지원
5. 시스템 설정

### 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 뉴스

- 에너지 뉴스
- 정책 동향
- 기술 동향
- 성공 사례