4.3 KiB
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 배치 서버 URLkjb.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 URLkjb.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 판별)