Files
eapim-portal/README.md
T
2025-11-25 14:29:22 +09:00

5.1 KiB

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

빌드 및 실행

# 개발 환경 실행
gradle bootRun

# WAR 빌드
gradle bootWar

# 테스트
gradle test

주의: gradlew 사용 금지 - offline gradle 단독 실행

프로젝트 구조

src/main/java/com/eactive/apim/portal/
├── apps/           # 기능 모듈 (user, app, approval, apis, etc.)
├── common/         # 공통 관심사
├── config/         # Spring 설정
└── gateway/        # Gateway DB 접근

외부 모듈

이 프로젝트는 다음 모듈에 의존합니다:

  • elink-online-core-jpa: Gateway 데이터 모델
  • elink-portal-common: 공통 유틸리티
  • kjb-safedb: SafeDB 암호화 라이브러리

AI 코딩 어시스턴트 지침 파일

이 프로젝트는 여러 AI 코딩 어시스턴트를 지원합니다. 각 도구는 다음 파일을 참조합니다:

지침 파일 위치

AI 도구 지침 파일 경로 용도
Claude Code CLAUDE.md 마스터 지침 파일 (한글)
GitHub Copilot .github/copilot-instructions.md Copilot용 지침
Cursor .cursorrules Cursor용 간결한 규칙

지침 파일 관리 방법

  1. 마스터 파일: CLAUDE.md

    • 가장 상세한 프로젝트 지침을 포함
    • 한글로 작성되어 한국 개발팀이 이해하기 쉬움
    • 수정 시 이 파일을 먼저 업데이트
  2. 동기화:

    # CLAUDE.md 수정 후 다른 파일들 동기화
    cp CLAUDE.md .github/copilot-instructions.md
    # .cursorrules는 간결한 버전이므로 필요시 수동 업데이트
    
  3. 새로운 AI 도구 지원 추가:

    • Windsurf: .windsurfrules 파일 생성
    • 기타 도구: 해당 도구의 규칙 파일명 확인 후 생성

지침 파일에 포함된 내용

  • 프로젝트 개요 및 기술 스택
  • 빌드 명령어 및 개발 환경 설정
  • 아키텍처 구조 (멀티 모듈, 이중 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

관련 프로젝트

  • ../eapim-admin/ - Admin 포털
  • ../eapim-online/ - Online 포털
  • ../kjb-eapim-sql/ - SQL 스크립트

문서

  • 프로젝트 상세 지침: CLAUDE.md (한글)
  • 사용자 가이드: 개발자포탈.md (한글)
  • 빌드 스크립트: build-gf63.sh, deploy_portal.sh