JIWOO 2025-07-21
Merge branch 'master' into 5180_요금사용내역_및_결제내역
@c94d80f736693b6e3d4e43930daf8335887368fe
.gitignore
--- .gitignore
+++ .gitignore
@@ -201,3 +201,4 @@
 rebel.xml
 /mvnw
 /mvnw.cmd
+/.gemini.zip
pom.xml
--- pom.xml
+++ pom.xml
@@ -54,28 +54,8 @@
 	
 	<repositories>
 		<repository>
-			<id>mvn2</id>
-			<url>https://repo1.maven.org/maven2/</url>
-			<releases>
-				<enabled>true</enabled>
-			</releases>
-			<snapshots>
-				<enabled>true</enabled>
-			</snapshots>
-		</repository>
-		<repository>
-			<id>egovframe</id>
-			<url>https://www.egovframe.go.kr/maven/</url>
-			<releases>
-				<enabled>true</enabled>
-			</releases>
-			<snapshots>
-				<enabled>false</enabled>
-			</snapshots>
-		</repository>
-		<repository>
-            <id>egovframe2</id>
-            <url>http://maven.egovframe.kr:8080/maven/</url>
+            <id>maven-public</id>
+            <url>http://nexus.iten.co.kr:9999/repository/maven-public/</url>
             <releases>
                 <enabled>true</enabled>
             </releases>
@@ -83,12 +63,6 @@
                 <enabled>false</enabled>
             </snapshots>
         </repository>
-        <!-- Komoran 형태소분석기 -->
-		<repository>
-		    <id>jitpack.io</id>
-		    <url>https://jitpack.io</url>
-	  	</repository>
-		<!-- Komoran 형태소분석기 -->
 	</repositories>
 
 	<dependencies>
@@ -568,7 +542,28 @@
 			<scope>provided</scope>
 		</dependency>
 		
-  		<!-- Komoran 형태소 분석기 -->
+		
+		
+		<!-- valkey -->
+		
+		<dependency>
+		    <groupId>org.springframework.session</groupId>
+		    <artifactId>spring-session</artifactId>
+		    <version>1.3.1.RELEASE</version>
+		</dependency>
+		<dependency>
+		    <groupId>redis.clients</groupId>
+		    <artifactId>jedis</artifactId>
+		    <version>2.9.0</version>
+		</dependency>
+		
+		<dependency>
+		    <groupId>org.springframework.data</groupId>
+		    <artifactId>spring-data-redis</artifactId>
+		    <version>1.8.11.RELEASE</version>
+		</dependency>
+		
+		<!-- valkey -->
 	</dependencies>
 	
     <build>
 
src/main/java/itn/com/cmm/session/HttpSessionConfig.java (added)
+++ src/main/java/itn/com/cmm/session/HttpSessionConfig.java
@@ -0,0 +1,39 @@
+package itn.com.cmm.session;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
+
+@Configuration
+@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800) // 세션 timeout 설정
+public class HttpSessionConfig {
+	
+	@Value("#{globalSettings['Globals.valkey.ip']}")
+	private String ip;
+	
+	@Value("#{globalSettings['Globals.valkey.port']}")
+	private int port;
+	
+	@Value("#{globalSettings['Globals.valkey.password']}")
+	private String password;
+
+	@Bean
+	public JedisConnectionFactory connectionFactory() {
+	    JedisConnectionFactory factory = new JedisConnectionFactory();
+	    factory.setHostName(this.ip);
+	    factory.setPort(this.port);
+	    factory.setPassword(this.password);
+	    factory.afterPropertiesSet();
+	    return factory;
+	}
+
+    @Bean
+    public RedisTemplate<Object, Object> redisTemplate() {
+        RedisTemplate<Object, Object> template = new RedisTemplate<>();
+        template.setConnectionFactory(connectionFactory());
+        return template;
+    }
+}
src/main/java/itn/let/cert/phone/service/CertPhoneService.java
--- src/main/java/itn/let/cert/phone/service/CertPhoneService.java
+++ src/main/java/itn/let/cert/phone/service/CertPhoneService.java
@@ -2,7 +2,10 @@
 
 import java.util.List;
 
+import javax.servlet.http.HttpServletRequest;
+
 import itn.let.mail.service.StatusResponse;
