Files
eapim-admin-djb/CLAUDE.md
T
2025-11-26 14:28:12 +09:00

4.3 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

프로젝트 개요

eapim-admin-kjb는 광주은행(KJB) 전용 커스터마이징을 위한 eapim-admin 확장 모듈입니다. 빠른 부팅 속도를 위해 메인 eapim-admin 프로젝트에서 분리되어 독립적으로 테스트할 수 있습니다.

빌드 및 테스트 명령어

# 빌드
gradle build
gradle clean build

# 테스트 실행 (환경변수 필요)
KJB_EAPIM_TEST_ENABLED=TRUE gradle :eapim-admin-kjb:test

# 특정 테스트 클래스 실행
KJB_EAPIM_TEST_ENABLED=TRUE gradle :eapim-admin-kjb:test --tests "com.eactive.ext.kjb.ums.test.UmsTest.testSms"
KJB_EAPIM_TEST_ENABLED=TRUE gradle :eapim-admin-kjb:test --tests "com.eactive.ext.kjb.ums.test.UmsTest.testEmail"

# SafeDB 실제 모드로 테스트 (Linux 서버)
KJB_EAPIM_TEST_ENABLED=TRUE gradle :eapim-admin-kjb:test -Psafedb

테스트 실행 조건: KJB_EAPIM_TEST_ENABLED=TRUE 환경변수가 설정되어야 UMS/이메일 테스트가 실행됩니다.

모듈 의존성

eapim-admin-kjb
├── elink-portal-common    # JPA 엔티티 (MessageRequest, MessageCode 등)
└── kjb-safedb            # 암호화 라이브러리

의존 모듈들은 ../elink-portal-common/, ../kjb-safedb/ 경로에 위치합니다.

아키텍처

주요 컴포넌트

컴포넌트 위치 설명
KjbProperty common/ DB 테이블 TSEAIRM24에서 로드되는 설정 관리. @KjbPropertyValue 애노테이션으로 키 매핑
KjbEaiBatchModule eai/ EAI 배치 시스템 HTTP 연동. 파일 기반 배치 전송 및 보관 기간 관리
KjbUmsService ums/ UMS API를 통한 카카오 알림톡 발송
KjbEmailSendModule ums/ EAI 배치를 통한 이메일 발송. 파일 생성 후 배치 호출
KjbObpModule obp/ OBP(Open Banking Platform) API 연동

프로퍼티 키 목록 (KjbProperty.java)

EAI 배치 연동

  • kjb.eai.batch.url - EAI 배치 서버 URL
  • kjb.eai.batch.connection_timeout - 연결 타임아웃 (초, 기본값: 5)
  • kjb.eai.batch.response_timeout - 응답 타임아웃 (초, 기본값: 5)
  • kjb.eai.batch.charset - 문자셋 (기본값: euc-kr)

이메일 발송 (EAI 배치 경유)

  • kjb.ums.eai_batch.send_dir - 발송 파일 디렉토리
  • kjb.ums.eai_batch.backup_dir - 백업 디렉토리
  • kjb.ums.eai_batch.error_dir - 에러 디렉토리
  • kjb.ums.eai_batch.interface_id - 인터페이스 ID (13자리)
  • kjb.ums.eai_batch.retention_date - 파일 보관 기간 (일, 기본값: 60)

UMS (카카오 알림톡)

  • kjb.ums.host - UMS API 엔드포인트
  • kjb.ums.api_key - API 인증 키 (36자리 UUID 형식)
  • kjb.ums.connection_timeout - 연결 타임아웃 (초, 기본값: 5)
  • kjb.ums.response_timeout - 응답 타임아웃 (초, 기본값: 5)

OBP 연동

  • kjb.obp.url - OBP API URL
  • kjb.obp.trust_system.key/value - 신뢰 시스템 헤더
  • kjb.obp.partner_code.key/value - 파트너 코드 헤더

메시지 채널

  • KjbUmsService: 카카오 알림톡 (MessageCode.Channels.KAKAO_ALIMTALK)
  • KjbEmailSendModule: 이메일 (MessageCode.Channels.EMAIL)

로컬 개발 환경 (Windows)

테스트 시 OsUtil.isWindows() 조건으로 로컬 경로가 자동 설정됩니다:

  • 발송 디렉토리: c:\kjb-logs\sendmail\snd
  • 백업 디렉토리: c:\kjb-logs\sendmail\bak
  • 에러 디렉토리: c:\kjb-logs\sendmail\error

URL이 빈 문자열로 설정되면 실제 API 호출 없이 모의 응답을 반환합니다.

기술 스택

  • Java 8: Gradle toolchain 강제
  • Spring Framework 5.3: 의존성 주입
  • Apache HttpClient 5.1: HTTP 통신
  • Gson 2.3.1: JSON 처리
  • Lombok 1.18.28: 보일러플레이트 코드 생성
  • JUnit 5: 테스트 프레임워크
  • Logback 1.2.10: 로깅

패키지 구조

com.eactive.ext.kjb
├── common/              # 공통 (KjbProperty, 예외 클래스)
├── eai/                 # EAI 배치 연동
├── obp/                 # OBP API 연동
│   └── common/          # OBP HTTP 클라이언트
├── ums/                 # UMS/이메일 발송
│   └── gson/            # UMS 요청/응답 JSON 모델
└── utils/               # 유틸리티 (JSON, 검증, OS 판별)