iso20022lib-spring
iso20022lib-core (ISO20022 코어 모듈)
iso20022-editor (웹 기반 ISO20022 에디터)
ISO20022 Spring Module
ISO20022 Spring Module은 ISO20022 Core 라이브러리를 Spring Boot 애플리케이션에 쉽게 통합할 수 있는 기능 제공. Spring Boot의 자동 구성 메커니즘을 활용하여 설정을 단순화하고 Spring 프레임워크와의 원활한 통합 지원.
주요 기능
- 자동 구성: Spring Boot의 auto-configuration 기능을 활용한 자동 초기화
-
외부 설정 지원:
application.properties또는application.yml파일을 통한 설정 - 호환성 검증: Core 라이브러리와의 버전 호환성 자동 검증
- 통합 테스트: 시작 시 라이브러리 기능성 확인 테스트 자동 수행
설치 방법
Gradle
dependencies {
implementation 'com.innilabs:iso20022lib-core:0.6.6-SNAPSHOT'
implementation 'com.innilabs:iso20022lib-spring:0.6.6-SNAPSHOT'
}
Maven
<dependencies>
<dependency>
<groupId>com.innilabs</groupId>
<artifactId>iso20022lib-core</artifactId>
<version>0.6.6-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.innilabs</groupId>
<artifactId>iso20022lib-spring</artifactId>
<version>0.6.6-SNAPSHOT</version>
</dependency>
</dependencies>
설정 방법
기본 설정
Spring Boot 애플리케이션에서 ISO20022 Spring Module을 사용하기 위한 별도의 코드는 필요 없음. 의존성만 추가하면 자동으로 구성.
외부 설정
application.properties 또는 application.yml 파일에서 다음 속성을 사용하여 라이브러리 동작 커스터마이징 가능:
iso20022:
# 일반 설정
encoding: UTF-8 # 메시지 인코딩 (기본값: UTF-8)
timezone: Asia/Jakarta # 날짜/시간 처리 기본 시간대 (기본값: Asia/Jakarta)
hash-key: secretiso20022 # 해시/HMAC 생성 비밀키 (기본값: secretiso20022)
# 검증 설정
validation:
schema: false # 스키마 검증 활성화 여부 (기본값: false)
# XML 포맷 설정
xml:
pretty-print: true # XML 출력 시 가독성 포맷팅 적용 (기본값: false)
# JSON 포맷 설정
json:
pretty-print: false # JSON 출력 시 가독성 포맷팅 적용 (기본값: false)
# 파일 처리 설정
file:
policy: overwrite # 기존 파일 처리 정책: FAIL, OVERWRITE, SKIP (기본값: FAIL)
# 복합 메시지(MessageEnvelope) 설정
envelope:
root-name: envelope # 최상위 XML 요소 이름 (기본값: envelope)
header-prefix: head # 헤더 요소 접두어 (기본값: head)
body-prefix: doc # 본문 요소 접두어 (기본값: doc)
# 복합 메시지 XML 설정
xml:
indentation: 4 # XML 들여쓰기 공백 수 (기본값: 4)
standalone: true # XML standalone 속성 설정 (기본값: true)
속성 상세 가이드
| 속성 | 설명 | 타입 | 기본값 |
|---|---|---|---|
iso20022.encoding |
메시지 인코딩 방식 | Charset |
UTF-8 |
iso20022.timezone |
날짜/시간 처리 기본 시간대 | ZoneId |
Asia/Jakarta |
iso20022.hash-key |
해시/HMAC 생성에 사용되는 비밀키 | String |
secretiso20022 |
iso20022.validation.schema |
스키마 검증 활성화 여부 | boolean |
false |
iso20022.xml.pretty-print |
XML 가독성 포맷팅 적용 여부 | boolean |
false |
iso20022.json.pretty-print |
JSON 가독성 포맷팅 적용 여부 | boolean |
false |
iso20022.file.policy |
기존 파일 처리 정책 | ExistingFilePolicy |
FAIL |
iso20022.envelope.root-name |
복합 메시지 최상위 요소 이름 | String |
envelope |
iso20022.envelope.header-prefix |
복합 메시지 헤더 요소 접두어 | String |
head |
iso20022.envelope.body-prefix |
복합 메시지 본문 요소 접두어 | String |
doc |
iso20022.envelope.xml.indentation |
XML 들여쓰기 공백 수 | int |
4 |
iso20022.envelope.xml.standalone |
XML standalone 속성 설정 | boolean |
true |
동작 메커니즘
Spring Module은 다음 과정을 통해 ISO20022 라이브러리를 자동으로 구성:
- 모듈 검출: Spring Boot는 클래스패스에서 ISO20022 Spring Module을 감지
- 버전 검증: Core 라이브러리와의 버전 호환성 확인
-
설정 로드:
application.properties또는application.yml에서 설정 로드 - 구성 생성: 로드된 설정을 기반으로 ISO20022 구성 객체 생성
-
초기화:
ISO20022ConfigHolder에 생성된 구성 설정 - 테스트: 라이브러리 기능 검증을 위한 간단한 테스트 수행
예외 처리
Spring Module은 다음과 같은 예외 유형을 정의:
-
ISO20022SpringException: 최상위 예외 클래스-
ConfigurationException: 구성 관련 오류 -
VersionIncompatibleException: 버전 호환성 오류 -
InitializationException: 초기화 실패 오류
-
예외 처리 예시:
try {
// ISO20022 라이브러리 사용
} catch (ISO20022SpringException.VersionIncompatibleException e) {
// 버전 호환성 문제 처리
logger.error("Core 라이브러리와 Spring 모듈 버전 불일치: {}", e.getMessage());
} catch (ISO20022SpringException e) {
// 기타 Spring 모듈 오류 처리
logger.error("ISO20022 Spring 모듈 오류: {}", e.getMessage());
}
버전 호환성
Spring Module은 Core 라이브러리와의 버전 호환성을 자동으로 검증. 호환되지 않는 버전을 사용할 경우 애플리케이션 시작 시 VersionIncompatibleException 예외 발생.
각 Spring Module 버전에는 호환되는 Core 라이브러리의 최소/최대 버전이 지정되어 있음. 자세한 호환성 정보는 버전 호환성 체크 페이지를 참고.
주의사항
-
단일 구성:
ISO20022ConfigHolder는 애플리케이션당 한 번만 초기화 가능. 이미 초기화된 경우 추가 초기화 시도는 무시. - 스레드 안전성: Spring Module은 스레드 안전한 방식으로 라이브러리를 초기화.
- 버전 일관성: Core 라이브러리와 Spring Module의 버전을 일치시켜 호환성 문제 방지.
문제 해결
자동 구성이 작동하지 않는 경우
- Spring Boot의 자동 구성이 활성화되어 있는지 확인
- 클래스패스에 ISO20022 Spring Module이 포함되어 있는지 확인
- 다른 구성 요소가
ISO20022ConfigHolder를 수동으로 초기화하지 않았는지 확인
버전 호환성 오류
- Core 라이브러리와 Spring Module의 버전이 호환되는지 확인
- 동일한 메이저 및 마이너 버전 사용 권장
설정 속성이 적용되지 않는 경우
-
application.properties또는application.yml파일이 올바른 경로에 있는지 확인 - 속성 이름과 값이 정확하게 지정되었는지 확인
- Spring Boot의 프로필 설정 확인
© 2025 INNILABS. All rights reserved.