+import itn.let.uat.uia.service.AuthCertVO;
 import itn.let.uat.uia.web.SendLogVO;
 
 public interface CertPhoneService {
@@ -34,9 +37,9 @@
 
 	public StatusResponse selectSysMsgLogCheck(MberCertPhoneVO mberCertPhoneVO);
 
+	public MberCertPhoneVO selectCertUrlCode(MberCertPhoneVO mberCertPhoneVO) throws Exception;
 
-
-
+	public StatusResponse insertCertLog(HttpServletRequest request) throws Exception; 
 
 	
 	
src/main/java/itn/let/cert/phone/service/MberCertPhoneVO.java
--- src/main/java/itn/let/cert/phone/service/MberCertPhoneVO.java
+++ src/main/java/itn/let/cert/phone/service/MberCertPhoneVO.java
@@ -34,8 +34,17 @@
 	
 	private String checkNo;
 	
-	
-	
+	private String trUrl;
+	private String urlCode;
+	private String url;
+	private String host;
+	private String name          = "";
+	private String phoneNo	     = "";
+	private String phoneCorp     = "";
+	private String birthDay	     = "";
+	private String gender	     = "";
+	private String nation        = "0"; 
+	private String plusInfo      = "";
 	
 	
 	public String getMberId() {
@@ -74,6 +83,76 @@
 	public void setCheckNo(String checkNo) {
 		this.checkNo = checkNo;
 	}
+	public String getUrlCode() {
+		return urlCode;
+	}
+	public void setUrlCode(String urlCode) {
+		this.urlCode = urlCode;
+	}
+	public String getUrl() {
+		return url;
+	}
+	public void setUrl(String url) {
+		this.url = url;
+	}
+	public String getHost() {
+		return host;
+	}
+	public void setHost(String host) {
+		this.host = host;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public String getPhoneNo() {
+		return phoneNo;
+	}
+	public void setPhoneNo(String phoneNo) {
+		this.phoneNo = phoneNo;
+	}
+	public String getPhoneCorp() {
+		return phoneCorp;
+	}
+	public void setPhoneCorp(String phoneCorp) {
+		this.phoneCorp = phoneCorp;
+	}
+	public String getBirthDay() {
+		return birthDay;
+	}
+	public void setBirthDay(String birthDay) {
+		this.birthDay = birthDay;
+	}
+	public String getGender() {
+		return gender;
+	}
+	public void setGender(String gender) {
+		this.gender = gender;
+	}
+	public String getNation() {
+		return nation;
+	}
+	public void setNation(String nation) {
+		this.nation = nation;
+	}
+	public String getPlusInfo() {
+		return plusInfo;
+	}
+	public void setPlusInfo(String plusInfo) {
+		this.plusInfo = plusInfo;
+	}
+	public String getTrUrl() {
+		return trUrl;
+	}
+	public void setTrUrl(String trUrl) {
+		this.trUrl = trUrl;
+	}
+	
+
+	
+	
 	
 	
 	
src/main/java/itn/let/cert/phone/service/impl/CertPhoneDAO.java
--- src/main/java/itn/let/cert/phone/service/impl/CertPhoneDAO.java
+++ src/main/java/itn/let/cert/phone/service/impl/CertPhoneDAO.java
@@ -6,6 +6,7 @@
 
 import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
 import itn.let.cert.phone.service.MberCertPhoneVO;
+import itn.let.uat.uia.service.AuthCertVO;
 
 @Repository("CertPhoneDAO")
 public class CertPhoneDAO extends EgovAbstractDAO {
@@ -38,4 +39,12 @@
 	public int countSysMsgLogCheck(MberCertPhoneVO mberCertPhoneVO) {
 		return (int) select("mberCertPhoneVO.countSysMsgLogCheck", mberCertPhoneVO);
 	}
+	
+	public MberCertPhoneVO selectCertUrlCode(MberCertPhoneVO mberCertPhoneVO) {
+		return (MberCertPhoneVO) select("certPhoneDAO.selectCertUrlCode", mberCertPhoneVO);
+	}
+	
+	public void insertCertLog(AuthCertVO authCertVO) throws Exception {
+		insert("certPhoneDAO.insertCertLog", authCertVO);
+	}
 }
src/main/java/itn/let/cert/phone/service/impl/CertPhoneServiceImpl.java
--- src/main/java/itn/let/cert/phone/service/impl/CertPhoneServiceImpl.java
+++ src/main/java/itn/let/cert/phone/service/impl/CertPhoneServiceImpl.java
@@ -1,17 +1,25 @@
 package itn.let.cert.phone.service.impl;
 
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.List;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 
 import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
+import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
+import itn.com.cmm.LoginVO;
+import itn.com.cmm.util.IpUtil;
+import itn.com.utl.fcc.service.EgovStringUtil;
 import itn.let.cert.phone.service.CertPhoneService;
 import itn.let.cert.phone.service.MberCertPhoneVO;
 import itn.let.mail.service.StatusResponse;
+import itn.let.uat.uia.service.AuthCertVO;
 
 @Service("CertPhoneService")
 public class CertPhoneServiceImpl extends EgovAbstractServiceImpl implements CertPhoneService {
@@ -99,6 +107,35 @@
 		return new StatusResponse(HttpStatus.OK, "", LocalDateTime.now());
 	}
 
+	@Override
+	public MberCertPhoneVO selectCertUrlCode(MberCertPhoneVO mberCertPhoneVO) {
+		return certPhoneDAO.selectCertUrlCode(mberCertPhoneVO);
+	}
 
+
+	@Override
+	public StatusResponse insertCertLog(HttpServletRequest request) throws Exception {
+		try {
+			//로그인 권한정보 불러오기
+			LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
+			String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
+			
+			//KMC 본인인증 로그 insert
+			AuthCertVO authCertVO = new AuthCertVO();
+			authCertVO.setMberId(userId);
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
+			authCertVO.setCertDate(sdf.format(new Date()));
+			authCertVO.setCertType("본인인증 시도");
+			authCertVO.setCertIpaddr(IpUtil.getClientIP(request));
+			
+			certPhoneDAO.insertCertLog(authCertVO);
+		} catch (Exception e) {
+			System.out.println("본인인증 시도 로그 실패");
+		}
+		
+		return new StatusResponse(HttpStatus.OK, "", LocalDateTime.now());
+	}
+	
+	
 	
 }
 
src/main/java/itn/let/cert/phone/web/CertPhoneWebController.java (added)
+++ src/main/java/itn/let/cert/phone/web/CertPhoneWebController.java
@@ -0,0 +1,45 @@
+package itn.let.cert.phone.web;
+
+import java.time.LocalDateTime;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.servlet.ModelAndView;
+
+import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
+import itn.com.cmm.LoginVO;
+import itn.com.utl.fcc.service.EgovStringUtil;
+import itn.let.cert.phone.service.CertPhoneService;
+import itn.let.cert.phone.service.MberCertPhoneVO;
+import itn.let.mail.service.StatusResponse;
+import itn.let.mjo.msg.service.MjonMsgVO;
+import itn.let.mjo.msgdata.service.MjonMsgDataService;
+import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
+import itn.let.uat.uia.service.AuthCertVO;
+import itn.let.uat.uia.web.SendLogVO;
+
+@Controller
+public class CertPhoneWebController {
+	
+	@Resource(name = "CertPhoneService")
+	private CertPhoneService certPhoneService;
+	
+	@RequestMapping(value = {"/web/cert/log/insertCertLog.do"})
+	public ResponseEntity<StatusResponse> insertCertLog(HttpServletRequest request) throws Exception {
+		
+		
+		
+		
+		
+		
+		return ResponseEntity.ok().body(new StatusResponse(HttpStatus.OK, certPhoneService.insertCertLog(request), LocalDateTime.now()));
+	}	
+}(No newline at end of file)
src/main/java/itn/let/fax/addr/web/FaxAddrGroupController.java
--- src/main/java/itn/let/fax/addr/web/FaxAddrGroupController.java
+++ src/main/java/itn/let/fax/addr/web/FaxAddrGroupController.java
@@ -21,6 +21,7 @@
 import itn.com.cmm.EgovMessageSource;
 import itn.com.cmm.LoginVO;
 import itn.com.utl.fcc.service.EgovStringUtil;
+import itn.let.cert.phone.service.MberCertPhoneVO;
 import itn.let.fax.addr.service.FaxAddrGroupService;
 import itn.let.fax.addr.service.FaxAddrGroupVO;
 import itn.let.fax.addr.service.FaxAddrService;
@@ -51,6 +52,9 @@
 	/** mberManageService */
 	@Resource(name = "mberManageService")
 	private EgovMberManageService mberManageService;
+	
+	@Resource(name = "KmcCertChecker")
+	private KmcCertChecker kmcCertCheck;
 	
 	
 	/**
@@ -544,21 +548,25 @@
 			modelAndView.setViewName("jsonView");
 
 			try {
-				KmcCertChecker kmcCertCheck = new KmcCertChecker();
-
-				// mberId null일경우 ""로
-				mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId()));
-
-				// kmc 본인인증 실/개발 서버 구분
-				String serverNm = "";
-				if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
-					serverNm = request.getScheme() + "://219.240.88.15:8095";
-				} else {
-					serverNm = request.getScheme() + "://www.munjaon.co.kr";
-				}
-
-				AuthCertVO certVO = kmcCertCheck.authCertCheckEight(serverNm + "/web/cop/kmc/authRequestAddrSubmitAjax.do",
-						mberManageVO.getMberId());
+//				KmcCertChecker kmcCertCheck = new KmcCertChecker();
+//
+//				// mberId null일경우 ""로
+//				mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId()));
+//
+//				// kmc 본인인증 실/개발 서버 구분
+//				String serverNm = "";
+//				if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
+//					serverNm = request.getScheme() + "://219.240.88.15:8095";
+//				} else {
+//					serverNm = request.getScheme() + "://www.munjaon.co.kr";
+//				}
+				
+				
+				MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
+				mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAddrSubmitAjax.do");
+				mberCertPhoneVO.setPlusInfo(mberManageVO.getMberId());
+				
+				AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
 
 				modelAndView.addObject("tr_cert", certVO.getTr_cert());
 				modelAndView.addObject("tr_url", certVO.getTr_url());
src/main/java/itn/let/mjo/addr/web/AddrGroupController.java
--- src/main/java/itn/let/mjo/addr/web/AddrGroupController.java
+++ src/main/java/itn/let/mjo/addr/web/AddrGroupController.java
@@ -25,6 +25,7 @@
 import itn.com.cmm.LoginVO;
 import itn.com.cmm.util.RedirectUrlMaker;
 import itn.com.utl.fcc.service.EgovStringUtil;
+import itn.let.cert.phone.service.MberCertPhoneVO;
 import itn.let.mjo.addr.service.AddrGroupService;
 import itn.let.mjo.addr.service.AddrGroupVO;
 import itn.let.mjo.addr.service.AddrService;
@@ -71,6 +72,9 @@
 	/** mberManageService */
 	@Resource(name = "mberManageService")
 	private EgovMberManageService mberManageService;
+	
+	@Resource(name = "KmcCertChecker")
+	private KmcCertChecker kmcCertCheck;
 	
 	/**
 	 * 주소록 그룹 리스트
@@ -933,21 +937,24 @@
 			modelAndView.setViewName("jsonView");
 
 			try {
-				KmcCertChecker kmcCertCheck = new KmcCertChecker();
-
-				// mberId null일경우 ""로
-				mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId()));
-
-				// kmc 본인인증 실/개발 서버 구분
-				String serverNm = "";
-				if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
-					serverNm = request.getScheme() + "://219.240.88.15:8095";
-				} else {
-					serverNm = request.getScheme() + "://www.munjaon.co.kr";
-				}
-
-				AuthCertVO certVO = kmcCertCheck.authCertCheckEight(serverNm + "/web/cop/kmc/authRequestAddrSubmitAjax.do",
-						mberManageVO.getMberId());
+//				KmcCertChecker kmcCertCheck = new KmcCertChecker();
+//
+//				// mberId null일경우 ""로
+//				mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId()));
+//
+//				// kmc 본인인증 실/개발 서버 구분
+//				String serverNm = "";
+//				if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
+//					serverNm = request.getScheme() + "://219.240.88.15:8095";
+//				} else {
+//					serverNm = request.getScheme() + "://www.munjaon.co.kr";
+//				}
+				
+				MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
+				mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAddrSubmitAjax.do");
+				mberCertPhoneVO.setPlusInfo(mberManageVO.getMberId());
+				
+				AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
 
 				modelAndView.addObject("tr_cert", certVO.getTr_cert());
 				modelAndView.addObject("tr_url", certVO.getTr_url());
src/main/java/itn/let/mjo/test/web/TestController.java
--- src/main/java/itn/let/mjo/test/web/TestController.java
+++ src/main/java/itn/let/mjo/test/web/TestController.java
@@ -894,11 +894,11 @@
 				serverNm = request.getScheme() + "://munjaon.co.kr";
 			}
 
-			AuthCertVO certVO = kmcCertCheck.authCertCheck(serverNm + "/web/cop/kmc/authRequestAjax.do");
+//			AuthCertVO certVO = kmcCertCheck.authCertCheck(serverNm + "/web/cop/kmc/authRequestAjax.do");
 
-			model.addAttribute("tr_cert", certVO.getTr_cert());
-			model.addAttribute("tr_url", certVO.getTr_url());
-			model.addAttribute("tr_add", certVO.getTr_add());
+//			model.addAttribute("tr_cert", certVO.getTr_cert());
+//			model.addAttribute("tr_url", certVO.getTr_url());
+//			model.addAttribute("tr_add", certVO.getTr_add());
 
 		}
 
src/main/java/itn/let/uat/uia/web/EgovLoginController.java
--- src/main/java/itn/let/uat/uia/web/EgovLoginController.java
+++ src/main/java/itn/let/uat/uia/web/EgovLoginController.java
@@ -252,6 +252,10 @@
 	@Resource(name = "CertIpService")
 	private CertIpService certIpService;
 	
+	@Resource(name = "KmcCertChecker")
+	private KmcCertChecker kmcCertCheck;
+	
+	
 	private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class);
 
 	/* 문자온 사용자 로그인 시작 */
@@ -319,21 +323,21 @@
 		// 핸드폰인증만 사용할 시
 		if (joinSettingVO.getJoinCertType().equals("M")) {
 
-			KmcCertChecker kmcCertCheck = new KmcCertChecker();
-
-			// kmc 본인인증 실/개발 서버 구분
-			String serverNm = "";
-			if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
-				serverNm = request.getScheme() + "://219.240.88.15:8095";
-			}else if(request.getRequestURL().toString().contains("www.")){
-				serverNm = request.getScheme() + "://www.munjaon.co.kr";
-			}
-			else {
-				serverNm = request.getScheme() + "://munjaon.co.kr";
-			}
-
-			AuthCertVO certVO = kmcCertCheck.authCertCheck(serverNm + "/web/cop/kmc/authRequestAjax.do");
-
+//			KmcCertChecker kmcCertCheck = new KmcCertChecker();
+//			
+//			String serverNm = request.getScheme() + "://" + request.getServerName();
+//			if(request.getServerPort() != 80
+//				&& request.getServerPort() != 443) {
+//				serverNm += ":" + request.getServerPort();
+//			}
+//
+//			AuthCertVO certVO = kmcCertCheck.authCertCheck(serverNm + "/web/cop/kmc/authRequestAjax.do");
+//
+			
+			MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
+			mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAjax.do");
+			AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
+			
 			model.addAttribute("tr_cert", certVO.getTr_cert());
 			model.addAttribute("tr_url", certVO.getTr_url());
 			model.addAttribute("tr_add", certVO.getTr_add());
@@ -363,19 +367,29 @@
 		ModelAndView modelAndView = new ModelAndView();
 		modelAndView.setViewName("jsonView");
 
-		KmcCertChecker kmcCertCheck = new KmcCertChecker();
+//		KmcCertChecker kmcCertCheck = new KmcCertChecker();
 
 		// kmc 본인인증 실/개발 서버 구분
-		String serverNm = "";
-		if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
-			serverNm = request.getScheme() + "://219.240.88.15:8095";
-		} else {
-			serverNm = request.getScheme() + "://www.munjaon.co.kr";
-		}
+//		String serverNm = "";
+//		if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
+//			serverNm = request.getScheme() + "://219.240.88.15:8095";
+//		} else {
+//			serverNm = request.getScheme() + "://www.munjaon.co.kr";
+//		}
+		
+		MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
+		mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAjax.do");
+		mberCertPhoneVO.setName(mberManageVO.getMberNm());
+		mberCertPhoneVO.setPhoneNo(mberManageVO.getMoblphonNo());
+		mberCertPhoneVO.setGender(mberManageVO.getSexdstnCode());
+		mberCertPhoneVO.setNation(mberManageVO.getNationality());
+		mberCertPhoneVO.setBirthDay(mberManageVO.getBirth());
+		
+		AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
 
-		AuthCertVO certVO = kmcCertCheck.authCertCheckTwo(serverNm + "/web/cop/kmc/authRequestAjax.do",
-				mberManageVO.getMberNm(), mberManageVO.getMoblphonNo(), mberManageVO.getSexdstnCode(),
-				mberManageVO.getNationality(), mberManageVO.getBirth());
+//		AuthCertVO certVO = kmcCertCheck.authCertCheckTwo(serverNm + "/web/cop/kmc/authRequestAjax.do",
+//				mberManageVO.getMberNm(), mberManageVO.getMoblphonNo(), mberManageVO.getSexdstnCode(),
+//				mberManageVO.getNationality(), mberManageVO.getBirth());
 
 		System.out.println("++++++++++++ 세션체크222 ::: " + (MberManageVO) session.getAttribute("mberSession"));
 
@@ -3991,26 +4005,42 @@
 		// modelAndView.addObject("status", "fail");
 
 		try {
-			KmcCertChecker kmcCertCheck = new KmcCertChecker();
-
-			// mberId null일경우 ""로
-			mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId()));
-
-			// kmc 본인인증 실/개발 서버 구분
-			String serverNm = "";
-			if (request.getServerName().contains("119.193.215.98") || request.getServerName().contains("localhost")) {
-				serverNm = request.getScheme() + "://119.193.215.98:8095";
-			} else {
-				serverNm = request.getScheme() + "://www.munjaon.co.kr";
-			}
-			String authRUrl = serverNm + mberManageVO.getAuthRUrl();
+//			KmcCertChecker kmcCertCheck = new KmcCertChecker();
+//
+//			// mberId null일경우 ""로
+//			mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId()));
+//
+//			// kmc 본인인증 실/개발 서버 구분
+//			String serverNm = "";
+//			if (request.getServerName().contains("119.193.215.98") || request.getServerName().contains("localhost")) {
+//				serverNm = request.getScheme() + "://119.193.215.98:8095";
+//			} else {
+//				serverNm = request.getScheme() + "://www.munjaon.co.kr";
+//			}
+//			String authRUrl = serverNm + mberManageVO.getAuthRUrl();
+//			
+//			AuthCertVO certVO = kmcCertCheck.authCertCheckThree(authRUrl, mberManageVO);
+//
+//
+			MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
+			mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestFindIdPwAjax.do");
+			mberCertPhoneVO.setName(mberManageVO.getMberNm());
+			mberCertPhoneVO.setPhoneNo(mberManageVO.getMoblphonNo());
 			
