diff --git a/build.gradle b/build.gradle
index 5173c19..77012b9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -17,6 +17,14 @@ def hibernateVersion = "5.6.15.Final"
def nexusUrl = "https://nexus.eactive.synology.me:8090"
def generatedJavaDir = "$buildDir/generated/java"
+// FOR LOCAL
+repositories {
+ maven {
+ url "${nexusUrl}/repository/maven-public/"
+ allowInsecureProtocol = true
+ }
+}
+//
java {
toolchain {
languageVersion = JavaLanguageVersion.of(8)
@@ -65,6 +73,8 @@ dependencies {
api "org.springframework:spring-context-support:${springVersion}"
api 'jakarta.interceptor:jakarta.interceptor-api:2.1.0'
+
+ implementation 'com.nimbusds:nimbus-jose-jwt:9.24.3' //jwhong
compileOnly group: 'com.ibm.db2', name: 'jcc', version: '11.5.7.0'
diff --git a/src/main/java/com/eactive/eai/common/context/ElinkTransactionContext.java b/src/main/java/com/eactive/eai/common/context/ElinkTransactionContext.java
new file mode 100644
index 0000000..e16884e
--- /dev/null
+++ b/src/main/java/com/eactive/eai/common/context/ElinkTransactionContext.java
@@ -0,0 +1,119 @@
+package com.eactive.eai.common.context;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 트랜잭션 범위 컨텍스트 관리
+ * - ThreadLocal 기반으로 현재 스레드의 트랜잭션 컨텍스트 관리
+ * - Lazy initialization: 최초 put 시 자동 생성
+ * - 비동기 전달: getAll()로 복사본 획득, restore()로 복원
+ *
+ *
+ * [동기 거래]
+ * ApiAdapterController → ... → JEP 함수에서 set/get → ... → finally { clear() }
+ *
+ * [비동기 거래]
+ * 송신측: FlowRouter → eaiMessage.setTransactionContextTransfer(getAll()) → JMS Queue
+ * 수신측: Consumer → ElinkESBProcessProxy → restore(transfer) → JEP 함수 → clear()
+ *
+ */
+public class ElinkTransactionContext {
+
+ private static final ThreadLocal