이준호 이준호 2025-07-21
웹서버 교체, 세션서버 추가, 본인인증 수정 - http1.1 -> http2.0 웹서버 교체 - valkey 추가 - 본인인증 모듈화
 - http1.1 -> http2.0 웹서버 교체
 - valkey 추가
 - 본인인증 모듈화
@5bd4c8ba3723f935cc92e25984ec02b0a5234fcd
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
@@ -27,14 +27,11 @@
 
 
 # mysql
-Globals.DriverClassName=com.mysql.jdbc.Driver
-Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon
-Globals.UserName= mjonUr
-Globals.Password= itntest123
-#Globals.Url=jdbc:mysql://192.168.0.125:3306/mjon
+Globals.DriverClassName=org.mariadb.jdbc.Driver
+Globals.Url=jdbc:mariadb://192.168.0.60:3396/mjon_advc
 #Globals.Url=jdbc:mysql://139.150.73.12:3306/mjon
-#Globals.UserName= mjonUr
-#Globals.Password= mjon!@#$
+Globals.UserName= mjonUr
+Globals.Password= mjon!@#$
 
 # mysql-prod
 #Globals.DriverClassName=com.mysql.jdbc.Driver
@@ -121,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
@@ -28,7 +28,7 @@
 
 # mysql
 Globals.DriverClassName=com.mysql.jdbc.Driver
-Globals.Url=jdbc:mysql://192.168.0.125:3306/mjon
+Globals.Url=jdbc:mysql://192.168.0.125:3306/mjon_advc
 #Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon
 Globals.UserName= mjonUr
 Globals.Password= mjon!@#$
@@ -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/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/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/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/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/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;
     /* 모바일 접근 체크*/
Add a comment
List