-			AuthCertVO certVO = kmcCertCheck.authCertCheckThree(authRUrl, mberManageVO);
-
+			String plusInfo = "";
+			plusInfo += mberManageVO.getMberId();
+			if(StringUtils.isNotEmpty(mberManageVO.getPassword()))
+	    	{
+	    		plusInfo = plusInfo + ",,," + mberManageVO.getPassword();
+	    	}
+			mberCertPhoneVO.setPlusInfo(plusInfo);
+			
+			AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
+			
 			modelAndView.addObject("tr_cert", certVO.getTr_cert());
 			modelAndView.addObject("tr_url", certVO.getTr_url());
 			modelAndView.addObject("tr_add", certVO.getTr_add());
-
+			
 			modelAndView.addObject("result", "success");
 
 		} catch (Exception e) {
@@ -5386,28 +5416,16 @@
 			// 팝업에 넣을 이름과 핸드폰번호 조회
 			LoginVO KMCInfoVO = loginService.selectKMCInfo(loginVO);
 
-			// KMC 팝업 오픈 준비
-			KmcCertChecker kmcCertCheck = new KmcCertChecker();
-			String mberNm = KMCInfoVO.getMberNm();
-			if ("c".equals(KMCInfoVO.getDept())) {
-				mberNm = KMCInfoVO.getManagerNm();
-			}
-			String birth = KMCInfoVO.getBirth();
-			String moblphonNo = KMCInfoVO.getMoblphonNo();
-			String sexdstnCode = KMCInfoVO.getSexdstnCode();
-			String nationality = KMCInfoVO.getNationality();
-			String id = loginVO.getId();
-
-			// kmc 본인인증 실/개발 서버 구분
-			String serverNm = "";
-			if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
-				serverNm = request.getScheme() + "://219.240.88.15:8095";
-			} else {
-				serverNm = request.getScheme() + "://www.munjaon.co.kr";
-			}
-
-			AuthCertVO certVO = kmcCertCheck.authCertCheckFour(serverNm + "/web/cop/kmc/insertIPAjax.do", mberNm,
-					moblphonNo, sexdstnCode, nationality, birth, id);
+			MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
+			mberCertPhoneVO.setTrUrl("/web/cop/kmc/insertIPAjax.do");
+			mberCertPhoneVO.setName("c".equals(KMCInfoVO.getDept()) ? KMCInfoVO.getManagerNm() : KMCInfoVO.getMberNm());
+			mberCertPhoneVO.setBirthDay(KMCInfoVO.getBirth());
+			mberCertPhoneVO.setPhoneNo(KMCInfoVO.getMoblphonNo());
+			mberCertPhoneVO.setGender(KMCInfoVO.getSexdstnCode());
+			mberCertPhoneVO.setNation(KMCInfoVO.getNationality());
+			mberCertPhoneVO.setPlusInfo(loginVO.getId());
+			
+			AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
 
 			modelAndView.addObject("tr_cert", certVO.getTr_cert());
 			modelAndView.addObject("tr_url", certVO.getTr_url());
@@ -6121,7 +6139,7 @@
 		modelAndView.addObject("msg", msg);
 		
 		return modelAndView;
-	}	
+	}
 	
 	
 
src/main/java/itn/let/uat/uia/web/EgovMypageController.java
--- src/main/java/itn/let/uat/uia/web/EgovMypageController.java
+++ src/main/java/itn/let/uat/uia/web/EgovMypageController.java
@@ -48,6 +48,7 @@
 import itn.let.cert.ip.service.CertLoginLogService;
 import itn.let.cert.ip.service.MberCertIpVO;
 import itn.let.cert.ip.service.MberCertLoginLogVO;
+import itn.let.cert.phone.service.MberCertPhoneVO;
 import itn.let.fax.user.service.FaxGroupDataVO;
 import itn.let.fax.user.service.FaxService;
 import itn.let.kakao.user.sent.service.KakaoSentService;
@@ -180,6 +181,9 @@
 //	/* CertLoginLogService */
 	@Resource(name = "CertIpService")
 	private CertIpService certIpService;
+	
+	@Resource(name = "KmcCertChecker")
+	private KmcCertChecker kmcCertCheck;
 	
 	/**
 	 * 마이페이지 비밀번호 변경 탭
@@ -1447,17 +1451,21 @@
 			// 요청페이지가 개인정보 변경 펴이지 일경우
 			if(userManageVO.getUserTy().equals("userInfoCh")){
 				//System.out.println("휴대폰 인증 ***********************************************");
-				KmcCertChecker kmcCertCheck = new KmcCertChecker();
+//				KmcCertChecker kmcCertCheck = new KmcCertChecker();
+//				
+//				//kmc 본인인증 실/개발 서버 구분
+//				String serverNm = "";
+//				if(request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
+//					serverNm = request.getScheme() + "://219.240.88.15:8095";
+//				}else{
+//					serverNm = request.getScheme() + "://www.munjaon.co.kr";
+//				}
 				
-				//kmc 본인인증 실/개발 서버 구분
-				String serverNm = "";
-				if(request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
-					serverNm = request.getScheme() + "://219.240.88.15:8095";
-				}else{
-					serverNm = request.getScheme() + "://www.munjaon.co.kr";
-				}
+				MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
+				mberCertPhoneVO.setTrUrl("/web/user/selectKmcMberInfoAjax.do");
+				mberCertPhoneVO.setPlusInfo(loginVO.getId());
 				
-				AuthCertVO certVO = kmcCertCheck.authCertCheckFive(serverNm + "/web/user/selectKmcMberInfoAjax.do", loginVO.getId());
+				AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
 				modelAndView.addObject("certVO", certVO);
 			}
 			
@@ -1912,18 +1920,26 @@
 						name = loginVO.getManagerNm();
 					}
 					
-					KmcCertChecker kmcCertCheck = new KmcCertChecker();
-					
-					//kmc 본인인증 실/개발 서버 구분
-					String serverNm = "";
-					if(request.getServerName().contains("119.193.215.98") || request.getServerName().contains("localhost")) {
-						serverNm = request.getScheme() + "://119.193.215.98:8882";
-					}else{
-						serverNm = request.getScheme() + "://www.munjaon.co.kr";
-					}
+//					KmcCertChecker kmcCertCheck = new KmcCertChecker();
+//					
+//					//kmc 본인인증 실/개발 서버 구분
+//					String serverNm = "";
+//					if(request.getServerName().contains("119.193.215.98") || request.getServerName().contains("localhost")) {
+//						serverNm = request.getScheme() + "://119.193.215.98:8882";
+//					}else{
+//						serverNm = request.getScheme() + "://www.munjaon.co.kr";
+//					}
 					
 					//AuthCertVO certVO = kmcCertCheck.authCertCheckSix(serverNm + "/web/user/insertPhoneSendNumber.do", mjonMsgVO.getUserId(), mjonMsgVO.getCallFrom(), name);
-					AuthCertVO certVO = kmcCertCheck.authCertCheckSix(serverNm + "/web/user/selectPhoneNumberCertChkAjax.do", mjonMsgVO.getUserId(), mjonMsgVO.getCallFrom(), "", mjonMsgVO.getMyNameFlag());
+					
+					MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
+					mberCertPhoneVO.setTrUrl("/web/user/selectPhoneNumberCertChkAjax.do");
+					mberCertPhoneVO.setName("");
+					mberCertPhoneVO.setPhoneNo(mjonMsgVO.getCallFrom());
+					mberCertPhoneVO.setPlusInfo(mjonMsgVO.getUserId()+ "§" + mjonMsgVO.getMyNameFlag());
+					
+					AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
+					
 					modelAndView.addObject("certVO", certVO);
 					
 				/*}else if(mjonMsgVO.getPhmAuthType().equals("02") || mjonMsgVO.getPhmAuthType() == "02") { // ARS
@@ -2923,17 +2939,21 @@
 			name = userInfo.getManagerNm();
 		}
 		
-		KmcCertChecker kmcCertCheck = new KmcCertChecker();
+//		KmcCertChecker kmcCertCheck = new KmcCertChecker();
+//		
+//		//kmc 본인인증 실/개발 서버 구분
+//		String serverNm = "";
+//		if(request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
+//			serverNm = request.getScheme() + "://219.240.88.15:8095";
+//		}else{
+//			serverNm = request.getScheme() + "://www.munjaon.co.kr";
+//		}
 		
-		//kmc 본인인증 실/개발 서버 구분
-		String serverNm = "";
-		if(request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
-			serverNm = request.getScheme() + "://219.240.88.15:8095";
-		}else{
-			serverNm = request.getScheme() + "://www.munjaon.co.kr";
-		}
+		MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
+		mberCertPhoneVO.setTrUrl("/web/user/selectMberSecessionAjax.do");
+		mberCertPhoneVO.setName(name);
 		
-		AuthCertVO certVO = kmcCertCheck.authCertCheckSeven(serverNm + "/web/user/selectMberSecessionAjax.do", name);
+		AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
 		model.addAttribute("certVO", certVO);
 		
 		return "web/user/mberSecession";
@@ -3018,18 +3038,24 @@
 				 * 보안인증 본인인증 기능추가
 				 * 20241120 원영현 과장 추가
 				 * */ 
-				KmcCertChecker kmcCertCheck = new KmcCertChecker();
+//				KmcCertChecker kmcCertCheck = new KmcCertChecker();
+//				
+//				//kmc 본인인증 실/개발 서버 구분
+//				String serverNm = "";
+//				if(request.getServerName().contains("192.168.0.60") || request.getServerName().contains("localhost")) {
+//					serverNm = request.getScheme() + "://192.168.0.60:8085";
+//				}else{
+//					serverNm = request.getScheme() + "://www.munjaon.co.kr";
+//				}
+//				
+//				System.out.println("@@@  serverNm  : "  + serverNm);
 				
-				//kmc 본인인증 실/개발 서버 구분
-				String serverNm = "";
-				if(request.getServerName().contains("192.168.0.60") || request.getServerName().contains("localhost")) {
-					serverNm = request.getScheme() + "://192.168.0.60:8085";
-				}else{
-					serverNm = request.getScheme() + "://www.munjaon.co.kr";
-				}
+				MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
+				mberCertPhoneVO.setTrUrl("/web/user/selectSecurityAuthn.do");
+				mberCertPhoneVO.setPlusInfo(loginVO.getId());
 				
-				System.out.println("@@@  serverNm  : "  + serverNm);
-				AuthCertVO certVO = kmcCertCheck.authCertCheckNine(serverNm + "/web/user/selectSecurityAuthn.do", loginVO.getId());
+				AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
+				
 				model.addAttribute("certVO", certVO);
 			}
 			
src/main/java/itn/let/uat/uia/web/KmcCertChecker.java
--- src/main/java/itn/let/uat/uia/web/KmcCertChecker.java
+++ src/main/java/itn/let/uat/uia/web/KmcCertChecker.java
@@ -2,663 +2,147 @@
 
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
+import java.util.Map;
 import java.util.Random;
 
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+import org.springframework.ui.ModelMap;
 
 import com.icert.comm.secu.IcertSecuManager;
 
+import itn.let.cert.phone.service.CertPhoneService;
+import itn.let.cert.phone.service.MberCertPhoneVO;
 import itn.let.uat.uia.service.AuthCertVO;
 import itn.let.uss.umt.service.MberManageVO;
 
