프로그램 할 때 query log가 안보이면 제대로 실행이 되고 있는 건지 디버깅도 힘들고 답답하기 때문에 로그 보는 설정을 먼저 진행하게 됩니다오늘 진행하는 작업은 대부분의 Database가 동일한 방법으로 작업이 가능 합니다.

 

먼저 maven을 이용하여 log4j2를 추가 합니다.


pom.xml 

        <dependency>

            <groupId>org.bgee.log4jdbc-log4j2</groupId>

            <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>

            <version>1.16</version>

        </dependency>

 

그리고 추가한 라이브러리가 작동할 수 있도록 application.properties

spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy

를 추가하고 source urllog4jdbc 를 추가 해줍니다


application.properties

## PostgreSQL

spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy

#spring.datasource.url=jdbc:postgresql://localhost:5432/copydb

spring.datasource.url=jdbc:log4jdbc:postgresql://localhost:5432/copydb

spring.datasource.username=copycoding

spring.datasource.password=copy123

 

다른 데이터 베이스를 사용 하는 경우에도 첫 번째 라인인 DriverSpy는 추가해 주고 url 부분을 다음처럼 변경을 합니다.

spring.datasource.url=jdbc:log4jdbc:oracle:thin:@localhost:1521/xe

spring.datasource.url=jdbc:log4jdbc:mariadb://localhost:3306/testdb

spring.datasource.url=jdbc:log4jdbc:mysql://localhost/testdb

 

그리고 실행을 하면 아래 그림처럼


sql query log


모든 값들이 정리되지 않고 나오게 되는데 이제 정리를 하기 위한 설정을 추가해 줍니다.


 

src/main/resources 폴더에 properties 파일을 하나 생성 합니다.


log4jdbc.log4j2.properties

log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator

log4jdbc.dump.sql.maxlinelength=0

  

src/main/resources 폴더에 추가로 xml 파일을 생성 합니다.


logback.xml

<?xml version="1.0" encoding="UTF-8"?>

 

<configuration>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">

    <encoder>

      <pattern>%d{yyyyMMdd HH:mm:ss.SSS} [%thread] %-3level %logger{5} - %msg %n</pattern>

    </encoder>

  </appender>

 

  <logger name="jdbc" level="OFF"/>

 

  <logger name="jdbc.sqlonly" level="OFF"/>

  <logger name="jdbc.sqltiming" level="DEBUG"/>

  <logger name="jdbc.audit" level="OFF"/>

  <logger name="jdbc.resultset" level="OFF"/>

  <logger name="jdbc.resultsettable" level="DEBUG"/>

  <logger name="jdbc.connection" level="OFF"/>

 

  <root level="INFO">

    <appender-ref ref="STDOUT" />

  </root>

 

</configuration>

 

이제 다시 실행을 하고 console을 보게 되면 


sql query log


보기 좋게 형식을 갖추어 출력이 됩니다.


- copy coding -


Spring Tool Suite 3.9.11.RELEASE를 사용하고 있는데 SVN을 설치하려고 하니 잘 안되는것 같습니다.  Eclipse Marketplace에서 검색을 하니 설치 할만 한건 ContextQuickie 인것 같아 설치를 했으나 사용이 안되는것 같고



spring boot svn


Subversive 을 설치하려고


spring boot svn


Install 버튼을 클릭하면


spring boot svn


호환이 되지 않아 설치가 진행되지 않습니다.  Git는 잘 되는것 같은데 프로젝트에서 SVN을 사용하여 방법을 찾아 보았습니다.



SVN 설치


그냥 예전에 설치하던 Install을 이용한 방법을 사용해서 해결 하였습니다.설치 방법과 project commiteclipse와 동일 합니다잘 아시는 분들은 아래 부분을 읽어볼 필요가 없습니다.

 

Help > Install New Software 메뉴를 선택 하고


spring boot svn


Install 팝업 창이 나오면


spring boot svn


Add 버튼을 클릭 하여 Add Repository 창을 오픈 합니다.


spring boot svn


여기에 Name은 아무거나 구분할 수 있도록 입력 하고 Location에는 https://dl.bintray.com/subclipse/releases/subclipse/4.3.x/ 를 입력하고 Add 버튼을 클릭 합니다.


spring boot svn


잠시 뭔가 찾는 척을 하다가


spring boot svn


