readme update
This commit is contained in:
@@ -15,6 +15,39 @@
|
|||||||
- JPA/Hibernate 5.6.15 with Envers (감사 추적)
|
- JPA/Hibernate 5.6.15 with Envers (감사 추적)
|
||||||
- MapStruct (DTO 매핑), Lombok (보일러플레이트 제거)
|
- MapStruct (DTO 매핑), Lombok (보일러플레이트 제거)
|
||||||
|
|
||||||
|
## Git 브랜치 전략
|
||||||
|
|
||||||
|
**저장소 정보:**
|
||||||
|
- 기본 저장소: `ssh://git@192.168.240.178:18081/eapim/eapim-portal.git`
|
||||||
|
- 대체 저장소: `https://git.eactive.synology.me:8090/kjb-eapim/eapim-portal.git`
|
||||||
|
|
||||||
|
**브랜치:**
|
||||||
|
- **jenkins_with_weblogic**: Jenkins 빌드와 WebLogic 테스트를 위한 브랜치 (기본 개발 브랜치)
|
||||||
|
- Jenkins CI/CD 파이프라인 설정 포함
|
||||||
|
- WebLogic 배포 및 테스트 환경 설정
|
||||||
|
- 일상적인 개발 작업은 이 브랜치에서 수행
|
||||||
|
- 기능 개발, 버그 수정, 테스트 등 모든 개발 활동의 기본 브랜치
|
||||||
|
|
||||||
|
- **master**: 완벽히 동작하는 검증된 코드 저장소 (안정 브랜치)
|
||||||
|
- 프로덕션 배포 가능한 안정적인 코드만 포함
|
||||||
|
- jenkins_with_weblogic 브랜치에서 충분히 테스트된 코드만 병합
|
||||||
|
- 직접 커밋 금지, Pull Request를 통한 병합만 허용
|
||||||
|
|
||||||
|
**브랜치 사용 가이드:**
|
||||||
|
```bash
|
||||||
|
# 개발 시작 시 jenkins_with_weblogic 브랜치에서 작업
|
||||||
|
git checkout jenkins_with_weblogic
|
||||||
|
|
||||||
|
# 기능 개발 후 커밋
|
||||||
|
git add .
|
||||||
|
git commit -m "기능 설명"
|
||||||
|
|
||||||
|
# jenkins_with_weblogic 브랜치에 푸시
|
||||||
|
git push origin jenkins_with_weblogic
|
||||||
|
|
||||||
|
# 충분한 테스트 완료 후 master로 병합 (Pull Request 사용)
|
||||||
|
```
|
||||||
|
|
||||||
## 빌드 명령어
|
## 빌드 명령어
|
||||||
|
|
||||||
### 애플리케이션 실행
|
### 애플리케이션 실행
|
||||||
|
|||||||
@@ -16,23 +16,255 @@
|
|||||||
- JPA/Hibernate 5.6.15 with Envers
|
- JPA/Hibernate 5.6.15 with Envers
|
||||||
- MapStruct, Lombok
|
- MapStruct, Lombok
|
||||||
|
|
||||||
|
## 초기 세팅 가이드
|
||||||
|
|
||||||
|
### 사전 요구사항
|
||||||
|
|
||||||
|
- JDK 8 이상
|
||||||
|
- Gradle 8.7
|
||||||
|
- Git
|
||||||
|
- Oracle 19c (또는 개발 환경에 따라 접근 가능한 DB)
|
||||||
|
|
||||||
|
### Git Bash에서 초기 세팅
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# ====================================
|
||||||
|
# 1. 변수 설정 (프로젝트 경로 및 브랜치)
|
||||||
|
# ====================================
|
||||||
|
export WORKSPACE_DIR="/c/eactive/workspaces/kjb-eapim"
|
||||||
|
export PROJECT_BRANCH="jenkins_with_weblogic"
|
||||||
|
|
||||||
|
# Git Repository URL 설정
|
||||||
|
# 기본: ssh://git@192.168.240.178:18081/eapim
|
||||||
|
# 대체: https://git.eactive.synology.me:8090/kjb-eapim
|
||||||
|
export GIT_REPO_BASE="ssh://git@192.168.240.178:18081/eapim"
|
||||||
|
# export GIT_REPO_BASE="https://git.eactive.synology.me:8090/kjb-eapim"
|
||||||
|
|
||||||
|
# Gradle 명령어 설정
|
||||||
|
# 일반 환경: gradle
|
||||||
|
# msi-gf63 환경: /c/eactive/workspaces/shell-scripts/kjb-gradle.sh
|
||||||
|
export GRADLE_CMD="gradle"
|
||||||
|
# export GRADLE_CMD="/c/eactive/workspaces/shell-scripts/kjb-gradle.sh"
|
||||||
|
|
||||||
|
# ====================================
|
||||||
|
# 2. 작업 디렉토리 생성
|
||||||
|
# ====================================
|
||||||
|
mkdir -p $WORKSPACE_DIR
|
||||||
|
cd $WORKSPACE_DIR
|
||||||
|
|
||||||
|
# ====================================
|
||||||
|
# 3. eapim-portal 프로젝트 클론
|
||||||
|
# ====================================
|
||||||
|
git clone ${GIT_REPO_BASE}/eapim-portal.git
|
||||||
|
cd eapim-portal
|
||||||
|
|
||||||
|
# 프로젝트 브랜치로 체크아웃
|
||||||
|
git checkout $PROJECT_BRANCH
|
||||||
|
|
||||||
|
# ====================================
|
||||||
|
# 4. eapim-online 프로젝트 클론 (elink-online-core-jpa 포함)
|
||||||
|
# ====================================
|
||||||
|
cd $WORKSPACE_DIR
|
||||||
|
git clone ${GIT_REPO_BASE}/eapim-online.git
|
||||||
|
cd eapim-online
|
||||||
|
git checkout $PROJECT_BRANCH
|
||||||
|
|
||||||
|
# ====================================
|
||||||
|
# 5. 의존 모듈 클론
|
||||||
|
# ====================================
|
||||||
|
cd $WORKSPACE_DIR
|
||||||
|
|
||||||
|
# elink-portal-common 클론
|
||||||
|
git clone ${GIT_REPO_BASE}/elink-portal-common.git
|
||||||
|
cd elink-portal-common
|
||||||
|
git checkout master # 또는 필요한 브랜치
|
||||||
|
|
||||||
|
# kjb-safedb 클론
|
||||||
|
cd $WORKSPACE_DIR
|
||||||
|
git clone ${GIT_REPO_BASE}/kjb-safedb.git
|
||||||
|
cd kjb-safedb
|
||||||
|
git checkout master # 또는 필요한 브랜치
|
||||||
|
|
||||||
|
# ====================================
|
||||||
|
# 6. 최종 폴더 구조 확인
|
||||||
|
# ====================================
|
||||||
|
# kjb-eapim/
|
||||||
|
# ├── eapim-portal/
|
||||||
|
# ├── eapim-online/
|
||||||
|
# │ └── elink-online-core-jpa/
|
||||||
|
# ├── elink-portal-common/
|
||||||
|
# └── kjb-safedb/
|
||||||
|
|
||||||
|
# ====================================
|
||||||
|
# 7. eapim-portal 프로젝트로 이동 및 디펜던시 다운로드
|
||||||
|
# ====================================
|
||||||
|
cd $WORKSPACE_DIR/eapim-portal
|
||||||
|
|
||||||
|
# Gradle 디펜던시 다운로드
|
||||||
|
$GRADLE_CMD dependencies
|
||||||
|
```
|
||||||
|
|
||||||
|
### Windows CMD에서 초기 세팅
|
||||||
|
|
||||||
|
```cmd
|
||||||
|
REM ====================================
|
||||||
|
REM 1. 변수 설정 (프로젝트 경로 및 브랜치)
|
||||||
|
REM ====================================
|
||||||
|
set WORKSPACE_DIR=C:\eactive\workspaces\kjb-eapim
|
||||||
|
set PROJECT_BRANCH=jenkins_with_weblogic
|
||||||
|
|
||||||
|
REM Git Repository URL 설정
|
||||||
|
REM 기본: ssh://git@192.168.240.178:18081/eapim
|
||||||
|
REM 대체: https://git.eactive.synology.me:8090/kjb-eapim
|
||||||
|
set GIT_REPO_BASE=ssh://git@192.168.240.178:18081/eapim
|
||||||
|
REM set GIT_REPO_BASE=https://git.eactive.synology.me:8090/kjb-eapim
|
||||||
|
|
||||||
|
REM Gradle 명령어 설정
|
||||||
|
REM 일반 환경: gradle
|
||||||
|
REM msi-gf63 환경: C:\eactive\workspaces\shell-scripts\kjb-gradle.sh
|
||||||
|
set GRADLE_CMD=gradle
|
||||||
|
REM set GRADLE_CMD=C:\eactive\workspaces\shell-scripts\kjb-gradle.sh
|
||||||
|
|
||||||
|
REM ====================================
|
||||||
|
REM 2. 작업 디렉토리 생성
|
||||||
|
REM ====================================
|
||||||
|
if not exist "%WORKSPACE_DIR%" mkdir "%WORKSPACE_DIR%"
|
||||||
|
cd /d "%WORKSPACE_DIR%"
|
||||||
|
|
||||||
|
REM ====================================
|
||||||
|
REM 3. eapim-portal 프로젝트 클론
|
||||||
|
REM ====================================
|
||||||
|
git clone %GIT_REPO_BASE%/eapim-portal.git
|
||||||
|
cd eapim-portal
|
||||||
|
|
||||||
|
REM 프로젝트 브랜치로 체크아웃
|
||||||
|
git checkout %PROJECT_BRANCH%
|
||||||
|
|
||||||
|
REM ====================================
|
||||||
|
REM 4. eapim-online 프로젝트 클론 (elink-online-core-jpa 포함)
|
||||||
|
REM ====================================
|
||||||
|
cd /d "%WORKSPACE_DIR%"
|
||||||
|
git clone %GIT_REPO_BASE%/eapim-online.git
|
||||||
|
cd eapim-online
|
||||||
|
git checkout %PROJECT_BRANCH%
|
||||||
|
|
||||||
|
REM ====================================
|
||||||
|
REM 5. 의존 모듈 클론
|
||||||
|
REM ====================================
|
||||||
|
cd /d "%WORKSPACE_DIR%"
|
||||||
|
|
||||||
|
REM elink-portal-common 클론
|
||||||
|
git clone %GIT_REPO_BASE%/elink-portal-common.git
|
||||||
|
cd elink-portal-common
|
||||||
|
git checkout master
|
||||||
|
|
||||||
|
REM kjb-safedb 클론
|
||||||
|
cd /d "%WORKSPACE_DIR%"
|
||||||
|
git clone %GIT_REPO_BASE%/kjb-safedb.git
|
||||||
|
cd kjb-safedb
|
||||||
|
git checkout master
|
||||||
|
|
||||||
|
REM ====================================
|
||||||
|
REM 6. 최종 폴더 구조 확인
|
||||||
|
REM ====================================
|
||||||
|
REM kjb-eapim\
|
||||||
|
REM ├── eapim-portal\
|
||||||
|
REM ├── eapim-online\
|
||||||
|
REM │ └── elink-online-core-jpa\
|
||||||
|
REM ├── elink-portal-common\
|
||||||
|
REM └── kjb-safedb\
|
||||||
|
|
||||||
|
REM ====================================
|
||||||
|
REM 7. eapim-portal 프로젝트로 이동 및 디펜던시 다운로드
|
||||||
|
REM ====================================
|
||||||
|
cd /d "%WORKSPACE_DIR%\eapim-portal"
|
||||||
|
|
||||||
|
REM Gradle 디펜던시 다운로드
|
||||||
|
%GRADLE_CMD% dependencies
|
||||||
|
```
|
||||||
|
|
||||||
|
### 환경별 설정 파일
|
||||||
|
|
||||||
|
프로젝트 클론 후 필요한 환경 설정을 수정하세요:
|
||||||
|
|
||||||
|
- `src/main/resources/application-dev.yml` - 개발 환경
|
||||||
|
- `src/main/resources/application-stage.yml` - 스테이징 환경
|
||||||
|
- `src/main/resources/application-prod.yml` - 운영 환경
|
||||||
|
- `src/main/resources/application-gf63.yml` - 개인 개발 환경
|
||||||
|
|
||||||
|
### 데이터베이스 설정
|
||||||
|
|
||||||
|
개발 환경(dev)에서는 `application-dev.yml`에 데이터베이스 설정이 포함되어 있습니다.
|
||||||
|
스테이징/운영 환경에서는 JNDI 데이터소스가 필요합니다:
|
||||||
|
|
||||||
|
- `jdbc/dsOBP_EMS` - Portal 데이터베이스
|
||||||
|
- `jdbc/dsOBP_AGW` - Gateway 데이터베이스
|
||||||
|
|
||||||
|
### 주의사항
|
||||||
|
|
||||||
|
- **gradlew 사용 금지**: 반드시 시스템에 설치된 gradle을 직접 사용하거나 환경에 맞는 스크립트를 사용하세요
|
||||||
|
- **Gradle 명령어 변수화**: 위의 `GRADLE_CMD` 변수를 설정하면 환경별로 다른 gradle 명령어 사용 가능
|
||||||
|
- **SafeDB**: 암호화 기능이 필요한 경우 kjb-safedb 모듈 설정 확인
|
||||||
|
|
||||||
## 빌드 및 실행
|
## 빌드 및 실행
|
||||||
|
|
||||||
|
### Gradle 명령어 설정
|
||||||
|
|
||||||
|
사용 환경에 따라 적절한 gradle 명령어를 설정하세요:
|
||||||
|
|
||||||
|
**Git Bash:**
|
||||||
|
```bash
|
||||||
|
# 일반 환경
|
||||||
|
export GRADLE_CMD="gradle"
|
||||||
|
|
||||||
|
# msi-gf63 환경
|
||||||
|
export GRADLE_CMD="/c/eactive/workspaces/shell-scripts/kjb-gradle.sh"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Windows CMD:**
|
||||||
|
```cmd
|
||||||
|
REM 일반 환경
|
||||||
|
set GRADLE_CMD=gradle
|
||||||
|
|
||||||
|
REM msi-gf63 환경
|
||||||
|
set GRADLE_CMD=C:\eactive\workspaces\shell-scripts\kjb-gradle.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### 빌드 및 실행 명령어
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 개발 환경 실행
|
# 개발 환경 실행
|
||||||
gradle bootRun
|
$GRADLE_CMD bootRun
|
||||||
|
# 또는: %GRADLE_CMD% bootRun (CMD)
|
||||||
|
|
||||||
# WAR 빌드
|
# WAR 빌드
|
||||||
gradle bootWar
|
$GRADLE_CMD bootWar
|
||||||
|
|
||||||
# 테스트
|
# 테스트
|
||||||
gradle test
|
$GRADLE_CMD test
|
||||||
|
|
||||||
|
# 컴파일만 수행
|
||||||
|
$GRADLE_CMD classes
|
||||||
|
|
||||||
|
# 전체 빌드
|
||||||
|
$GRADLE_CMD clean build
|
||||||
```
|
```
|
||||||
|
|
||||||
**주의**: gradlew 사용 금지 - offline gradle 단독 실행
|
**주의**: gradlew 사용 금지 - offline gradle 단독 실행
|
||||||
|
|
||||||
## 프로젝트 구조
|
## 프로젝트 구조
|
||||||
|
|
||||||
|
### 전체 프로젝트 구조
|
||||||
|
```
|
||||||
|
kjb-eapim/
|
||||||
|
├── eapim-portal/ # Portal 웹 애플리케이션 (현재 프로젝트)
|
||||||
|
├── eapim-online/ # Online 프로젝트
|
||||||
|
│ └── elink-online-core-jpa/ # Gateway 데이터 모델
|
||||||
|
├── elink-portal-common/ # 공통 유틸리티
|
||||||
|
└── kjb-safedb/ # SafeDB 암호화 라이브러리
|
||||||
|
```
|
||||||
|
|
||||||
|
### eapim-portal 내부 구조
|
||||||
```
|
```
|
||||||
src/main/java/com/eactive/apim/portal/
|
src/main/java/com/eactive/apim/portal/
|
||||||
├── apps/ # 기능 모듈 (user, app, approval, apis, etc.)
|
├── apps/ # 기능 모듈 (user, app, approval, apis, etc.)
|
||||||
@@ -43,10 +275,10 @@ src/main/java/com/eactive/apim/portal/
|
|||||||
|
|
||||||
## 외부 모듈
|
## 외부 모듈
|
||||||
|
|
||||||
이 프로젝트는 다음 모듈에 의존합니다:
|
이 프로젝트는 다음 모듈에 의존합니다 (settings.gradle 참조):
|
||||||
- `elink-online-core-jpa`: Gateway 데이터 모델
|
- `eapim-online/elink-online-core-jpa`: Gateway 데이터 모델 (../eapim-online/elink-online-core-jpa)
|
||||||
- `elink-portal-common`: 공통 유틸리티
|
- `elink-portal-common`: 공통 유틸리티 (../elink-portal-common)
|
||||||
- `kjb-safedb`: SafeDB 암호화 라이브러리
|
- `kjb-safedb`: SafeDB 암호화 라이브러리 (../kjb-safedb)
|
||||||
|
|
||||||
## AI 코딩 어시스턴트 지침 파일
|
## AI 코딩 어시스턴트 지침 파일
|
||||||
|
|
||||||
@@ -127,9 +359,13 @@ docker run -p 8080:8080 eapim-portal:latest
|
|||||||
|
|
||||||
## 관련 프로젝트
|
## 관련 프로젝트
|
||||||
|
|
||||||
- `../eapim-admin/` - Admin 포털
|
프로젝트 구조 (kjb-eapim 디렉토리 기준):
|
||||||
- `../eapim-online/` - Online 포털
|
- `eapim-portal/` - Portal 웹 애플리케이션 (현재 프로젝트)
|
||||||
- `../kjb-eapim-sql/` - SQL 스크립트
|
- `eapim-online/` - Online 프로젝트 (elink-online-core-jpa 포함)
|
||||||
|
- `elink-portal-common/` - 공통 유틸리티 라이브러리
|
||||||
|
- `kjb-safedb/` - SafeDB 암호화 라이브러리
|
||||||
|
- `eapim-admin/` - Admin 포털 (선택사항)
|
||||||
|
- `kjb-eapim-sql/` - SQL 스크립트 (선택사항)
|
||||||
|
|
||||||
## 문서
|
## 문서
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user