From 9d79e3cf06694ba75579f6bc95f2a800bd338429 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Fri, 21 Nov 2025 21:48:07 +0900 Subject: [PATCH] readme update --- CLAUDE.md | 33 +++++++ README.md | 256 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 279 insertions(+), 10 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index fd952b8..c747154 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -15,6 +15,39 @@ - JPA/Hibernate 5.6.15 with Envers (감사 추적) - 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 사용) +``` + ## 빌드 명령어 ### 애플리케이션 실행 diff --git a/README.md b/README.md index 64b2e56..3637537 100644 --- a/README.md +++ b/README.md @@ -16,23 +16,255 @@ - JPA/Hibernate 5.6.15 with Envers - 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 # 개발 환경 실행 -gradle bootRun +$GRADLE_CMD bootRun +# 또는: %GRADLE_CMD% bootRun (CMD) # WAR 빌드 -gradle bootWar +$GRADLE_CMD bootWar # 테스트 -gradle test +$GRADLE_CMD test + +# 컴파일만 수행 +$GRADLE_CMD classes + +# 전체 빌드 +$GRADLE_CMD clean build ``` **주의**: 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/ ├── apps/ # 기능 모듈 (user, app, approval, apis, etc.) @@ -43,10 +275,10 @@ src/main/java/com/eactive/apim/portal/ ## 외부 모듈 -이 프로젝트는 다음 모듈에 의존합니다: -- `elink-online-core-jpa`: Gateway 데이터 모델 -- `elink-portal-common`: 공통 유틸리티 -- `kjb-safedb`: SafeDB 암호화 라이브러리 +이 프로젝트는 다음 모듈에 의존합니다 (settings.gradle 참조): +- `eapim-online/elink-online-core-jpa`: Gateway 데이터 모델 (../eapim-online/elink-online-core-jpa) +- `elink-portal-common`: 공통 유틸리티 (../elink-portal-common) +- `kjb-safedb`: SafeDB 암호화 라이브러리 (../kjb-safedb) ## AI 코딩 어시스턴트 지침 파일 @@ -127,9 +359,13 @@ docker run -p 8080:8080 eapim-portal:latest ## 관련 프로젝트 -- `../eapim-admin/` - Admin 포털 -- `../eapim-online/` - Online 포털 -- `../kjb-eapim-sql/` - SQL 스크립트 +프로젝트 구조 (kjb-eapim 디렉토리 기준): +- `eapim-portal/` - Portal 웹 애플리케이션 (현재 프로젝트) +- `eapim-online/` - Online 프로젝트 (elink-online-core-jpa 포함) +- `elink-portal-common/` - 공통 유틸리티 라이브러리 +- `kjb-safedb/` - SafeDB 암호화 라이브러리 +- `eapim-admin/` - Admin 포털 (선택사항) +- `kjb-eapim-sql/` - SQL 스크립트 (선택사항) ## 문서