설치할 항목을 보여주는데 저는 그냥 모두 선택 했습니다. 전부 설치하기 싫으면 SVNKit, Subclipse 만 선택하고 Next 버튼을 클릭 합니다.


spring boot svn


설치를 진행하려는 내용을 보여줍니다.  Next 버튼을 클릭 합니다


spring boot svn


설치할 상세 정보 입니다.  Next 버튼을 클릭 합니다.


spring boot svn


라이센스 동의를 해주고 Finish 버튼을 클릭 합니다.


spring boot svn


설치 중간에 팝업이 나오면 Install anyway 버튼과 


spring boot svn


설치 후 재시작을 하라고 Restart Now 버튼을 클릭 합니다.  Spring Boot가 재시작 하면 SVN이 생성 되어 있고 


spring boot svn


SVN Repositories를 선택하면 탭 창이 활성화 됩니다.


spring boot svn


탭 창에서 SVN 아이콘을 클릭해 줍니다.


spring boot svn


SNV 서버 주소를 입력하고 Finish 버튼을 클릭 합니다. SVN 설치가 완료 되었습니다



프로젝트 Commit

 

프로젝트에 마우스를 대고 우클릭 하여 


spring boot svn


Team > Share Project 메뉴를 선택 합니다처음에만 이런 메뉴가 나옵니다.


spring boot svn


SVN을 선택 해야 겠죠.  Next 버튼을 클릭 합니다.


spring boot svn


기존 Repository를 사용하기 위하여 Next  버튼을 클릭 합니다.


spring boot svn


프로젝트 폴더명도 그대로 사용하기로 하고 Finish 버튼을 클릭 합니다.


spring boot svn


Remember my decision을 클릭하고 Yes 버튼을 클릭 하면


spring boot svn


SVN 서버와 데이터를 비교하여 결과를 보여 주는데 처음 소스를 올리는 것이니 모두 + 표시로 나타납니다.


spring boot svn


프로젝트 명에 마우스를 놓고 우측 버튼을 클릭 해서 모두 Commit 합니다.


spring boot svn


커밋 하는 이유에 대해 comment 를 입력 하고 OK 버튼을 클릭 합니다.


spring boot svn


소스가 모두 서버에 반영되었습니다이제 끝없는 update commit의 늪에서 허우적거리면 됩니다.


- copy coding -


JQueryBootStrap을 제작사 홈페이지에서 다운로드 받아 추가하는 방법 이외에 Mavendependencyscript만 추가하여 주면 프로젝트에 추가를 할 수 있습니다스크립트는 일반 예제에서 복사해 와도 되지만 프로젝트 별로 사용할 버전을 선택 해야 하기 때문에 그냥 복사하기 보다는 공신력이 있는 사이트를 이용해서 참조를 하는것이 좋습니다여기서 2곳의 사이트를 소개합니다.

 

https://mvnrepository.com/


mvnrepository.com에서는 라이브러리를 검색을 통하여 찾을 수 있습니다


maven jquery bootstrap


귀찮기는 하지만 검색을 하면 버전 별로 정보가 리스트 되고 리스트에서 원하는 버전을 선택 하면


maven jquery bootstrap


스크립트를 복사해올 수 있습니다. Gradle을 클릭 하면 Gradle용 스크립트가 나옵니다.

 


https://www.webjars.org/

 

webjars.org에서는 첫 화면에 자주 사용하는 라이브러리가 리스트 되어 있고 최신 버전으로 스크립트를 얻을 수 있습니다.


maven jquery bootstrap


만약 최신 버전이 아닌 예전 버전이 필요하다면 콤보 박스를 클릭하면 해당 라이브러지의 버전 정보가 리스트 되고 원하는 버전을 선택하여 


maven jquery bootstrap


상단 Build Tool:에 있는 Maven 버튼을 선택하면 스크립트를 얻을 수 있습니다.

 

복사한 스크립트는 pom.xml에 추가를 해줍니다.


                <dependency>

                   <groupId>org.webjars</groupId>

                   <artifactId>jquery</artifactId>

                   <version>3.4.1</version>

               </dependency>

               <dependency>

                   <groupId>org.webjars</groupId>

                   <artifactId>bootstrap</artifactId>

                   <version>4.4.1</version>

               </dependency>


그리고 Maven UpdateMaven install을 하면 추가된 라이브러리를 jsp에 사용할 수 있게 됩니다.

 

js 파일 위치


