diff --git a/web/pom.xml b/web/pom.xml
index b58fe2cc5..6bc611929 100644
--- a/web/pom.xml
+++ b/web/pom.xml
@@ -303,49 +303,6 @@
-
- com.nhncorp.lucy
- lucy-core
- 1.7.7
-
-
- freemarker
- org.freemarker
-
-
- lucy-xss
- com.nhncorp.lucy
-
-
- spring-security-taglibs
- org.springframework.security
-
-
- spring-security-config
- org.springframework.security
-
-
- spring-security-web
- org.springframework.security
-
-
- spring-security-core
- org.springframework.security
-
-
- xercesImpl
- xerces
-
-
- jaxen
- jaxen
-
-
- xalan
- xalan
-
-
-
commons-fileupload
commons-fileupload
diff --git a/web/src/main/java/com/nhncorp/lucy/spring/db/mybatis/plugin/BindLogFormatter.java b/web/src/main/java/com/nhncorp/lucy/spring/db/mybatis/plugin/BindLogFormatter.java
new file mode 100644
index 000000000..6d979a2d7
--- /dev/null
+++ b/web/src/main/java/com/nhncorp/lucy/spring/db/mybatis/plugin/BindLogFormatter.java
@@ -0,0 +1,29 @@
+package com.nhncorp.lucy.spring.db.mybatis.plugin;
+
+import java.util.List;
+import java.util.Properties;
+
+/**
+ * Bind Log의 format결정하는 interface
+ *
+ * @author Web Platform Development Lab
+ * @author emeroad
+ * @see com.nhncorp.lucy.spring.db.mybatis.plugin.util.DefaultBindingLogFormatter
+ * @since 1.7.4
+ */
+public interface BindLogFormatter {
+
+ /**
+ * query에 bind 변수를 치환위한 method
+ * @param query 원본 query
+ * @param parameters 바인딩 변수
+ * @return 원본 query에 바인딩 변수를 치환한 query
+ */
+ String format(String query, List parameters);
+
+ /**
+ * 옵션 설정용 properties
+ * @param properties 옵션 properties
+ */
+ void setProperties(Properties properties);
+}
diff --git a/web/src/main/java/com/nhncorp/lucy/spring/db/mybatis/plugin/util/DefaultBindingLogFormatter.java b/web/src/main/java/com/nhncorp/lucy/spring/db/mybatis/plugin/util/DefaultBindingLogFormatter.java
new file mode 100644
index 000000000..d2ba9c18a
--- /dev/null
+++ b/web/src/main/java/com/nhncorp/lucy/spring/db/mybatis/plugin/util/DefaultBindingLogFormatter.java
@@ -0,0 +1,88 @@
+package com.nhncorp.lucy.spring.db.mybatis.plugin.util;
+
+import com.nhncorp.lucy.spring.db.mybatis.plugin.BindLogFormatter;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.sql.Date;
+import java.util.List;
+import java.util.Properties;
+
+/**
+ * {@link org.apache.ibatis.mapping.BoundSql} 을 중간에 가로체 {@link org.apache.ibatis.mapping.BoundSql#getSql()} 의 동작을 변경하기 위한 proxy
+ *
+ * @author Web Platform Development Lab
+ * @author emeroad
+ * @since 1.7.4
+ */
+public class DefaultBindingLogFormatter implements BindLogFormatter {
+
+ private final Log logger = LogFactory.getLog(this.getClass());
+ private boolean removeWhitespace = true;
+
+ public void setRemoveWhitespace(boolean removeWhitespace) {
+ this.removeWhitespace = removeWhitespace;
+ }
+
+ public String format(String query, List parameters) {
+ if (isEmpty(query)) {
+ return query;
+ }
+ if (removeWhitespace) {
+ query = SqlUtils.removeBreakingWhitespace(query);
+ }
+ StringBuilder builder = new StringBuilder(query.length() << 1);
+
+ int index = 0;
+ int queryPrev = 0;
+
+ for (int i = 0; i < query.length(); ) {
+ if (parameters != null && query.charAt(i) == '?') {
+ builder.append(query.substring(queryPrev, i));
+ builder.append(parameters.size() > index ? convert(parameters.get(index)) : null);
+ queryPrev = ++i;
+ index++;
+ continue;
+ }
+ i++;
+ }
+ if (queryPrev < query.length()) {
+ builder.append(query.substring(queryPrev));
+ }
+
+ return builder.toString();
+ }
+
+ @Override
+ public void setProperties(Properties properties) {
+ if (properties == null) {
+ return;
+ }
+ String removeWhitespace = properties.getProperty("removeWhitespace");
+ if (removeWhitespace != null) {
+ if (logger.isInfoEnabled()) {
+ logger.info("DefaultBindingLogFormatter removeWhitespace:" + removeWhitespace);
+ }
+ this.removeWhitespace = Boolean.parseBoolean(removeWhitespace);
+ }
+ }
+
+ public static boolean isEmpty(String str) {
+ return str == null || str.length() == 0;
+ }
+
+
+ /**
+ * Convert.
+ *
+ * @param paramter the paramter
+ * @return the string
+ */
+ private String convert(Object paramter) {
+ if (paramter instanceof String || paramter instanceof Date) {
+ return "'" + paramter + "'";
+ }
+
+ return String.valueOf(paramter);
+ }
+}
diff --git a/web/src/main/java/com/nhncorp/lucy/spring/db/mybatis/plugin/util/PreparedStatementParameterLogger.java b/web/src/main/java/com/nhncorp/lucy/spring/db/mybatis/plugin/util/PreparedStatementParameterLogger.java
new file mode 100644
index 000000000..bcf298b69
--- /dev/null
+++ b/web/src/main/java/com/nhncorp/lucy/spring/db/mybatis/plugin/util/PreparedStatementParameterLogger.java
@@ -0,0 +1,525 @@
+package com.nhncorp.lucy.spring.db.mybatis.plugin.util;
+
+import java.io.InputStream;
+import java.io.Reader;
+import java.math.BigDecimal;
+import java.net.URL;
+import java.sql.*;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * {@link PreparedStatement} 에 사용된 바인딩 변수를 추출하는 util
+ *
+ * @author Web Platform Development Lab
+ * @author emeroad
+ * @see PreparedStatement
+ * @since 1.7.4
+ */
+public class PreparedStatementParameterLogger implements PreparedStatement {
+
+ private List