047bb0f5e64df5f9959048974e85cc5f3c3fca7c
EAPIM Portal
광주은행 엔터프라이즈 API 포털 관리 시스템
프로젝트 클론 (Git Clone)
아래 스크립트를 복사하여 한 번에 실행하면 모든 프로젝트를 클론합니다:
# 변수 설정 (환경에 맞게 수정하세요)
GIT_URL="ssh://git@192.168.240.178:18081/eapim"
PROJECT_HOME="/c/eactive/workspaces/kjb-eapim-devPortal"
DEFAULT_BRANCH="jenkins_with_weblogic"
# 프로젝트 홈 디렉토리 생성 및 이동
mkdir -p "$PROJECT_HOME"
cd "$PROJECT_HOME"
# 메인 프로젝트 클론
git clone -b "$DEFAULT_BRANCH" "$GIT_URL/kjb-eapim.git" kjb-eapim
# 의존 모듈 클론 (kjb-eapim 폴더와 동일 레벨)
mkdir -p eapim-online
git clone -b "$DEFAULT_BRANCH" "$GIT_URL/elink-online-core-jpa.git" eapim-online/elink-online-core-jpa
git clone -b "$DEFAULT_BRANCH" "$GIT_URL/elink-portal-common.git" elink-portal-common
git clone -b "$DEFAULT_BRANCH" "$GIT_URL/kjb-safedb.git" kjb-safedb
# 클론 후 폴더 구조 확인
echo "=== 프로젝트 구조 ==="
ls -la "$PROJECT_HOME"
클론 후 폴더 구조
$PROJECT_HOME/
├── kjb-eapim/ # 메인 프로젝트
│ └── eapim-portal/ # 이 프로젝트 (Portal)
├── eapim-online/ # Gateway 데이터 모델
│ └── elink-online-core-jpa/ # JPA 엔티티 모듈
├── elink-portal-common/ # 공통 유틸리티
└── kjb-safedb/ # SafeDB 암호화 라이브러리
의존 관계 (settings.gradle 참조)
eapim-portal
├── elink-online-core-jpa → ../eapim-online/elink-online-core-jpa
├── elink-portal-common → ../elink-portal-common
└── kjb-safedb → ../kjb-safedb
프로젝트 개요
EAPIM Portal은 광주은행의 API 서비스를 관리하고, 사용자 등록, API 키 발급, 문서화, 테스트 기능을 제공하는 웹 기반 플랫폼입니다.
기술 스택
- Spring Boot 2.7.18
- Java 8
- Gradle 8.7
- Oracle 19c
- Spring Security
- JPA/Hibernate 5.6.15 with Envers
- MapStruct, Lombok
초기 세팅 가이드
사전 요구사항
- JDK 8 이상
- Gradle 8.7
- Git
- Oracle 19c (또는 개발 환경에 따라 접근 가능한 DB)
Git 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에서 초기 세팅
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:
# 일반 환경
export GRADLE_CMD="gradle"
# msi-gf63 환경
export GRADLE_CMD="/c/eactive/workspaces/shell-scripts/kjb-gradle.sh"
Windows CMD:
REM 일반 환경
set GRADLE_CMD=gradle
REM msi-gf63 환경
set GRADLE_CMD=C:\eactive\workspaces\shell-scripts\kjb-gradle.sh
빌드 및 실행 명령어
# 개발 환경 실행
$GRADLE_CMD bootRun
# 또는: %GRADLE_CMD% bootRun (CMD)
# WAR 빌드
$GRADLE_CMD bootWar
# 테스트
$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.)
├── common/ # 공통 관심사
├── config/ # Spring 설정
└── gateway/ # Gateway DB 접근
외부 모듈
이 프로젝트는 다음 모듈에 의존합니다 (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 코딩 어시스턴트 지침 파일
이 프로젝트는 여러 AI 코딩 어시스턴트를 지원합니다. 각 도구는 다음 파일을 참조합니다:
지침 파일 위치
| AI 도구 | 지침 파일 경로 | 용도 |
|---|---|---|
| Claude Code | CLAUDE.md |
마스터 지침 파일 (한글) |
| GitHub Copilot | .github/copilot-instructions.md |
Copilot용 지침 |
| Cursor | .cursorrules |
Cursor용 간결한 규칙 |
지침 파일 관리 방법
-
마스터 파일:
CLAUDE.md- 가장 상세한 프로젝트 지침을 포함
- 한글로 작성되어 한국 개발팀이 이해하기 쉬움
- 수정 시 이 파일을 먼저 업데이트
-
동기화:
# CLAUDE.md 수정 후 다른 파일들 동기화 cp CLAUDE.md .github/copilot-instructions.md # .cursorrules는 간결한 버전이므로 필요시 수동 업데이트 -
새로운 AI 도구 지원 추가:
- Windsurf:
.windsurfrules파일 생성 - 기타 도구: 해당 도구의 규칙 파일명 확인 후 생성
- Windsurf:
지침 파일에 포함된 내용
- 프로젝트 개요 및 기술 스택
- 빌드 명령어 및 개발 환경 설정
- 아키텍처 구조 (멀티 모듈, 이중 DB)
- 주요 기능 및 비즈니스 로직
- 개발 패턴 및 코딩 컨벤션
- 보안, 트랜잭션, 로깅 가이드
- 테스트 패턴
- 배포 방법
환경 설정
프로파일
- dev: 개발 환경
- stage: 스테이징 환경
- prod: 운영 환경
- gf63: 개인 개발 환경
- kjb_rinjae: 개인 개발 환경
데이터베이스
- EMS Database: Portal 사용자, 조직, API 키
- Gateway Database: API 명세, 서비스
주요 기능
- 사용자 관리 (내부/기업)
- API 키 관리 및 승인 워크플로우
- API 카탈로그 및 문서화
- API 테스트 프록시
- 감사 추적 (Hibernate Envers)
배포
지원 서버
- JEUS
- WebLogic
- Tomcat (내장)
Docker
./build_docker.sh
docker run -p 8080:8080 eapim-portal:latest
관련 프로젝트
프로젝트 구조 (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 스크립트 (선택사항)
문서
- 프로젝트 상세 지침:
CLAUDE.md(한글) - 사용자 가이드:
개발자포탈.md(한글) - 빌드 스크립트:
build-gf63.sh,deploy_portal.sh
Description
Languages
JavaScript
59.8%
HTML
12.9%
Java
11.8%
CSS
9.5%
SCSS
6%