+@Component("KmcCertChecker")
 public class KmcCertChecker {
+	
+	@Resource(name = "CertPhoneService")
+	private CertPhoneService certPhoneService;
 
 	//회원가입 시 인증수단을 휴대폰 본인인증만 했을 경우 사용
-	public AuthCertVO authCertCheck(String trUrl) {
-		
-		AuthCertVO certVO = new AuthCertVO();
+	public AuthCertVO authCertCheck(
+								MberCertPhoneVO mberCertPhoneVO
+								, HttpServletRequest request
+							) {
+		//url 세팅
+		mberCertPhoneVO = setMberCertPhoneVO(request, mberCertPhoneVO);
 		
 		//kmc step 01 데이터
-			//날짜 생성
-	        Calendar today = Calendar.getInstance();
-	        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-	        String day = sdf.format(today.getTime());
+		//reqNum은 최대 40byte 까지 사용 가능
+        String reqNum = getDay() + getRanNum(); //요청번호
+        
+        String tr_cert       = "";
+        String cpId          = "MJOM1001";        // 회원사ID
+        String urlCode       = mberCertPhoneVO.getUrlCode();     // URL코드
+        String certNum       = reqNum;     // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
+        String date          = getDay();        // 요청일시
+        String certMet       = "M";     // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증 
+        
+        
+//        String name          = "";        // 성명
+        String name          = mberCertPhoneVO.getName();        // 성명
+        String phoneNo	     = mberCertPhoneVO.getPhoneNo();	    // 휴대폰번호
+        String phoneCorp     = mberCertPhoneVO.getPhoneCorp();   // 이동통신사
+    	if(phoneCorp == null) phoneCorp = "";
+    	String birthDay	     = mberCertPhoneVO.getBirthDay();	// 생년월일
+    	String gender	     = mberCertPhoneVO.getGender();		// 성별
+    	if(gender == null) gender = "";
+        String nation        = mberCertPhoneVO.getNation();      // 내외국인 구분 - 0:내국인, 1:외국인 
+    	String plusInfo      = mberCertPhoneVO.getPlusInfo();	// 추가DATA정보
+    	
+    	
+    	String extendVar     = "0000000000000000";                  // 확장변수
+        //End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
 
-	        Random ran = new Random();
-	        //랜덤 문자 길이
-	        int numLength = 6;
-	        String randomStr = "";
+    	String tr_url     = getDomain(request) + mberCertPhoneVO.getTrUrl();// // 본인인증서비스 결과수신 POPUP URL
+    	String tr_add     = "N";         // IFrame사용여부
+        
+    	//01. 한국모바일인증(주) 암호화 모듈 선언
+    	IcertSecuManager seed  = new IcertSecuManager();
 
-	        for (int i = 0; i < numLength; i++) {
-	            //0 ~ 9 랜덤 숫자 생성
-	            randomStr += ran.nextInt(10);
-	        }
+		//02. 1차 암호화 (tr_cert 데이터변수 조합 후 암호화)
+		String enc_tr_cert = "";
+		tr_cert            = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
+		enc_tr_cert        = seed.getEnc(tr_cert, "");
 
-			//reqNum은 최대 40byte 까지 사용 가능
-	        String reqNum = day + randomStr; //요청번호
-	        
-	        String tr_cert       = "";
-	        String cpId          = "MJOM1001";        // 회원사ID
-	        String urlCode       = "001003";     // URL코드
-	        
-	        //kmc 본인인증 실/개발 서버 구분
-			if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
-				urlCode = "005001";
-			}
-	        
-	        String certNum       = reqNum;     // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
-	        String date          = day;        // 요청일시
-	        String certMet       = "M";     // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증 
-	        String name          = "";        // 성명
-	        String phoneNo	     = "";	    // 휴대폰번호
-	        String phoneCorp     = "";   // 이동통신사
-	    	if(phoneCorp == null) phoneCorp = "";
-	    	String birthDay	     = "";	// 생년월일
-	    	String gender	     = "";		// 성별
-	    	if(gender == null) gender = "";
-	        String nation        = "0";      // 내외국인 구분 - 0:내국인, 1:외국인 
-	    	String plusInfo      = "";	// 추가DATA정보
-	    	String extendVar     = "0000000000000000";                  // 확장변수
-	        //End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
+		//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
+		String hmacMsg = "";
+		hmacMsg = seed.getMsg(enc_tr_cert);
 
-	    	String tr_url     = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do";         // 본인인증서비스 결과수신 POPUP URL
-	    	String tr_add     = "N";         // IFrame사용여부
-	        
-	    	//01. 한국모바일인증(주) 암호화 모듈 선언
-	    	IcertSecuManager seed  = new IcertSecuManager();
-
-			//02. 1차 암호화 (tr_cert 데이터변수 조합 후 암호화)
-			String enc_tr_cert = "";
-			tr_cert            = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
-			enc_tr_cert        = seed.getEnc(tr_cert, "");
-
-			//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
-			String hmacMsg = "";
-			hmacMsg = seed.getMsg(enc_tr_cert);
-
-			//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 후 암호화)
-			tr_cert  = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
-	
-			certVO.setTr_cert(tr_cert);
-			certVO.setTr_url(tr_url);
-			certVO.setTr_add(tr_add);
-			
-		return certVO;
+		//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 후 암호화)
+		tr_cert  = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
+		
+		AuthCertVO authCertVO = new AuthCertVO();
+		
+		authCertVO.setTr_cert(tr_cert);
+		authCertVO.setTr_url(tr_url);
+		authCertVO.setTr_add(tr_add);
+		
+		return authCertVO;
 	}
 	
-	//회원가입 시 인증수단을 ARS, 휴대폰 본인인증 했을 경우 사용
-	public AuthCertVO authCertCheckTwo(String trUrl, String mberNm, String moblphonNo, String sexdstnCode, String nationality, String birth) {
-		
-		AuthCertVO certVO = new AuthCertVO();
-		
-		//kmc step 01 데이터
-			//날짜 생성
-	        Calendar today = Calendar.getInstance();
-	        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-	        String day = sdf.format(today.getTime());
-
-	        Random ran = new Random();
-	        //랜덤 문자 길이
-	        int numLength = 6;
-	        String randomStr = "";
-
-	        for (int i = 0; i < numLength; i++) {
-	            //0 ~ 9 랜덤 숫자 생성
-	            randomStr += ran.nextInt(10);
-	        }
-
-			//reqNum은 최대 40byte 까지 사용 가능
-	        String reqNum = day + randomStr; //요청번호
-	        
-	        String tr_cert       = "";
-	        String cpId          = "MJOM1001";        // 회원사ID
-	        String urlCode       = "001003";     // URL코드
-	        //kmc 본인인증 실/개발 서버 구분
-			if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
-				urlCode = "004001";
-			}
-	        String certNum       = reqNum;     // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
-	        String date          = day;        // 요청일시
-	        String certMet       = "M";     // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증 
-	        String name          = mberNm;        // 성명
-	        String phoneNo	     = moblphonNo;	    // 휴대폰번호
-	        String phoneCorp     = "";   // 이동통신사
-	    	if(phoneCorp == null) phoneCorp = "";
-	    	String birthDay	     = birth;	// 생년월일
-	    	String gender	     = sexdstnCode;		// 성별
-	    	if(gender == null) gender = "";
-	        String nation        = nationality;      // 내외국인 구분 - 0:내국인, 1:외국인 
-	    	String plusInfo      = "";	// 추가DATA정보
-	    	String extendVar     = "0000000000000000";                  // 확장변수
-	        //End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
-
-	    	String tr_url     = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do";         // 본인인증서비스 결과수신 POPUP URL
-	    	String tr_add     = "N";         // IFrame사용여부
-	        
-	    	//01. 한국모바일인증(주) 암호화 모듈 선언
-	    	IcertSecuManager seed  = new IcertSecuManager();
-
-			//02. 1차 암호화 (tr_cert 데이터변수 조합 후 암호화)
-			String enc_tr_cert = "";
-			tr_cert            = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
-			enc_tr_cert        = seed.getEnc(tr_cert, "");
-
-			//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
-			String hmacMsg = "";
-			hmacMsg = seed.getMsg(enc_tr_cert);
-
-			//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 후 암호화)
-			tr_cert  = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
 	
-			certVO.setTr_cert(tr_cert);
-			certVO.setTr_url(tr_url);
-			certVO.setTr_add(tr_add);
-			
-		return certVO;
-	}
 	