추가한 라이브러리를 jsp에서 사용하기 위한 path는 어떻게 하면 알 수 있을까요추가된 라이브러리의 .jar 파일을 확장하면 정확한 js 파일 위치를 찾을 수 있습니다.


maven jquery bootstrap


이렇게 찾은 위치를 script에 반영하면 됩니다.

<script src="/webjars/jquery/3.4.1/jquery.min.js"></script>

 

bootstrap도 동일한 방법으로 위치를 확인 합니다.


maven jquery bootstrap


그리고 스크립트에 반영 합니다. bootstrap은 기본 제공 css를 사용하려면 cssjs를 모두 반영합니다.

<script src="/webjars/bootstrap/4.4.1/js/bootstrap.min.js"></script>

<link rel="stylesheet" href="/webjars/bootstrap/4.4.1/css/bootstrap.min.css">

 

사용 예

 

간단하게 JSP파일을 생성해서 잘 반영이 되었는지 사용을 해 봅니다.


 <%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="EUC-KR">

<title>Insert title here</title>

 

<link rel="stylesheet" href="/webjars/bootstrap/4.4.1/css/bootstrap.min.css">

<script src="/webjars/jquery/3.4.1/jquery.min.js"></script>

<script src="/webjars/popper.js/1.16.0/umd/popper.min.js"></script>

<script src="/webjars/bootstrap/4.4.1/js/bootstrap.min.js"></script>

 

</head>

<body>

 

<div class="container">

 

<table class="table table-hover">

  <thead class="thead-dark">

    <tr>

      <th>codeId</th>

      <th>code</th>

      <th>codeNm</th>

      <th>codeDc</th>

    </tr>

  </thead>

  <tbody>

    <tr>

        <td>COM001</td>

        <td>REGC01</td>

        <td>단일 게시판 이용등록</td>

        <td>단일 게시판 이용등록</td>

        </tr>

    <tr>

        <td>COM001</td>

        <td>REGC02</td>

        <td>커뮤니티 등록</td>

        <td>커뮤니티 등록</td>

    </tr>

    <tr>

        <td>COM001</td>

        <td>REGC03</td>

        <td>동호회 등록</td>

        <td>동호회 등록</td>

    </tr>

    <tr>

        <td>COM001</td>

        <td>REGC04</td>

        <td>명함등록</td>

        <td>명함등록</td>

    </tr>          

  </tbody>

 

</table>

  

</div>

</body>

</html>


maven jquery bootstrap


잘 나오는 군요.  bootstrap을 사용하면 디자인을 없이도 어느 정도의 퀄리티 있는 사이트 제작이 가능 합니다.


- copy coding -


Spring Boot에서 jsp로 화면을 만들고 Controller에서 View로 리턴을 하였는데 jsp 파일을 찾지 못하는 경우 ResourceHttpRequestHandler :Path with "WEB-INF" or "META-INF" 이런 식으로 발생하는 오류입니다브라우저에는 아래와 같은 오류가 발생 하고


spring boot jasper


Console에도 아래 처럼 오류 로그를 확인할 수 있습니다


spring boot jasper


spring boot jasper


2020-02-14 11:54:00.941  INFO 33124 --- [nio-9090-exec-1] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...

2020-02-14 11:54:01.089  INFO 33124 --- [nio-9090-exec-1] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.

2020-02-14 11:54:01.151  WARN 33124 --- [nio-9090-exec-1] o.s.w.s.r.ResourceHttpRequestHandler     : Path with "WEB-INF" or "META-INF": [WEB-INF/jsp/board/BoardList.jsp]

2020-02-14 11:54:05.743  WARN 33124 --- [nio-9090-exec-2] o.s.w.s.r.ResourceHttpRequestHandler     : Path with "WEB-INF" or "META-INF": [WEB-INF/jsp/welcome.jsp]


사실 오류라기 보다는 Spring Boot에서 내장된 Tomcat을 사용 하는 경우 JSP를 처리하는 서블릿을 추가하지 않아 발생하는 것으로 pom.xml에 다음을 추가해 주면 해결 됩니다.


 <dependency>

        <groupId>org.apache.tomcat.embed</groupId>

        <artifactId>tomcat-embed-jasper</artifactId>

</dependency>


pom.xml에 추가하고  Maven update 하고 Maveninstall 하고 실행해 보면 이번에는 화면에 출력이 잘 나옵니다.



123456···8

+ Recent posts