auto commit
This commit is contained in:
parent
616fac2f89
commit
a2cfadfba6
85
README.md
85
README.md
@ -1,17 +1,18 @@
|
|||||||
# FEMS(Factory Energy Management System)
|
# FEMS(Factory Energy Management System)
|
||||||
|
|
||||||
## 1. 개요
|
## 1. 개요
|
||||||
|
|
||||||
FEMS는 공장 내에 공급, 소비되는 에너지를 최적화 시켜주는 에너지관리시스템입니다.
|
FEMS는 공장 내에 공급, 소비되는 에너지를 최적화 시켜주는 에너지관리시스템입니다.
|
||||||
|
|
||||||
## 2. 프로젝트 아키텍처
|
## 2. 프로젝트 아키텍처
|
||||||
|
|
||||||
### 2.1 시스템 구조
|
### 2.1 시스템 구조
|
||||||
|
|
||||||
```
|
```bash
|
||||||
wacefems/
|
wacefems/
|
||||||
├── fems-admin/ # 공급업체 슈퍼 관리자 시스템
|
├── fems-admin/ # 공급업체 슈퍼 관리자 시스템
|
||||||
│ ├── src/
|
│ ├── src/
|
||||||
│ │ ├── app/
|
│ │ ├── app/
|
||||||
│ │ │ ├── (auth)/ # 관리자 인증
|
│ │ │ ├── (auth)/ # 관리자 인증
|
||||||
│ │ │ ├── dashboard/ # 전체 현황 대시보드
|
│ │ │ ├── dashboard/ # 전체 현황 대시보드
|
||||||
│ │ │ ├── companies/ # 기업 관리
|
│ │ │ ├── companies/ # 기업 관리
|
||||||
@ -122,6 +123,7 @@ wacefems/
|
|||||||
### 2.2 기술 스택
|
### 2.2 기술 스택
|
||||||
|
|
||||||
#### Frontend
|
#### Frontend
|
||||||
|
|
||||||
- **Next.js App Router**: SSR, 라우팅, 코드 스플리팅
|
- **Next.js App Router**: SSR, 라우팅, 코드 스플리팅
|
||||||
- **shadCN UI**: 재사용 가능한 UI 컴포넌트
|
- **shadCN UI**: 재사용 가능한 UI 컴포넌트
|
||||||
- **TailwindCSS**: 유틸리티 퍼스트 CSS
|
- **TailwindCSS**: 유틸리티 퍼스트 CSS
|
||||||
@ -129,24 +131,30 @@ wacefems/
|
|||||||
- **NextAuth.js**: 인증 및 세션 관리
|
- **NextAuth.js**: 인증 및 세션 관리
|
||||||
|
|
||||||
#### Backend
|
#### Backend
|
||||||
|
|
||||||
- **Node.js**: 이벤트 기반 서버
|
- **Node.js**: 이벤트 기반 서버
|
||||||
- **PostgreSQL + TimescaleDB**: 시계열 데이터 관리
|
- **PostgreSQL + TimescaleDB**: 시계열 데이터 관리
|
||||||
|
|
||||||
#### 데이터 수집 및 처리
|
#### 데이터 수집 및 처리
|
||||||
|
|
||||||
1. **데이터 수집 계층**
|
1. **데이터 수집 계층**
|
||||||
|
|
||||||
- Open PLC: PLC 통신
|
- Open PLC: PLC 통신
|
||||||
- Eclipse Milo: OPC UA 통신
|
- Eclipse Milo: OPC UA 통신
|
||||||
- Eclipse Kura: IoT 게이트웨이
|
- Eclipse Kura: IoT 게이트웨이
|
||||||
|
|
||||||
2. **데이터 전송 계층**
|
2. **데이터 전송 계층**
|
||||||
|
|
||||||
- Eclipse Mosquitto: MQTT 브로커
|
- Eclipse Mosquitto: MQTT 브로커
|
||||||
- Node-RED: 데이터 흐름 관리
|
- Node-RED: 데이터 흐름 관리
|
||||||
|
|
||||||
3. **데이터 처리 계층**
|
3. **데이터 처리 계층**
|
||||||
|
|
||||||
- Apache Kafka: 메시지 스트리밍
|
- Apache Kafka: 메시지 스트리밍
|
||||||
- Apache Spark: 실시간 처리
|
- Apache Spark: 실시간 처리
|
||||||
|
|
||||||
4. **데이터 저장 계층**
|
4. **데이터 저장 계층**
|
||||||
|
|
||||||
- TimescaleDB: 시계열 데이터
|
- TimescaleDB: 시계열 데이터
|
||||||
- Redis: 캐시 관리
|
- Redis: 캐시 관리
|
||||||
|
|
||||||
@ -154,13 +162,12 @@ wacefems/
|
|||||||
- Prometheus + Grafana
|
- Prometheus + Grafana
|
||||||
- ELK Stack
|
- ELK Stack
|
||||||
|
|
||||||
|
|
||||||
## 3. 시스템 구성요소
|
## 3. 시스템 구성요소
|
||||||
|
|
||||||
|
|
||||||
## 시스템 주요 기능
|
## 시스템 주요 기능
|
||||||
|
|
||||||
### 3.1 FEMS Admin (공급업체용)
|
### 3.1 FEMS Admin (공급업체용) - 주요 기능
|
||||||
|
|
||||||
- 기업 관리
|
- 기업 관리
|
||||||
- 계약 관리
|
- 계약 관리
|
||||||
- 과금/결제 관리
|
- 과금/결제 관리
|
||||||
@ -172,6 +179,7 @@ wacefems/
|
|||||||
### 3.1 FEMS Admin (공급업체용)
|
### 3.1 FEMS Admin (공급업체용)
|
||||||
|
|
||||||
#### 핵심 관리 기능
|
#### 핵심 관리 기능
|
||||||
|
|
||||||
1. 기업 관리
|
1. 기업 관리
|
||||||
2. 계약 관리
|
2. 계약 관리
|
||||||
3. 과금/결제 관리
|
3. 과금/결제 관리
|
||||||
@ -183,35 +191,44 @@ wacefems/
|
|||||||
#### 1. 대시보드
|
#### 1. 대시보드
|
||||||
|
|
||||||
##### 1.1 실시간 현황
|
##### 1.1 실시간 현황
|
||||||
|
|
||||||
###### 에너지 사용량 모니터링
|
###### 에너지 사용량 모니터링
|
||||||
|
|
||||||
- 전력, 가스, 용수, 스팀 등 실시간 사용량 표시
|
- 전력, 가스, 용수, 스팀 등 실시간 사용량 표시
|
||||||
- 설비별/구역별 사용량 분포
|
- 설비별/구역별 사용량 분포
|
||||||
- 목표 대비 실적 현황
|
- 목표 대비 실적 현황
|
||||||
|
|
||||||
###### 시각화 대시보드
|
###### 시각화 대시보드
|
||||||
|
|
||||||
- 그래프 및 차트를 통한 직관적 표시
|
- 그래프 및 차트를 통한 직관적 표시
|
||||||
- 실시간 업데이트되는 데이터 표현
|
- 실시간 업데이트되는 데이터 표현
|
||||||
- 사용자 정의 위젯 구성 가능
|
- 사용자 정의 위젯 구성 가능
|
||||||
|
|
||||||
##### 1.2 KPI 지표
|
##### 1.2 KPI 지표
|
||||||
|
|
||||||
###### 핵심 성과 지표
|
###### 핵심 성과 지표
|
||||||
|
|
||||||
- 에너지 효율성 지표
|
- 에너지 효율성 지표
|
||||||
- 비용 절감률
|
- 비용 절감률
|
||||||
- CO2 배출량
|
- CO2 배출량
|
||||||
- 설비 가동률
|
- 설비 가동률
|
||||||
|
|
||||||
###### 목표 대비 실적
|
###### 목표 대비 실적
|
||||||
|
|
||||||
- 일간/주간/월간 목표 달성률
|
- 일간/주간/월간 목표 달성률
|
||||||
- 전년 동기 대비 비교
|
- 전년 동기 대비 비교
|
||||||
- 업계 평균 대비 비교
|
- 업계 평균 대비 비교
|
||||||
|
|
||||||
##### 1.3 에너지 비용
|
##### 1.3 에너지 비용
|
||||||
|
|
||||||
###### 비용 현황
|
###### 비용 현황
|
||||||
|
|
||||||
- 에너지원별 사용 비용
|
- 에너지원별 사용 비용
|
||||||
- 실시간 요금 계산
|
- 실시간 요금 계산
|
||||||
- 예상 청구액 산정
|
- 예상 청구액 산정
|
||||||
|
|
||||||
###### 비용 분석
|
###### 비용 분석
|
||||||
|
|
||||||
- 시간대별 요금 분석
|
- 시간대별 요금 분석
|
||||||
- 계절별 비용 변동
|
- 계절별 비용 변동
|
||||||
- 절감 기회 도출
|
- 절감 기회 도출
|
||||||
@ -219,23 +236,29 @@ wacefems/
|
|||||||
#### 2. 에너지 모니터링
|
#### 2. 에너지 모니터링
|
||||||
|
|
||||||
##### 2.1 전력 모니터링
|
##### 2.1 전력 모니터링
|
||||||
|
|
||||||
###### 실시간 데이터 수집
|
###### 실시간 데이터 수집
|
||||||
|
|
||||||
- 전력 사용량 측정
|
- 전력 사용량 측정
|
||||||
- 피크 전력 관리
|
- 피크 전력 관리
|
||||||
- 역률 모니터링
|
- 역률 모니터링
|
||||||
|
|
||||||
###### 품질 관리
|
###### 품질 관리
|
||||||
|
|
||||||
- 전압/전류 품질
|
- 전압/전류 품질
|
||||||
- 고조파 분석
|
- 고조파 분석
|
||||||
- 정전 관리
|
- 정전 관리
|
||||||
|
|
||||||
##### 2.2 가스/용수/증기 모니터링
|
##### 2.2 가스/용수/증기 모니터링
|
||||||
|
|
||||||
###### 사용량 관리
|
###### 사용량 관리
|
||||||
|
|
||||||
- 실시간 유량 측정
|
- 실시간 유량 측정
|
||||||
- 압력/온도 모니터링
|
- 압력/온도 모니터링
|
||||||
- 품질 데이터 수집
|
- 품질 데이터 수집
|
||||||
|
|
||||||
###### 효율성 분석
|
###### 효율성 평가
|
||||||
|
|
||||||
- 손실률 계산
|
- 손실률 계산
|
||||||
- 최적 운영점 도출
|
- 최적 운영점 도출
|
||||||
- 누수/누기 감지
|
- 누수/누기 감지
|
||||||
@ -243,34 +266,43 @@ wacefems/
|
|||||||
#### 3. 설비 관리
|
#### 3. 설비 관리
|
||||||
|
|
||||||
##### 3.1 설비 목록
|
##### 3.1 설비 목록
|
||||||
|
|
||||||
###### 기본 정보 관리
|
###### 기본 정보 관리
|
||||||
|
|
||||||
- 설비 마스터 데이터
|
- 설비 마스터 데이터
|
||||||
- 설비 사양 정보
|
- 설비 사양 정보
|
||||||
- 위치 정보
|
- 위치 정보
|
||||||
|
|
||||||
###### 문서 관리
|
###### 문서 관리
|
||||||
|
|
||||||
- 설비 매뉴얼
|
- 설비 매뉴얼
|
||||||
- 도면 관리
|
- 도면 관리
|
||||||
- 인증서 관리
|
- 인증서 관리
|
||||||
|
|
||||||
##### 3.2 설비 상태 모니터링
|
##### 3.2 설비 상태 모니터링
|
||||||
|
|
||||||
###### 실시간 모니터링
|
###### 실시간 모니터링
|
||||||
|
|
||||||
- 가동 상태 확인
|
- 가동 상태 확인
|
||||||
- 성능 지표 모니터링
|
- 성능 지표 모니터링
|
||||||
- 이상징후 감지
|
- 이상징후 감지
|
||||||
|
|
||||||
###### 데이터 로깅
|
###### 데이터 로깅
|
||||||
|
|
||||||
- 운전 데이터 기록
|
- 운전 데이터 기록
|
||||||
- 상태 변화 이력
|
- 상태 변화 이력
|
||||||
- 센서 데이터 저장
|
- 센서 데이터 저장
|
||||||
|
|
||||||
##### 3.3 정비 관리
|
##### 3.3 정비 관리
|
||||||
|
|
||||||
###### 정비 계획
|
###### 정비 계획
|
||||||
|
|
||||||
- 정기 점검 계획
|
- 정기 점검 계획
|
||||||
- 예방 정비 일정
|
- 예방 정비 일정
|
||||||
- 부품 교체 계획
|
- 부품 교체 계획
|
||||||
|
|
||||||
###### 이력 관리
|
###### 이력 관리
|
||||||
|
|
||||||
- 정비 작업 기록
|
- 정비 작업 기록
|
||||||
- 부품 교체 이력
|
- 부품 교체 이력
|
||||||
- 비용 관리
|
- 비용 관리
|
||||||
@ -278,34 +310,43 @@ wacefems/
|
|||||||
#### 4. 분석/리포트
|
#### 4. 분석/리포트
|
||||||
|
|
||||||
##### 4.1 에너지 분석
|
##### 4.1 에너지 분석
|
||||||
|
|
||||||
###### 사용량 분석
|
###### 사용량 분석
|
||||||
|
|
||||||
- 시계열 분석
|
- 시계열 분석
|
||||||
- 패턴 분석
|
- 패턴 분석
|
||||||
- 이상치 탐지
|
- 이상치 탐지
|
||||||
|
|
||||||
###### 효율성 분석
|
###### 효율성 분석
|
||||||
|
|
||||||
- 설비별 효율
|
- 설비별 효율
|
||||||
- 구역별 효율
|
- 구역별 효율
|
||||||
- 개선점 도출
|
- 개선점 도출
|
||||||
|
|
||||||
##### 4.2 원단위 분석
|
##### 4.2 원단위 분석
|
||||||
|
|
||||||
###### 생산성 분석
|
###### 생산성 분석
|
||||||
|
|
||||||
- 생산량 대비 에너지 사용량
|
- 생산량 대비 에너지 사용량
|
||||||
- 제품별 에너지 원단위
|
- 제품별 에너지 원단위
|
||||||
- 공정별 에너지 효율
|
- 공정별 에너지 효율
|
||||||
|
|
||||||
###### 벤치마킹
|
###### 벤치마킹
|
||||||
|
|
||||||
- 업계 평균 비교
|
- 업계 평균 비교
|
||||||
- 최적 사례 분석
|
- 최적 사례 분석
|
||||||
- 개선 목표 설정
|
- 개선 목표 설정
|
||||||
|
|
||||||
##### 4.3 보고서 생성
|
##### 4.3 보고서 생성
|
||||||
|
|
||||||
###### 정기 보고서
|
###### 정기 보고서
|
||||||
|
|
||||||
- 일일/주간/월간 보고서
|
- 일일/주간/월간 보고서
|
||||||
- 분기/연간 보고서
|
- 분기/연간 보고서
|
||||||
- 관리 보고서
|
- 관리 보고서
|
||||||
|
|
||||||
###### 맞춤형 보고서
|
###### 맞춤형 보고서
|
||||||
|
|
||||||
- 사용자 정의 보고서
|
- 사용자 정의 보고서
|
||||||
- 규제 대응 보고서
|
- 규제 대응 보고서
|
||||||
- 경영 분석 보고서
|
- 경영 분석 보고서
|
||||||
@ -313,25 +354,31 @@ wacefems/
|
|||||||
#### 5. 알람/이벤트
|
#### 5. 알람/이벤트
|
||||||
|
|
||||||
##### 5.1 실시간 알람
|
##### 5.1 실시간 알람
|
||||||
|
|
||||||
###### 알람 유형
|
###### 알람 유형
|
||||||
|
|
||||||
- 설비 이상 알람
|
- 설비 이상 알람
|
||||||
- 에너지 사용량 초과
|
- 에너지 사용량 초과
|
||||||
- 효율 저하
|
- 효율 저하
|
||||||
- 정비 필요
|
- 정비 필요
|
||||||
|
|
||||||
###### 알람 우선순위
|
###### 알람 우선순위
|
||||||
|
|
||||||
- 긴급 (Red)
|
- 긴급 (Red)
|
||||||
- 경고 (Yellow)
|
- 경고 (Yellow)
|
||||||
- 주의 (Blue)
|
- 주의 (Blue)
|
||||||
- 정보 (Gray)
|
- 정보 (Gray)
|
||||||
|
|
||||||
##### 5.2 알람 설정
|
##### 5.2 알람 설정
|
||||||
|
|
||||||
###### 조건 설정
|
###### 조건 설정
|
||||||
|
|
||||||
- 임계값 설정
|
- 임계값 설정
|
||||||
- 시간대별 조건
|
- 시간대별 조건
|
||||||
- 복합 조건
|
- 복합 조건
|
||||||
|
|
||||||
###### 수신자 관리
|
###### 수신자 관리
|
||||||
|
|
||||||
- 담당자 설정
|
- 담당자 설정
|
||||||
- 통보 방식 설정
|
- 통보 방식 설정
|
||||||
- 에스컬레이션 규칙
|
- 에스컬레이션 규칙
|
||||||
@ -339,23 +386,29 @@ wacefems/
|
|||||||
#### 6. 에너지 계획/최적화
|
#### 6. 에너지 계획/최적화
|
||||||
|
|
||||||
##### 6.1 절감 계획
|
##### 6.1 절감 계획
|
||||||
|
|
||||||
###### 목표 설정
|
###### 목표 설정
|
||||||
|
|
||||||
- 에너지원별 절감 목표
|
- 에너지원별 절감 목표
|
||||||
- 비용 절감 목표
|
- 비용 절감 목표
|
||||||
- CO2 감축 목표
|
- CO2 감축 목표
|
||||||
|
|
||||||
###### 실행 계획
|
###### 실행 계획
|
||||||
|
|
||||||
- 단기/중기/장기 계획
|
- 단기/중기/장기 계획
|
||||||
- 투자 계획
|
- 투자 계획
|
||||||
- 효과 분석
|
- 효과 분석
|
||||||
|
|
||||||
##### 6.2 수요 예측
|
##### 6.2 수요 예측
|
||||||
|
|
||||||
###### 예측 모델
|
###### 예측 모델
|
||||||
|
|
||||||
- 시계열 분석
|
- 시계열 분석
|
||||||
- 머신러닝 기반 예측
|
- 머신러닝 기반 예측
|
||||||
- 시나리오 분석
|
- 시나리오 분석
|
||||||
|
|
||||||
###### 최적화
|
###### 최적화
|
||||||
|
|
||||||
- 운전 최적화
|
- 운전 최적화
|
||||||
- 비용 최적화
|
- 비용 최적화
|
||||||
- 효율 최적화
|
- 효율 최적화
|
||||||
@ -363,23 +416,29 @@ wacefems/
|
|||||||
#### 7. 사용자/관리자 설정
|
#### 7. 사용자/관리자 설정
|
||||||
|
|
||||||
##### 7.1 기업 정보
|
##### 7.1 기업 정보
|
||||||
|
|
||||||
###### 기본 정보
|
###### 기본 정보
|
||||||
|
|
||||||
- 회사 정보
|
- 회사 정보
|
||||||
- 사업장 정보
|
- 사업장 정보
|
||||||
- 조직 구조
|
- 조직 구조
|
||||||
|
|
||||||
###### 계약 정보
|
###### 계약 정보
|
||||||
|
|
||||||
- 에너지 공급 계약
|
- 에너지 공급 계약
|
||||||
- 요금제 설정
|
- 요금제 설정
|
||||||
- 목표 관리
|
- 목표 관리
|
||||||
|
|
||||||
##### 7.2 사용자 관리
|
##### 7.2 사용자 관리
|
||||||
|
|
||||||
###### 계정 관리
|
###### 계정 관리
|
||||||
|
|
||||||
- 사용자 등록/수정/삭제
|
- 사용자 등록/수정/삭제
|
||||||
- 권한 그룹 설정
|
- 권한 그룹 설정
|
||||||
- 접근 이력 관리
|
- 접근 이력 관리
|
||||||
|
|
||||||
###### 조직 관리
|
###### 조직 관리
|
||||||
|
|
||||||
- 부서 관리
|
- 부서 관리
|
||||||
- 직책 관리
|
- 직책 관리
|
||||||
- 업무 분장
|
- 업무 분장
|
||||||
@ -387,23 +446,29 @@ wacefems/
|
|||||||
#### 8. 시스템 설정
|
#### 8. 시스템 설정
|
||||||
|
|
||||||
##### 8.1 일반 설정
|
##### 8.1 일반 설정
|
||||||
|
|
||||||
###### 환경 설정
|
###### 환경 설정
|
||||||
|
|
||||||
- 시스템 기본 설정
|
- 시스템 기본 설정
|
||||||
- 언어/시간대 설정
|
- 언어/시간대 설정
|
||||||
- 화면 설정
|
- 화면 설정
|
||||||
|
|
||||||
###### 데이터 설정
|
###### 데이터 설정
|
||||||
|
|
||||||
- 데이터 수집 주기
|
- 데이터 수집 주기
|
||||||
- 보관 기간 설정
|
- 보관 기간 설정
|
||||||
- 백업 설정
|
- 백업 설정
|
||||||
|
|
||||||
##### 8.2 연동 설정
|
##### 8.2 연동 설정
|
||||||
|
|
||||||
###### 외부 시스템 연동
|
###### 외부 시스템 연동
|
||||||
|
|
||||||
- ERP 연동
|
- ERP 연동
|
||||||
- MES 연동
|
- MES 연동
|
||||||
- 센서 데이터 연동
|
- 센서 데이터 연동
|
||||||
|
|
||||||
###### API 설정
|
###### API 설정
|
||||||
|
|
||||||
- API 키 관리
|
- API 키 관리
|
||||||
- 접근 권한 설정
|
- 접근 권한 설정
|
||||||
- 로그 관리
|
- 로그 관리
|
||||||
@ -411,23 +476,29 @@ wacefems/
|
|||||||
#### 9. 도움말/지원
|
#### 9. 도움말/지원
|
||||||
|
|
||||||
##### 9.1 사용자 가이드
|
##### 9.1 사용자 가이드
|
||||||
|
|
||||||
###### 매뉴얼
|
###### 매뉴얼
|
||||||
|
|
||||||
- 시스템 사용 설명서
|
- 시스템 사용 설명서
|
||||||
- 기능별 가이드
|
- 기능별 가이드
|
||||||
- FAQ
|
- FAQ
|
||||||
|
|
||||||
###### 교육 자료
|
###### 교육 자료
|
||||||
|
|
||||||
- 동영상 매뉴얼
|
- 동영상 매뉴얼
|
||||||
- 실습 가이드
|
- 실습 가이드
|
||||||
- 문제 해결 가이드
|
- 문제 해결 가이드
|
||||||
|
|
||||||
##### 9.2 기술 지원
|
##### 9.2 기술 지원
|
||||||
|
|
||||||
###### 지원 센터
|
###### 지원 센터
|
||||||
|
|
||||||
- 문의 접수
|
- 문의 접수
|
||||||
- 원격 지원
|
- 원격 지원
|
||||||
- 장애 처리
|
- 장애 처리
|
||||||
|
|
||||||
###### 자료실
|
###### 자료실
|
||||||
|
|
||||||
- 기술 문서
|
- 기술 문서
|
||||||
- 참고 자료
|
- 참고 자료
|
||||||
- 양식 다운로드
|
- 양식 다운로드
|
||||||
@ -435,12 +506,14 @@ wacefems/
|
|||||||
#### 10. 커뮤니티
|
#### 10. 커뮤니티
|
||||||
|
|
||||||
##### 10.1 게시판
|
##### 10.1 게시판
|
||||||
|
|
||||||
- 공지사항
|
- 공지사항
|
||||||
- 자유게시판
|
- 자유게시판
|
||||||
- 기술 토론
|
- 기술 토론
|
||||||
- 개선 제안
|
- 개선 제안
|
||||||
|
|
||||||
##### 10.2 뉴스
|
##### 10.2 뉴스
|
||||||
|
|
||||||
- 에너지 뉴스
|
- 에너지 뉴스
|
||||||
- 정책 동향
|
- 정책 동향
|
||||||
- 기술 동향
|
- 기술 동향
|
||||||
|
85
dev_full_docke.sh
Executable file
85
dev_full_docke.sh
Executable file
@ -0,0 +1,85 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Docker 컨테이너 정리
|
||||||
|
docker-compose -f docker-compose-dev.yml down
|
||||||
|
docker system prune -af
|
||||||
|
docker image prune -af
|
||||||
|
docker volume prune -af
|
||||||
|
docker network prune -f
|
||||||
|
|
||||||
|
# 환경 설정 파일 복사
|
||||||
|
cp .env-ser .env
|
||||||
|
|
||||||
|
# Git 변경사항 커밋 및 푸시
|
||||||
|
git add .
|
||||||
|
git commit -am "auto commit"
|
||||||
|
current_branch=$(git branch --show-current)
|
||||||
|
git push origin $current_branch
|
||||||
|
|
||||||
|
# 마스터 브랜치와 병합 여부 확인
|
||||||
|
echo "You are currently on branch: $current_branch"
|
||||||
|
echo "Would you like to merge the current branch with master? (Y/N) [Y]"
|
||||||
|
read proceed_merge
|
||||||
|
proceed_merge=${proceed_merge:-Y}
|
||||||
|
|
||||||
|
if [ "$proceed_merge" == "Y" ] || [ "$proceed_merge" == "y" ]; then
|
||||||
|
# 마스터 브랜치로 전환 및 업데이트
|
||||||
|
git checkout master
|
||||||
|
git pull origin master
|
||||||
|
|
||||||
|
# 현재 브랜치를 마스터에 병합
|
||||||
|
git merge --no-edit $current_branch
|
||||||
|
|
||||||
|
# 병합 결과 푸시
|
||||||
|
git push origin master
|
||||||
|
|
||||||
|
# 원래 브랜치로 돌아가기
|
||||||
|
git checkout $current_branch
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 새로운 브랜치 생성
|
||||||
|
# 현재 날짜를 YYYYMMDD 형식으로 가져오기
|
||||||
|
current_date=$(date +'%Y%m%d')
|
||||||
|
# 브랜치 이름에서 날짜 부분 추출
|
||||||
|
branch_date=${current_branch:1:8}
|
||||||
|
# 현재 날짜와 브랜치 날짜가 같으면 뒤의 2자리 숫자를 증가시킴
|
||||||
|
if [ "$branch_date" == "$current_date" ]; then
|
||||||
|
# 브랜치 이름에서 뒤의 2자리 숫자 추출
|
||||||
|
branch_number=${current_branch:9:2}
|
||||||
|
# 숫자를 10진수로 변환하고 1 증가시킴
|
||||||
|
branch_number=$((10#$branch_number + 1))
|
||||||
|
else
|
||||||
|
# 날짜가 다르면 01부터 시작
|
||||||
|
branch_number=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 사용 가능한 브랜치 이름 찾기
|
||||||
|
while true; do
|
||||||
|
# 2자리 숫자로 포맷팅
|
||||||
|
formatted_number=$(printf "%02d" $branch_number)
|
||||||
|
new_branch="V${current_date}${formatted_number}"
|
||||||
|
|
||||||
|
# 로컬과 원격에 해당 이름의 브랜치가 존재하는지 확인
|
||||||
|
if ! git show-ref --quiet refs/heads/$new_branch &&
|
||||||
|
! git ls-remote --exit-code --heads origin $new_branch > /dev/null 2>&1; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 존재한다면 숫자 증가
|
||||||
|
branch_number=$((branch_number + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
# 새로운 브랜치 생성
|
||||||
|
git checkout -b $new_branch
|
||||||
|
|
||||||
|
# 새로운 브랜치 푸시 (원격 브랜치로 푸시하려면 git push origin $new_branch 실행)
|
||||||
|
git push origin $new_branch
|
||||||
|
|
||||||
|
# 변경 사항 확인
|
||||||
|
git status
|
||||||
|
|
||||||
|
# .env-dev 파일을 .env로 복사하여 원래 상태로 복원
|
||||||
|
cp .env-dev .env
|
||||||
|
|
||||||
|
# Docker 컨테이너 재시작
|
||||||
|
docker-compose -f docker-compose-dev.yml up -d --build
|
79
dev_git_only.sh
Executable file
79
dev_git_only.sh
Executable file
@ -0,0 +1,79 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 환경 설정 파일 복사
|
||||||
|
cp .env-ser .env
|
||||||
|
|
||||||
|
# Git 변경사항 커밋 및 푸시
|
||||||
|
git add .
|
||||||
|
git commit -am "auto commit"
|
||||||
|
current_branch=$(git branch --show-current)
|
||||||
|
git push origin $current_branch
|
||||||
|
|
||||||
|
# 마스터 브랜치와 병합 여부 확인
|
||||||
|
echo "You are currently on branch: $current_branch"
|
||||||
|
echo "Would you like to merge the current branch with master? (Y/N) [Y]"
|
||||||
|
read proceed_merge
|
||||||
|
proceed_merge=${proceed_merge:-Y}
|
||||||
|
|
||||||
|
if [ "$proceed_merge" == "Y" ] || [ "$proceed_merge" == "y" ]; then
|
||||||
|
# 마스터 브랜치로 전환 및 업데이트
|
||||||
|
git checkout master
|
||||||
|
git pull origin master
|
||||||
|
|
||||||
|
# 현재 브랜치를 마스터에 병합
|
||||||
|
git merge --no-edit $current_branch
|
||||||
|
|
||||||
|
# 병합 결과 푸시
|
||||||
|
git push origin master
|
||||||
|
|
||||||
|
# 원래 브랜치로 돌아가기
|
||||||
|
git checkout $current_branch
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 새로운 브랜치 생성
|
||||||
|
# 현재 날짜를 YYYYMMDD 형식으로 가져오기
|
||||||
|
current_date=$(date +'%Y%m%d')
|
||||||
|
# 브랜치 이름에서 날짜 부분 추출
|
||||||
|
branch_date=${current_branch:1:8}
|
||||||
|
# 현재 날짜와 브랜치 날짜가 같으면 뒤의 2자리 숫자를 증가시킴
|
||||||
|
if [ "$branch_date" == "$current_date" ]; then
|
||||||
|
# 브랜치 이름에서 뒤의 2자리 숫자 추출
|
||||||
|
branch_number=${current_branch:9:2}
|
||||||
|
# 숫자를 10진수로 변환하고 1 증가시킴
|
||||||
|
branch_number=$((10#$branch_number + 1))
|
||||||
|
else
|
||||||
|
# 날짜가 다르면 01부터 시작
|
||||||
|
branch_number=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 사용 가능한 브랜치 이름 찾기
|
||||||
|
while true; do
|
||||||
|
# 2자리 숫자로 포맷팅
|
||||||
|
formatted_number=$(printf "%02d" $branch_number)
|
||||||
|
new_branch="V${current_date}${formatted_number}"
|
||||||
|
|
||||||
|
# 로컬과 원격에 해당 이름의 브랜치가 존재하는지 확인
|
||||||
|
if ! git show-ref --quiet refs/heads/$new_branch &&
|
||||||
|
! git ls-remote --exit-code --heads origin $new_branch > /dev/null 2>&1; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 존재한다면 숫자 증가
|
||||||
|
branch_number=$((branch_number + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
# 새로운 브랜치 생성
|
||||||
|
git checkout -b $new_branch
|
||||||
|
|
||||||
|
# 새로운 브랜치 푸시 (원격 브랜치로 푸시하려면 git push origin $new_branch 실행)
|
||||||
|
git push origin $new_branch
|
||||||
|
|
||||||
|
# 변경 사항 확인
|
||||||
|
git status
|
||||||
|
|
||||||
|
# .env-dev 파일을 .env로 복사하여 원래 상태로 복원
|
||||||
|
cp .env-dev .env
|
||||||
|
|
||||||
|
# docker-compose -f docker-compose-dev.yml up -d --build
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user