-	//아이디 패스워드 찾기 본인인증
-	public AuthCertVO authCertCheckThree(String trUrl, MberManageVO mberManageVO) {
-		
-		AuthCertVO certVO = new AuthCertVO();
-		
-		//kmc step 01 데이터
-			//날짜 생성
-	        Calendar today = Calendar.getInstance();
-	        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-	        String day = sdf.format(today.getTime());
-
-	        Random ran = new Random();
-	        //랜덤 문자 길이
-	        int numLength = 6;
-	        String randomStr = "";
-
-	        for (int i = 0; i < numLength; i++) {
-	            //0 ~ 9 랜덤 숫자 생성
-	            randomStr += ran.nextInt(10);
-	        }
-
-			//reqNum은 최대 40byte 까지 사용 가능
-	        String reqNum = day + randomStr; //요청번호
-	        
-	        String tr_cert       = "";
-	        String cpId          = "MJOM1001";        // 회원사ID
-	        String urlCode       = mberManageVO.getAuthRUrlCode();     // URL 인증 코드
-	        //kmc 본인인증 실/개발 서버 구분
-			if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
-				urlCode = "005002";
-			}
-	        String certNum       = reqNum;     // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
-	        String date          = day;        // 요청일시
-	        String certMet       = "M";     // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증 
-	        String name          = mberManageVO.getMberNm();        // 성명
-	        String phoneNo	     = mberManageVO.getMoblphonNo();	    // 휴대폰번호
-	        String phoneCorp     = "";   // 이동통신사
-	    	if(phoneCorp == null) phoneCorp = "";
-	    	String birthDay	     = "";	// 생년월일
-	    	String gender	     = "";		// 성별
-	    	if(gender == null) gender = "";
-	        String nation        = "0";      // 내외국인 구분 - 0:내국인, 1:외국인 
-	    	String plusInfo      = mberManageVO.getMberId();	// 추가DATA정보
-	    	if(StringUtils.isNotEmpty(mberManageVO.getPassword()))
-	    	{
-	    		plusInfo = plusInfo + ",,," + mberManageVO.getPassword();
-	    	}
-	    	String extendVar     = "0000000000000000";                  // 확장변수
-	        //End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
-
-	    	String tr_url     = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do";         // 본인인증서비스 결과수신 POPUP URL
-	    	String tr_add     = "N";         // IFrame사용여부
-	        
-	    	//01. 한국모바일인증(주) 암호화 모듈 선언
-	    	IcertSecuManager seed  = new IcertSecuManager();
-
-			//02. 1차 암호화 (tr_cert 데이터변수 조합 후 암호화)
-			String enc_tr_cert = "";
-			tr_cert            = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
-			enc_tr_cert        = seed.getEnc(tr_cert, "");
-
-			//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
-			String hmacMsg = "";
-			hmacMsg = seed.getMsg(enc_tr_cert);
-
-			//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 후 암호화)
-			tr_cert  = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
-	
-			certVO.setTr_cert(tr_cert);
-			certVO.setTr_url(tr_url);
-			certVO.setTr_add(tr_add);
-			
-		return certVO;
-	}
-
-	//IP 체크해주기
-	public AuthCertVO authCertCheckFour(String trUrl, String mberNm, String moblphonNo, String sexdstnCode, String nationality, String birth, String id) {
-		
-		AuthCertVO certVO = new AuthCertVO();
-		
-		//kmc step 01 데이터
-			//날짜 생성
-	        Calendar today = Calendar.getInstance();
-	        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-	        String day = sdf.format(today.getTime());
-
-	        Random ran = new Random();
-	        //랜덤 문자 길이
-	        int numLength = 6;
-	        String randomStr = "";
-
-	        for (int i = 0; i < numLength; i++) {
-	            //0 ~ 9 랜덤 숫자 생성
-	            randomStr += ran.nextInt(10);
-	        }
-
-			//reqNum은 최대 40byte 까지 사용 가능
-	        String reqNum = day + randomStr; //요청번호
-	        
-	        String tr_cert       = "";
-	        String cpId          = "MJOM1001";        // 회원사ID
-	        String urlCode       = "001006";     // URL코드
-	        //kmc 본인인증 실/개발 서버 구분
-			if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
-				urlCode = "005003";
-			}
-	        String certNum       = reqNum;     // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
-	        String date          = day;        // 요청일시
-	        String certMet       = "M";     // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증 
-	        String name          = mberNm;        // 성명
-	        String phoneNo	     = moblphonNo;	    // 휴대폰번호
-	        String phoneCorp     = "";   // 이동통신사
-	    	if(phoneCorp == null) phoneCorp = "";
-	    	String birthDay	     = birth;	// 생년월일
-	    	String gender	     = sexdstnCode;		// 성별
-	    	if(gender == null) gender = "";
-	        String nation        = nationality;      // 내외국인 구분 - 0:내국인, 1:외국인 
-	    	String plusInfo      = id;	// 추가DATA정보
-	    	String extendVar     = "0000000000000000";                  // 확장변수
-	        //End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
-
-	    	String tr_url     = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do";         // 본인인증서비스 결과수신 POPUP URL
-	    	String tr_add     = "N";         // IFrame사용여부
-	        
-	    	//01. 한국모바일인증(주) 암호화 모듈 선언
-	    	IcertSecuManager seed  = new IcertSecuManager();
-
-			//02. 1차 암호화 (tr_cert 데이터변수 조합 후 암호화)
-			String enc_tr_cert = "";
-			tr_cert            = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
-			enc_tr_cert        = seed.getEnc(tr_cert, "");
-
-			//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
-			String hmacMsg = "";
-			hmacMsg = seed.getMsg(enc_tr_cert);
-
-			//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 후 암호화)
-			tr_cert  = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
-	
-			certVO.setTr_cert(tr_cert);
-			certVO.setTr_url(tr_url);
-			certVO.setTr_add(tr_add);
-			
-		return certVO;
-	}
-	
-	//마이페이지 휴대폰 변경 기능 본인인증에 사용
-	public AuthCertVO authCertCheckFive(String trUrl, String id) {
-
-		AuthCertVO certVO = new AuthCertVO();
-		
-		//kmc step 01 데이터
-			//날짜 생성
-	        Calendar today = Calendar.getInstance();
-	        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-	        String day = sdf.format(today.getTime());
-
-	        Random ran = new Random();
-	        //랜덤 문자 길이
-	        int numLength = 6;
-	        String randomStr = "";
-
-	        for (int i = 0; i < numLength; i++) {
-	            //0 ~ 9 랜덤 숫자 생성
-	            randomStr += ran.nextInt(10);
-	        }
-
-			//reqNum은 최대 40byte 까지 사용 가능
-	        String reqNum = day + randomStr; //요청번호
-	        
-	        String tr_cert	= "";
-	        String cpId				= "MJOM1001";			// 회원사ID
-	        String urlCode			= "001009";			// URL코드
-	        //kmc 본인인증 실/개발 서버 구분
-			if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
-				urlCode = "005005";
-			}
-	        String certNum			= reqNum;				// 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
-	        String date				= day;					// 요청일시
-	        String certMet			= "M";					// 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증 
-	        String name				= "";				// 성명
-	        String phoneNo			= "";					// 휴대폰번호
-	        String phoneCorp		= "";					// 이동통신사
-	    	if(phoneCorp == null) phoneCorp = "";
-	    	String birthDay			= "";					// 생년월일
-	    	String gender			= "";					// 성별
-	    	if(gender == null) gender = "";
-	        String nation			= "";					// 내외국인 구분 - 0:내국인, 1:외국인 
-	    	String plusInfo			= id;					// 추가DATA정보
-	    	String extendVar		= "0000000000000000";	// 확장변수
-	        //End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
-
-	    	String tr_url     = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do";         // 본인인증서비스 결과수신 POPUP URL
-	    	String tr_add     = "N";         // IFrame사용여부
-	        
-	    	//01. 한국모바일인증(주) 암호화 모듈 선언
-	    	IcertSecuManager seed  = new IcertSecuManager();
-
-			//02. 1차 암호화 (tr_cert 데이터변수 조합 후 암호화)
-			String enc_tr_cert = "";
-			tr_cert            = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
-			enc_tr_cert        = seed.getEnc(tr_cert, "");
-
-			//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
-			String hmacMsg = "";
-			hmacMsg = seed.getMsg(enc_tr_cert);
-
-			//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 후 암호화)
-			tr_cert  = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
-	
-			certVO.setTr_cert(tr_cert);
-			certVO.setTr_url(tr_url);
-			certVO.setTr_add(tr_add);
-			
-		return certVO;
-	}
-	
-	// 마이페이지 발신번호 관리 > 발신번호 등록 시 사용
-	public AuthCertVO authCertCheckSix(String trUrl, String id, String moblphonNo, String mberNm, String myNameFlag) {
-		
-		AuthCertVO certVO = new AuthCertVO();
-		
-		//kmc step 01 데이터
-			//날짜 생성
-	        Calendar today = Calendar.getInstance();
-	        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-	        String day = sdf.format(today.getTime());
-
-	        Random ran = new Random();
-	        //랜덤 문자 길이
-	        int numLength = 6;
-	        String randomStr = "";
-
-	        for (int i = 0; i < numLength; i++) {
-	            //0 ~ 9 랜덤 숫자 생성
-	            randomStr += ran.nextInt(10);
-	        }
-
-			//reqNum은 최대 40byte 까지 사용 가능
-	        String reqNum = day + randomStr; //요청번호
-	        
-	        String tr_cert	= "";
-	        String cpId				= "MJOM1001";			// 회원사ID
-	        String urlCode			= "001007";			// URL코드
-	        //kmc 본인인증 실/개발 서버 구분
-			if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
-				urlCode = "006005";
-			}
-	        String certNum			= reqNum;				// 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
-	        String date				= day;					// 요청일시
-	        String certMet			= "M";					// 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증 
-	        String name				= mberNm;				// 성명
-	        String phoneNo			= moblphonNo;			// 휴대폰번호
-	        String phoneCorp		= "";					// 이동통신사
-	    	if(phoneCorp == null) phoneCorp = "";
-	    	String birthDay			= "";					// 생년월일
-	    	String gender			= "";					// 성별
-	    	if(gender == null) gender = "";
-	        String nation			= "";					// 내외국인 구분 - 0:내국인, 1:외국인 
-	    	String plusInfo			= id + "§" + myNameFlag;					// 추가DATA정보
-	    	String extendVar		= "0000000000000000";	// 확장변수
-	        //End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
-
-	    	String tr_url     = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do";         // 본인인증서비스 결과수신 POPUP URL
-	    	String tr_add     = "N";         // IFrame사용여부
-	        
-	    	//01. 한국모바일인증(주) 암호화 모듈 선언
-	    	IcertSecuManager seed  = new IcertSecuManager();
-
-			//02. 1차 암호화 (tr_cert 데이터변수 조합 후 암호화)
-			String enc_tr_cert = "";
-			tr_cert            = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
-			enc_tr_cert        = seed.getEnc(tr_cert, "");
-
-			//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
-			String hmacMsg = "";
-			hmacMsg = seed.getMsg(enc_tr_cert);
-
-			//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 후 암호화)
-			tr_cert  = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
-	
-			certVO.setTr_cert(tr_cert);
-			certVO.setTr_url(tr_url);
-			certVO.setTr_add(tr_add);
-			
-		return certVO;
-	}
-	
-	//마이패이지 회원탈퇴 > 본인인증으로 회원탈퇴에 사용
-	public AuthCertVO authCertCheckSeven(String trUrl, String mberNm) {
-		
-		AuthCertVO certVO = new AuthCertVO();
-		
-		//kmc step 01 데이터
-			//날짜 생성
-	        Calendar today = Calendar.getInstance();
-	        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-	        String day = sdf.format(today.getTime());
-
-	        Random ran = new Random();
-	        //랜덤 문자 길이
-	        int numLength = 6;
-	        String randomStr = "";
-
-	        for (int i = 0; i < numLength; i++) {
-	            //0 ~ 9 랜덤 숫자 생성
-	            randomStr += ran.nextInt(10);
-	        }
-
-			//reqNum은 최대 40byte 까지 사용 가능
-	        String reqNum = day + randomStr; //요청번호
-	        
-	        String tr_cert	= "";
-	        String cpId				= "MJOM1001";			// 회원사ID
-	        String urlCode			= "001010";				// URL코드
-	        //kmc 본인인증 실/개발 서버 구분
-			if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
-				urlCode = "005006";
-			}
-	        String certNum			= reqNum;				// 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
-	        String date				= day;					// 요청일시
-	        String certMet			= "M";					// 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증 
-	        String name				= mberNm;				// 성명
-	        String phoneNo			= "";					// 휴대폰번호
-	        String phoneCorp		= "";					// 이동통신사
-	    	if(phoneCorp == null) phoneCorp = "";
-	    	String birthDay			= "";					// 생년월일
-	    	String gender			= "";					// 성별
-	    	if(gender == null) gender = "";
-	        String nation			= "";					// 내외국인 구분 - 0:내국인, 1:외국인 
-	    	String plusInfo			= "";					// 추가DATA정보
-	    	String extendVar		= "0000000000000000";	// 확장변수
-	        //End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
-
-	    	String tr_url     = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do";         // 본인인증서비스 결과수신 POPUP URL
-	    	String tr_add     = "N";         // IFrame사용여부
-	        
-	    	//01. 한국모바일인증(주) 암호화 모듈 선언
-	    	IcertSecuManager seed  = new IcertSecuManager();
-
-			//02. 1차 암호화 (tr_cert 데이터변수 조합 후 암호화)
-			String enc_tr_cert = "";
-			tr_cert            = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
-			enc_tr_cert        = seed.getEnc(tr_cert, "");
-
-			//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
-			String hmacMsg = "";
-			hmacMsg = seed.getMsg(enc_tr_cert);
-
-			//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 후 암호화)
-			tr_cert  = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
-	
-			certVO.setTr_cert(tr_cert);
-			certVO.setTr_url(tr_url);
-			certVO.setTr_add(tr_add);
-			
-		return certVO;
-	}
-	
-	//아이디 패스워드 찾기 본인인증
-		public AuthCertVO authCertCheckEight(String trUrl, String idParam) {
-			
-			AuthCertVO certVO = new AuthCertVO();
-			
-			//kmc step 01 데이터
-				//날짜 생성
-		        Calendar today = Calendar.getInstance();
-		        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-		        String day = sdf.format(today.getTime());
-
-		        Random ran = new Random();
-		        //랜덤 문자 길이
-		        int numLength = 6;
-		        String randomStr = "";
-
-		        for (int i = 0; i < numLength; i++) {
-		            //0 ~ 9 랜덤 숫자 생성
-		            randomStr += ran.nextInt(10);
-		        }
-
-				//reqNum은 최대 40byte 까지 사용 가능
-		        String reqNum = day + randomStr; //요청번호
-		        
-		        String tr_cert       = "";
-		        String cpId          = "MJOM1001";        // 회원사ID
-		        String urlCode       = "001012";     // URL코드
-		        //kmc 본인인증 실/개발 서버 구분
-				if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
-					urlCode = "005008";
-				}
-		        String certNum       = reqNum;     // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
-		        String date          = day;        // 요청일시
-		        String certMet       = "M";     // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증 
-		        String name          = "";        // 성명
-		        String phoneNo	     = "";	    // 휴대폰번호
-		        String phoneCorp     = "";   // 이동통신사
-		    	if(phoneCorp == null) phoneCorp = "";
-		    	String birthDay	     = "";	// 생년월일
-		    	String gender	     = "";		// 성별
-		    	if(gender == null) gender = "";
-		        String nation        = "0";      // 내외국인 구분 - 0:내국인, 1:외국인 
-		    	String plusInfo      = idParam;	// 추가DATA정보
-		    	String extendVar     = "0000000000000000";                  // 확장변수
-		        //End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
-
-		    	String tr_url     = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do";         // 본인인증서비스 결과수신 POPUP URL
-		    	String tr_add     = "N";         // IFrame사용여부
-		        
-		    	//01. 한국모바일인증(주) 암호화 모듈 선언
-		    	IcertSecuManager seed  = new IcertSecuManager();
-
-				//02. 1차 암호화 (tr_cert 데이터변수 조합 후 암호화)
-				String enc_tr_cert = "";
-				tr_cert            = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
-				enc_tr_cert        = seed.getEnc(tr_cert, "");
-
-				//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
-				String hmacMsg = "";
-				hmacMsg = seed.getMsg(enc_tr_cert);
-
-				//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 후 암호화)
-				tr_cert  = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
-		
-				certVO.setTr_cert(tr_cert);
-				certVO.setTr_url(tr_url);
-				certVO.setTr_add(tr_add);
-				
-			return certVO;
+	private String getDomain(HttpServletRequest request) {
+		String serverNm = request.getScheme() + "://" + request.getServerName();
+		if(request.getServerPort() != 80
+			&& request.getServerPort() != 443) {
+			serverNm += ":" + request.getServerPort();
 		}
 		
-		
-		
-	// 마이페이지 보안인증
-	public AuthCertVO authCertCheckNine(String trUrl, String id) {
-
-		AuthCertVO certVO = new AuthCertVO();
-		
-		//kmc step 01 데이터
-			//날짜 생성
-	        Calendar today = Calendar.getInstance();
-	        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-	        String day = sdf.format(today.getTime());
-
-	        Random ran = new Random();
-	        //랜덤 문자 길이
-	        int numLength = 6;
-	        String randomStr = "";
-
-	        for (int i = 0; i < numLength; i++) {
-	            //0 ~ 9 랜덤 숫자 생성
-	            randomStr += ran.nextInt(10);
-	        }
-
-			//reqNum은 최대 40byte 까지 사용 가능
-	        String reqNum = day + randomStr; //요청번호
-	        
-	        String tr_cert	= "";
-	        String cpId				= "MJOM1001";			// 회원사ID
-	        String urlCode			= "001014";			// URL코드
-	        //kmc 본인인증 실/개발 서버 구분
-	        
-	        System.out.println("@@@@@   trUrl  : "  + trUrl);
-			if(trUrl.contains("192.168.0.60") || trUrl.contains("localhost")) {
-				urlCode = "010001";
-			}
-	        String certNum			= reqNum;				// 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
-	        String date				= day;					// 요청일시
-	        String certMet			= "M";					// 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증 
-	        String name				= "";					// 성명
-	        String phoneNo			= "";					// 휴대폰번호
-	        String phoneCorp		= "";					// 이동통신사
-	    	if(phoneCorp == null) phoneCorp = "";
-	    	String birthDay			= "";					// 생년월일
-	    	String gender			= "";					// 성별
-	    	if(gender == null) gender = "";
-	        String nation			= "";					// 내외국인 구분 - 0:내국인, 1:외국인 
-	    	String plusInfo			= id;					// 추가DATA정보
-	    	String extendVar		= "0000000000000000";	// 확장변수
-	        //End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
-
-	    	String tr_url     = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do";         // 본인인증서비스 결과수신 POPUP URL
-	    	String tr_add     = "N";         // IFrame사용여부
-	        
-	    	//01. 한국모바일인증(주) 암호화 모듈 선언
-	    	IcertSecuManager seed  = new IcertSecuManager();
-
-			//02. 1차 암호화 (tr_cert 데이터변수 조합 후 암호화)
-			String enc_tr_cert = "";
-			tr_cert            = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
-			enc_tr_cert        = seed.getEnc(tr_cert, "");
-
-			//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
-			String hmacMsg = "";
-			hmacMsg = seed.getMsg(enc_tr_cert);
-
-			//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 후 암호화)
-			tr_cert  = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
-	
-			certVO.setTr_cert(tr_cert);
-			certVO.setTr_url(tr_url);
-			certVO.setTr_add(tr_add);
-			
-		return certVO;
+		return serverNm;
 	}
+	
+	private String getDay() {
+		Calendar today = Calendar.getInstance();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
+        String day = sdf.format(today.getTime());
+        
+        return day;
+	}
+	
+	private String getRanNum() {
+		Random ran = new Random();
+        //랜덤 문자 길이
+        int numLength = 6;
+        String randomStr = "";
+
+        for (int i = 0; i < numLength; i++) {
+            //0 ~ 9 랜덤 숫자 생성
+            randomStr += ran.nextInt(10);
+        }
+        
+        return randomStr;
+	}
+	
+	private MberCertPhoneVO setMberCertPhoneVO(
+													HttpServletRequest request
+													, MberCertPhoneVO mberCertPhoneVO
+												) {
+		mberCertPhoneVO.setUrl(mberCertPhoneVO.getTrUrl());
+		mberCertPhoneVO.setHost(getDomain(request));
+		
+		MberCertPhoneVO tmpMberCertPhoneVO = new MberCertPhoneVO();
+		try {
+			tmpMberCertPhoneVO = certPhoneService.selectCertUrlCode(mberCertPhoneVO);
+		} catch (Exception e) {
+			System.out.println(e.getMessage());
+		}
+		
+		if(tmpMberCertPhoneVO != null) {
+			mberCertPhoneVO.setUrl(tmpMberCertPhoneVO.getUrl());
+			mberCertPhoneVO.setHost(tmpMberCertPhoneVO.getHost());
+			mberCertPhoneVO.setUrlCode(tmpMberCertPhoneVO.getUrlCode());
+		}
+		
+		return mberCertPhoneVO;
+	}
+	
+	
 }
src/main/resources/egovframework/egovProps/globals_dev.properties
--- src/main/resources/egovframework/egovProps/globals_dev.properties
+++ src/main/resources/egovframework/egovProps/globals_dev.properties
@@ -118,3 +118,8 @@
 #Slack
 Globals.slack.hooks.url=https://hooks.slack.com/services/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
 Globals.slack.channel.name=\ud14c\uc2a4\ud2b8_mjon\uba54\uc2dc\uc9c0
+
+#valkey
+Globals.valkey.ip=192.168.0.60
+Globals.valkey.port=6379
+Globals.valkey.password=itntest123
(No newline at end of file)
src/main/resources/egovframework/egovProps/globals_local.properties
--- src/main/resources/egovframework/egovProps/globals_local.properties
+++ src/main/resources/egovframework/egovProps/globals_local.properties
@@ -124,3 +124,8 @@
 #Slack
 Globals.slack.hooks.url=https://hooks.slack.com/services/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
 Globals.slack.channel.name=\ud14c\uc2a4\ud2b8_mjon\uba54\uc2dc\uc9c0
+
+#valkey
+Globals.valkey.ip=192.168.0.60
+Globals.valkey.port=6379
+Globals.valkey.password=itntest123
src/main/resources/egovframework/egovProps/globals_prod.properties
--- src/main/resources/egovframework/egovProps/globals_prod.properties
+++ src/main/resources/egovframework/egovProps/globals_prod.properties
@@ -105,4 +105,9 @@
 
 #Slack
 Globals.slack.hooks.url=https://hooks.slack.com/services/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
-Globals.slack.channel.name=mjon\uba54\uc2dc\uc9c0
(No newline at end of file)
+Globals.slack.channel.name=mjon\uba54\uc2dc\uc9c0
+
+#valkey
+Globals.valkey.ip=10.12.107.9
+Globals.valkey.port=6379
+Globals.valkey.password=itntest123
(No newline at end of file)
src/main/resources/egovframework/sqlmap/let/cert/MjonCertPhone_SQL_mysql.xml
--- src/main/resources/egovframework/sqlmap/let/cert/MjonCertPhone_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/cert/MjonCertPhone_SQL_mysql.xml
@@ -6,7 +6,7 @@
 <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
 <sqlMap namespace="MjonCertPhone">
 	<typeAlias  alias="mberCertPhoneVO" type="itn.let.cert.phone.service.MberCertPhoneVO"/>
-	
+	<typeAlias  alias="AuthCertVO" type="itn.let.uat.uia.service.AuthCertVO"/>
 	
 	<select id="mberCertPhoneVO.selectMberCertPhoneList" parameterClass="String" resultClass="mberCertPhoneVO">
 	/* mberCertPhoneVO.selectMberCertPhoneList */
@@ -131,4 +131,39 @@
 	
 	</select>
 	
+	
+	<select id="certPhoneDAO.selectCertUrlCode" parameterClass="mberCertPhoneVO" resultClass="mberCertPhoneVO">
+		SELECT
+			URL_CODE as urlCode
+			, URL as url
+			, HOST as host
+		FROM 
+			MJ_CERT_SETTING
+		WHERE
+			URL = #url#
+			AND HOST = #host# 
+	</select>
+	
+	<insert id="certPhoneDAO.insertCertLog" parameterClass="AuthCertVO">
+	
+		insert into mj_cert_log
+		    (
+		         MBER_ID
+		        , CERT_DATE
+		        , CERT_TYPE
+		        , CERT_IPADDR
+		        , REGDATE
+		)
+		values (
+		        #mberId#
+		        , #certDate#
+		        , #certType#
+		        , #certIpaddr#
+		        , now()
+		       );
+	
+	</insert>
+	
+	
+	
 </sqlMap>
(No newline at end of file)
src/main/webapp/WEB-INF/jsp/layout/include/defaultResource.jsp
--- src/main/webapp/WEB-INF/jsp/layout/include/defaultResource.jsp
+++ src/main/webapp/WEB-INF/jsp/layout/include/defaultResource.jsp
@@ -38,7 +38,7 @@
 		
 		<script type="text/javascript" src="/publish/js/jquery-3.5.0.js"></script>
 		<script type="text/javascript" src="/publish/js/jquery.mCustomScrollbar.concat.min.js"></script>
-		<script type="text/javascript" src="/publish/js/common.js"></script>
+		<script type="text/javascript" src="/publish/js/common.js?date=202507210001"></script>
 		<!-- 
 			20240704 이호영 추가 /cmnDateAndChk.js
 		 -->
src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp
@@ -633,7 +633,9 @@
    
    var KMCIS_window;
 
-   function openKMCISWindow(){    
+    function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();    
 
     var UserAgent = navigator.userAgent;
     /* 모바일 접근 체크*/
src/main/webapp/WEB-INF/jsp/web/com/webCommonFooter.jsp
--- src/main/webapp/WEB-INF/jsp/web/com/webCommonFooter.jsp
+++ src/main/webapp/WEB-INF/jsp/web/com/webCommonFooter.jsp
@@ -27,7 +27,7 @@
         <div class="inner table">
             <ul class="table_cell">
             	<li class="about"><a href="http://iten.co.kr/" target="_blank" rel="nosublink">회사소개</a></li>
-                <li class="SortLine"><a href="/web/cop/bbs/TermsList.do?menuNm=02&termsMastNo=2023" rel="nosublink">이용약관</a></li>
+                <li class="SortLine"><a href="/web/cop/bbs/TermsList.do?menuNm=02&termsMastNo=2024" rel="nosublink">이용약관</a></li>
                 <li class="SortLine"><a href="/web/cop/bbs/TermsList.do?menuNm=03&termsMastNo=2024" rel="nosublink">개인정보처리방침</a></li>
                 <li class="SortLine"><a href="/web/cop/bbs/TermsList.do?menuNm=04&termsMastNo=2024" rel="nosublink">불법스팸방지정책</a></li>
             </ul>
src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp
--- src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp
+++ src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp
@@ -1666,7 +1666,7 @@
 	            				<dd>
 	            					<ul>
 	            						<li><a href="<c:out value='/web/cop/bbs/NoticeList.do'/>" >공지사항</a></li>
-	            						<li><a href="<c:out value='/web/cop/bbs/TermsList.do?menuNm=02&termsMastNo=2023'/>" >이용약관</a></li>
+	            						<li><a href="<c:out value='/web/cop/bbs/TermsList.do?menuNm=02&termsMastNo=2024'/>" >이용약관</a></li>
 	            						<li><a href="<c:out value='/web/cop/bbs/FaqList.do'/>" >자주하는 질문</a></li>
 	            						<li><a href="<c:out value='/web/cop/bbs/QnaList.do'/>" >1:1 문의</a></li>
 	            						<li><a href="<c:out value='/web/cop/bbs/SuggestList.do'/>" >불편신고</a></li>
src/main/webapp/WEB-INF/jsp/web/cop/bbs/include/mberSecession.jsp
--- src/main/webapp/WEB-INF/jsp/web/cop/bbs/include/mberSecession.jsp
+++ src/main/webapp/WEB-INF/jsp/web/cop/bbs/include/mberSecession.jsp
@@ -12,7 +12,9 @@
 window.name = "kmcis_web_sample";
 var KMCIS_window;
 //휴대폰 인증팝업 열기
-function openKMCISWindow(){
+ function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();
 	var UserAgent = navigator.userAgent;
 	/* 모바일 접근 체크*/
 	// 모바일일 경우 (변동사항 있을경우 추가 필요)
src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrGroupListAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrGroupListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrGroupListAjax.jsp
@@ -548,7 +548,9 @@
    
    var KMCIS_window;
 
-   function openKMCISWindow(){    
+    function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();    
 
     var UserAgent = navigator.userAgent;
     /* 모바일 접근 체크*/
src/main/webapp/WEB-INF/jsp/web/login/findUserId.jsp
--- src/main/webapp/WEB-INF/jsp/web/login/findUserId.jsp
+++ src/main/webapp/WEB-INF/jsp/web/login/findUserId.jsp
@@ -622,7 +622,9 @@
    
    var KMCIS_window;
 
-   function openKMCISWindow(){    
+    function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();    
 
     var UserAgent = navigator.userAgent;
     /* 모바일 접근 체크*/
src/main/webapp/WEB-INF/jsp/web/login/humanPageAuthenticatedPage.jsp
--- src/main/webapp/WEB-INF/jsp/web/login/humanPageAuthenticatedPage.jsp
+++ src/main/webapp/WEB-INF/jsp/web/login/humanPageAuthenticatedPage.jsp
@@ -60,7 +60,9 @@
 	});
 }
 
-function openKMCISWindow(){
+ function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();
 	var UserAgent = navigator.userAgent;
 	/* 모바일 접근 체크*/
 	// 모바일일 경우 (변동사항 있을경우 추가 필요)
src/main/webapp/WEB-INF/jsp/web/login/test_usrCheckTerms.jsp
--- src/main/webapp/WEB-INF/jsp/web/login/test_usrCheckTerms.jsp
+++ src/main/webapp/WEB-INF/jsp/web/login/test_usrCheckTerms.jsp
@@ -373,7 +373,9 @@
    
    var KMCIS_window;
 
-   function openKMCISWindow(){    
+    function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();    
 
     var UserAgent = navigator.userAgent;
     /* 모바일 접근 체크*/
src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms.jsp
--- src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms.jsp
+++ src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms.jsp
@@ -310,30 +310,7 @@
 				return false;
 			}
 			
-			//KMC팝업에 정보 미리 삽입
-			var kmcPopUpForm = $("form[name=kmcPopUpForm]").serialize() ;
-			$.ajax({
-		        url : "<c:url value='/web/user/login/kmcPopupAjax.do' />", 
-		        type : 'POST', 
-		        data : kmcPopUpForm,
-		        dataType:'json',
-		        success : function(returnData, status){
-		        	if(status == "success") {
-		        		$("#tr_cert").val(returnData.tr_cert);
-		        		$("#tr_url").val(returnData.tr_url);
-		        		$("#tr_add").val(returnData.tr_add);
-		        		
-		        		openKMCISWindow();
-		        		
-		        		
-		          	}else{ alert("실패");return;} 
-		        },
-		 
-		        error : function(request , status, error){
-		        	alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
-		        }
-		    });
-			
+       		openKMCISWindow();
 		}
 		
 
@@ -384,7 +361,9 @@
    
    var KMCIS_window;
 
-   function openKMCISWindow(){    
+    function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();    
 
     var UserAgent = navigator.userAgent;
     /* 모바일 접근 체크*/
@@ -419,7 +398,6 @@
   }
 
 </script>
-	
 </head>
 <body>
 	<form id="termsForm" name="termsForm" method="get">
@@ -652,7 +630,7 @@
     	<input type="hidden" id="idx" name="idx" value="" />
     	<input type="hidden" name="blineCode"  value="" />
 </form>
-<form name="reqKMCISForm" method="post" action="#">
+<<form name="reqKMCISForm" method="post" action="#">
     <input type="hidden" name="tr_cert" id="tr_cert"    value = "${tr_cert}">
     <input type="hidden" name="tr_url"   id="tr_url"   value = "${tr_url}">
     <input type="hidden" name="tr_add"  id="tr_add"     value = "${tr_add}">	
@@ -773,4 +751,5 @@
 		</form>
 	</c:if>
 	<!--// 본인인증(step2) 팝업 -->
+	
 </body></html>
src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms_back2.jsp
--- src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms_back2.jsp
+++ src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms_back2.jsp
@@ -476,7 +476,9 @@
    
    var KMCIS_window;
 
-   function openKMCISWindow(){    
+    function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();    
 
     var UserAgent = navigator.userAgent;
     /* 모바일 접근 체크*/
src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
@@ -3333,13 +3333,16 @@
 		return false;
 	}
 	
+	console.log('imgFilePath : ', imgFilePath);
 	//그림문자가 아닌데 본문 비어있는지 확인
 	if(imgFilePath.length == 0) {
 		if(msgForm.smsTxtArea.value == "") {
 			alert("문자 내용을 입력해 주세요.");
 			return false;
 		}
-	}else{//문자내용에 스팸 단어 포함여부 체크
+	}
+	/* else{//문자내용에 스팸 단어 포함여부 체크
+		console.log(' : spam데이터 : ');
 		var spmData = new FormData(msgForm);
 		url = "/web/mjon/msgdata/selectSpamTxtChkAjax.do";
 		
@@ -3383,7 +3386,7 @@
 	        error: function (e) { alert("시스템 오류가 발생하였습니다."); console.log("ERROR : ", e); return false;}
 	    });
 		
-	}
+	} */
 
 
 	//단문 장문 그림(몇장인지) 판별하기 - 발송금액 계산
src/main/webapp/WEB-INF/jsp/web/user/mberCompanyInfoChange.jsp
--- src/main/webapp/WEB-INF/jsp/web/user/mberCompanyInfoChange.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberCompanyInfoChange.jsp
@@ -194,7 +194,9 @@
 
 var KMCIS_window;
 
-function openKMCISWindow(){
+ function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();
 	var UserAgent = navigator.userAgent;
 	/* 모바일 접근 체크*/
 	// 모바일일 경우 (변동사항 있을경우 추가 필요)
src/main/webapp/WEB-INF/jsp/web/user/mberInfoChange.jsp
--- src/main/webapp/WEB-INF/jsp/web/user/mberInfoChange.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberInfoChange.jsp
@@ -102,7 +102,9 @@
 
 var KMCIS_window;
 
-function openKMCISWindow(){
+ function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();
 	var UserAgent = navigator.userAgent;
 	/* 모바일 접근 체크*/
 	// 모바일일 경우 (변동사항 있을경우 추가 필요)
src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp
--- src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp
@@ -267,7 +267,9 @@
 window.name = "kmcis_web_sample";
 var KMCIS_window;
 //휴대폰 인증팝업 열기
-function openKMCISWindow(){
+ function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();
 	var UserAgent = navigator.userAgent;
 	/* 모바일 접근 체크*/
 	// 모바일일 경우 (변동사항 있을경우 추가 필요)
src/main/webapp/WEB-INF/jsp/web/user/mberSecession.jsp
--- src/main/webapp/WEB-INF/jsp/web/user/mberSecession.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberSecession.jsp
@@ -9,7 +9,9 @@
 window.name = "kmcis_web_sample";
 var KMCIS_window;
 //휴대폰 인증팝업 열기
-function openKMCISWindow(){
+ function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();
 	var UserAgent = navigator.userAgent;
 	/* 모바일 접근 체크*/
 	// 모바일일 경우 (변동사항 있을경우 추가 필요)
src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp
--- src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp
@@ -626,7 +626,9 @@
 window.name = "kmcis_web_sample";
 var KMCIS_window;
 //휴대폰 인증팝업 열기
-function openKMCISWindow(){
+ function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();
 	var UserAgent = navigator.userAgent;
 	/* 모바일 접근 체크*/
 	// 모바일일 경우 (변동사항 있을경우 추가 필요)
src/main/webapp/WEB-INF/jsp/web/user/sendNumberManageRegister.jsp
--- src/main/webapp/WEB-INF/jsp/web/user/sendNumberManageRegister.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/sendNumberManageRegister.jsp
@@ -394,7 +394,9 @@
 window.name = "kmcis_web_sample";
 var KMCIS_window;
 //휴대폰 인증팝업 열기
-function openKMCISWindow(){
+ function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();
 	var UserAgent = navigator.userAgent;
 	/* 모바일 접근 체크*/
 	// 모바일일 경우 (변동사항 있을경우 추가 필요)
src/main/webapp/WEB-INF/jsp/web/user/sendNumberManage_bak220502.jsp
--- src/main/webapp/WEB-INF/jsp/web/user/sendNumberManage_bak220502.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/sendNumberManage_bak220502.jsp
@@ -122,7 +122,9 @@
 window.name = "kmcis_web_sample";
 var KMCIS_window;
 //휴대폰 인증팝업 열기
-function openKMCISWindow(){
+ function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();
 	var UserAgent = navigator.userAgent;
 	/* 모바일 접근 체크*/
 	// 모바일일 경우 (변동사항 있을경우 추가 필요)
src/main/webapp/WEB-INF/web.xml
--- src/main/webapp/WEB-INF/web.xml
+++ src/main/webapp/WEB-INF/web.xml
@@ -69,7 +69,15 @@
 		<url-pattern>/*</url-pattern>
 	</filter-mapping>
 
-
+	<!-- spring session filter -->
+	<filter>
+	    <filter-name>springSessionRepositoryFilter</filter-name>
+	    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
+	</filter>
+	<filter-mapping>
+	    <filter-name>springSessionRepositoryFilter</filter-name>
+	    <url-pattern>/*</url-pattern>
+	</filter-mapping>
 	
     <!-- security start -->
     <filter>
src/main/webapp/publish/css/content.css
--- src/main/webapp/publish/css/content.css
+++ src/main/webapp/publish/css/content.css
@@ -1771,12 +1771,17 @@
 .kakaotalksend_cont .kakao_wrap .send_right .phone .phoneIn .text_preview{height: 78%;}
 .kakaotalksend_cont .kakao_wrap .kakao_template_text {display: flex;justify-content: space-between;}
 .kakaotalksend_cont .kakao_wrap .put_right .btn_popup_wrap{margin: 0 0 5px 0;}
-.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left{height: 234px;}
+.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left{position:relative;height: 234px;}
 .kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left.long{height: 305px;}
+.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left.photo{height: 385px;}
 .kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left textarea{padding:0 5px;}
-.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left.short textarea{height: calc(100% - 105px);}
-.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left.long textarea{height: 220px;}
+.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left.short textarea{height: calc(100% - 82px);}
+.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left.short .ad_txt+textarea{height: calc(100% - 105px);}
+.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left.long textarea{height: calc(100% - 61px);}
+.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left.long .ad_txt+textarea{height: calc(100% - 86px);}
+.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left.photo .ad_txt+textarea{height: calc(100% - 184px);}
 .kakaotalksend_cont .kakao_wrap .replace_send_wrap .sub_ad_text p{padding:3px 10px 0 0;}
+
 .kakaotalksend_cont .kakao_wrap .button_type_wrap{display: flex; border: 1px solid #e5e5e5; border-radius: 5px; padding: 10px 20px; margin: 10px 0 0 0;}
 .kakaotalksend_cont .kakao_wrap .button_type_wrap dt{width: 110px; font-weight: 400; padding: 8px 0 0 0;}
 .kakaotalksend_cont .kakao_wrap .button_type_wrap .button_type_input{width: 483px;}
src/main/webapp/publish/css/popupLayer.css
--- src/main/webapp/publish/css/popupLayer.css
+++ src/main/webapp/publish/css/popupLayer.css
@@ -1063,6 +1063,7 @@
 .template_choice_popup .kakao_template_list .kakao_template_info dl{display: flex; padding: 6px 0;}
 .template_choice_popup .kakao_template_list .kakao_template_info dt{position: relative; width: 76px; margin: 0 13px 0 0;}
 .template_choice_popup .kakao_template_list .kakao_template_info dt::after{position: absolute; content: " "; width: 1px; height: 12px; background-color: #d5d5d5; right: 0; top: 2px;}
+.template_choice_popup .kakao_template_list .kakao_template_info dd{width:calc(100% - 76px);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}
 .template_choice_popup .kakao_template_list .kakao_template_info dd span{color: #002c9a; font-weight: bold;}
 .template_choice_popup .kakao_template_list .cf_text{width: calc(100% - 31px); margin: 10px 0 30px 0; font-size: 14px; color: #666; text-align: right;}
 
src/main/webapp/publish/js/common.js
--- src/main/webapp/publish/js/common.js
+++ src/main/webapp/publish/js/common.js
@@ -133,3 +133,21 @@
 if( navigator.appName == 'Netscape' && navigator.userAgent.search('Trident') != -1 || (cCommonUserAgent.indexOf("msie") != -1)) {
 	isInternetExplorer = true;
 }
+
+
+
+function certAccessLog(){
+	$.ajax({
+        url : '/web/cert/log/insertCertLog.do', 
+        type : 'POST', 
+        /* data : arsForm, */
+        dataType:'json',
+        success : function(returnData, status){
+        	if(status == "success") {
+          	}else{ console.log('본인인증 시도로그 실패');} 
+        },
+        error : function(request , status, error){
+        	console.log("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
+        }
+    });
+}
(No newline at end of file)
src/main/webapp/publish/js/content.js
--- src/main/webapp/publish/js/content.js
+++ src/main/webapp/publish/js/content.js
@@ -542,16 +542,27 @@
 				"height": "calc(100% - 18px)"
 			});
 			
+			$(".friend_talk_wrap .replace_send_wrap .put_left").each(function(idx, itm){
+				if($(itm).is(".short") == true){
+					//단문일 경우
+					$(itm).find("textarea").css({
+						"height": "calc(100% - 79px)"
+					});	
+				}else if($(itm).is(".photo") == true){
+					//포토문자일 경우
+					$(itm).find("textarea").css({
+						"height": "calc(100% - 146px)"
+					});	
+				}else{
+					// 장문일 경우
+					$(itm).find("textarea").css({
+						"height": "calc(100% - 59px)"
+					});
+				}
+				
+			})
 			
-			if($(".friend_talk_wrap .replace_send_wrap .put_left").is(".short") == true){
-				$(".friend_talk_wrap .replace_send_wrap textarea").css({
-					"height": "calc(100% - 79px)"
-				});	
-			}else{
-				$(".friend_talk_wrap .replace_send_wrap textarea").css({
-					"height": "calc(100% - 59px)"
-				});
-			}
+			
 			
 		} else {
 			$(".ad_txt, .sub_ad_text p,.friend_talk_title,.kakao_block_text").show();
src/main/webapp/publish/kakao_friendtalk_send.html
--- src/main/webapp/publish/kakao_friendtalk_send.html
+++ src/main/webapp/publish/kakao_friendtalk_send.html
@@ -778,15 +778,13 @@
                                                                         <!-- 업로드한 이미지의 썸네일 영역 -->
                                                                         <ul class="thumb_wrap liOnImg ui-sortable"></ul>
                                                                         <!-- //업로드한 이미지의 썸네일 영역 -->
-                                                                        <div class="ad_txt" style="">
-					                                                        <p>(광고)</p>
-					                                                    </div>
                                                                         <label for="smsTxtArea" class="label"></label>
+                                                                        <div class="ad_txt">
+																			<p>(광고)</p>
+																		</div>
                                                                         <textarea id="smsTxtArea" name="smsTxtArea" class="put_text"></textarea>
+                                                                        
                                                                         <div class="text_length">
-	                                                                        <div class="sub_ad_text">
-					                                                            <p>무료거부 0808800858</p>
-					                                                        </div>
                                                                             <div name="afterDeny">
                                                                                 <p>
                                                                                     <span class="fwMd" id="msgLeng">0 /
@@ -805,7 +803,99 @@
                                                                     </div>
 
                                                                 </div>
-                                                                <!-- <p>* 현재 [<span id="nowMsgType">단문</span>] <span class="c_e40000 fwBold nowMsgCnt">0</span>건 발송 가능합니다.</p> -->
+                                                                <p>* 현재 [<span id="nowMsgType">단문</span>] <span class="c_e40000 fwBold nowMsgCnt">0</span>건 발송 가능합니다.</p>
+                                                            </td>
+                                                        </tr>
+                                                        <tr>
+                                                            <th>내용</th>
+                                                            <td class="putText">
+                                                                <div class="clearfix">
+                                                                    <div class="put_left long">
+                                                                    	<!-- 업로드한 이미지의 썸네일 영역 -->
+                                                                        <ul class="thumb_wrap liOnImg ui-sortable"></ul>
+                                                                        <!-- //업로드한 이미지의 썸네일 영역 -->
+                                                                        <label for="smsTxtArea" class="label"></label>
+                                                                        <div class="ad_txt">
+																			<p>(광고)</p>
+																		</div>
+                                                                        <textarea id="smsTxtArea" name="smsTxtArea" class="put_text"></textarea>
+                                                                        <div class="text_length">
+                                                                            <div name="afterDeny">
+                                                                                <p>
+                                                                                    <span class="fwMd" id="msgLeng">0 /
+                                                                                    </span>
+                                                                                    <span class="c_002c9a fwMd" id="limitLeng">90</span>byte
+                                                                                </p>
+                                                                                <span class="msg_com msg_short">장문</span>
+                                                                            </div>
+                                                                        </div>
+                                                                    </div>
+                                                                    <div class="put_right">
+                                                                        <button type="button" class="btnType btnType7" onclick="javascript:fn_errorChk(); return false;">오류검사<i class="qmMark"></i></button>
+                                                                        <div class="send_btnWrap">
+                                                                            <button type="button" class="btnType btnType9" style="width:100%;">초기화</button>
+                                                                        </div>
+                                                                    </div>
+
+                                                                </div>
+                                                                <p>* 현재 [<span id="nowMsgType">단문</span>] <span class="c_e40000 fwBold nowMsgCnt">0</span>건 발송 가능합니다.</p>
+                                                            </td>
+                                                        </tr>
+                                                        <tr>
+                                                            <th>내용</th>
+                                                            <td class="putText">
+                                                                <div class="clearfix">
+                                                                    <div class="put_left photo">
+                                                                        <!-- 업로드한 이미지의 썸네일 영역 -->
+                                                                        <ul class="thumb_wrap ui-sortable">
+																			<li class="on ui-sortable-handle">
+																				<div>
+																					<img src="/publish/images/content/thumb1.jpg" alt="thumb1">
+																				</div>
+																				<button type="button" class="file_close"><img src="/publish/images/content/thumb_del.png" alt="첨부파일 삭제"></button>
+																				<button type="button" class="file_close_on"><img src="/publish/images/content/thumb_del_on.png" alt="첨부파일 삭제"></button>
+																			</li>
+																			<li class="ui-sortable-handle">
+																				<div>
+																					<img src="/publish/images/content/thumb2.jpg" alt="thumb1">
+																				</div>
+																				<button type="button" class="file_close"><img src="/publish/images/content/thumb_del.png" alt="첨부파일 삭제"></button>
+																				<button type="button" class="file_close_on"><img src="/publish/images/content/thumb_del_on.png" alt="첨부파일 삭제"></button>
+																			</li>
+																			<li class="ui-sortable-handle">
+																				<div>
+																					<img src="/publish/images/content/thumb3.jpg" alt="thumb1">
+																				</div>
+																				<button type="button" class="file_close"><img src="/publish/images/content/thumb_del.png" alt="첨부파일 삭제"></button>
+																				<button type="button" class="file_close_on"><img src="/publish/images/content/thumb_del_on.png" alt="첨부파일 삭제"></button>
+																			</li>
+																		</ul>
+                                                                        <!-- //업로드한 이미지의 썸네일 영역 -->
+                                                                        <label for="smsTxtArea" class="label"></label>
+                                                                        <div class="ad_txt">
+																			<p>(광고)</p>
+																		</div>
+                                                                        <textarea id="smsTxtArea" name="smsTxtArea" class="put_text"></textarea>
+                                                                        <div class="text_length">
+                                                                            <div name="afterDeny">
+                                                                                <p>
+                                                                                    <span class="fwMd" id="msgLeng">0 /
+                                                                                    </span>
+                                                                                    <span class="c_002c9a fwMd" id="limitLeng">90</span>byte
+                                                                                </p>
+                                                                                <span class="msg_com msg_short">그림</span>
+                                                                            </div>
+                                                                        </div>
+                                                                    </div>
+                                                                    <div class="put_right">
+                                                                        <button type="button" class="btnType btnType7" onclick="javascript:fn_errorChk(); return false;">오류검사<i class="qmMark"></i></button>
+                                                                        <div class="send_btnWrap">
+                                                                            <button type="button" class="btnType btnType9" style="width:100%;">초기화</button>
+                                                                        </div>
+                                                                    </div>
+
+                                                                </div>
+                                                                <p>* 현재 [<span id="nowMsgType">단문</span>] <span class="c_e40000 fwBold nowMsgCnt">0</span>건 발송 가능합니다.</p>
                                                             </td>
                                                         </tr>
                                                     </tbody>
src/main/webapp/publish/kmc/kmcis_web_sample_step02.jsp
--- src/main/webapp/publish/kmc/kmcis_web_sample_step02.jsp
+++ src/main/webapp/publish/kmc/kmcis_web_sample_step02.jsp
@@ -232,7 +232,9 @@
    
    var KMCIS_window;
 
-   function openKMCISWindow(){    
+    function openKMCISWindow(){ 
+ //본인인증시도 로그 
+ certAccessLog();    
 
     var UserAgent = navigator.userAgent;
     /* 모바일 접근 체크*/
src/main/webapp/publish/layout/_header.html
--- src/main/webapp/publish/layout/_header.html
+++ src/main/webapp/publish/layout/_header.html
@@ -255,7 +255,7 @@
               <dd>
                 <ul>
                   <li><a href="/web/cop/bbs/NoticeList.do">공지사항</a></li>
-                  <li><a href="/web/cop/bbs/TermsList.do?menuNm=02&amp;termsMastNo=2023">이용약관</a></li>
+                  <li><a href="/web/cop/bbs/TermsList.do?menuNm=02&amp;termsMastNo=2024">이용약관</a></li>
                   <li><a href="/web/cop/bbs/FaqList.do">자주하는 질문</a></li>
                   <li><a href="/web/cop/bbs/QnaList.do">1:1 문의</a></li>
                   <li><a href="/web/cop/bbs/SuggestList.do">불편신고</a></li>
Add a comment
List