프로그램 할 때 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 -


오라클을 설치하지 않은 경우 간단하게 database를 테스트 할 수 있도록 oracle에서 제공하는 사이트가 있습니다어떻게 보면 별로 소용이 없을 수도 있지만 table 생성이나 쿼리 조회가 자유롭지 못한 환경에서는 자유롭게 테스트 하는데 유용할 수도 있습니다.

 

일단 사이트에 접속을 합니다.

https://livesql.oracle.com/


oracle sql test online


상단 우측 Sing In을 클릭하고 로그인을 진행 합니다오라클에 계정이 없다면 신규로 생성합니다.  


oracle sql test online


계정 생성이 귀찮을 수 있지만 오라클에서 제공하는 프로그램을 다운로드 받는 경우 필요하기 때문에 하나 만들어 두는 것도 좋습니다.


oracle sql test online


livesql 사이트에 처음 접속하는 경우에는 면책조항 확인을 합니다.


좌측 메뉴에서 SQL Worksheet를 선택하면 일반적인 퀴리 테스트가 가능 합니다.


oracle sql test online


select to_char(sysdate, 'YYYY-MM-DD') from dual;을 입력하고 상단 우측 Run 버튼을 클릭해서 테스트를 진행 합니다.

 

물론 신규 테이블 생성도 가능 합니다.


oracle sql test online

CREATE TABLE customers

( customer_id number(10) NOT NULL,

  customer_name varchar2(50) NOT NULL,

  city varchar2(50),

  CONSTRAINT customers_pk PRIMARY KEY (customer_id)

); 


생성한 테이블에 데이터 입력도 가능 합니다.


oracle sql test online

insert into customers(customer_id, customer_name, city) values(100, 'test1', 'city1');

insert into customers(customer_id, customer_name, city) values(200, 'test2', 'city2');

insert into customers(customer_id, customer_name, city) values(300, 'test3', 'city3');

insert into customers(customer_id, customer_name, city) values(400, 'test4', 'city4');

insert into customers(customer_id, customer_name, city) values(500, 'test5', 'city5'); 


쿼리의 일부만 실행 하려면 마우스로 드래그 해서 영역을 설정하고 Run 버튼을 클릭 합니다.

 

이제 입력한 데이터를 조회하면 됩니다.


oracle sql test online

select * from customers;

 

Table을 생성하고 데이터를 입력하는 작업이 귀찮으면 기존에 오라클에서 제공하는 테이블을 선택해서 쿼리 테스트를 진행해도 됩니다.


oracle sql test online


상단 Find를 선택하고 팝업창에서 Schema를 확장하면 내가 생성한 My Schema와 오라클에서 제공하는 친숙한 HRSCOTT도 보이는 군요.

 

oracle sql test online


My Session 메뉴에는 지금까지 작업한 log 정보를 확인할 수 있습니다.


oracle sql test online


본인이 생성한 Table 정보는 Schema에서 확인하고 작업할 수 있습니다.

 

, Schema 정보는 Oracle 사이트에 Session이 연결된 동안만 존재 합니다.  Session을 저장 하려면 SQL Worksheet 상단에 있는 Save 버튼을 이용해서 저장을 해놓으세요.


- copy coding -

SQL Server Manager로는 잘 접속이 되는데 전자정부 프레임워크에서 MS SQL Server에 접속하려는 경우 오류와 함께 접속이 안되는 경우가 있습니다.

 

com.microsoft.sqlserver.jdbc.SQLServerException: 호스트 localhost, 포트 1433에 대한 TCP/IP 연결에 실패했습니다. 오류: "Connection refused: connect. 연결 속성을 확인하십시오.

SQL Server의 인스턴스가 호스트에서 실행되고 있고 포트에서 TCP/IP 연결을 허용하고 있는지 확인하십시오. 또한 방화벽에서 포트로의 TCP 연결을 차단하지 않는지 확인하십시오.".

 

이건 다른 프로그램과는 TCP/IP 통신을 하고 있는데 접속 허용을 설정 하지 않아서 발생하는 오류 입니다.  TCP/IP 접속 허용 설정을 합니다.


SQLServerException TCP/IP 연결 실패


SQL Server 구성 관리자를 실행 합니다.


SQLServerException TCP/IP 연결 실패


좌측 SQL Server 네트워크 구성을 확장하여 SQLEXPRESS에 대한 프로토콜을 선택 합니다우측에 TCP/IP가 사용 안 함을 설정되어 있습니다사용으로 변경 합니다변경이 완료 되면 TCP/IP를 더블 클릭 하여 TCP/IP 속성 창을 오픈 합니다.


SQLServerException TCP/IP 연결 실패


IP 주소 탭에서 스크롤을 맨 아래로 내리면 IPALLTCP 포트가 나오는데 처음에는 빈 값이니 1433을 입력 하고 확인 버튼을 클릭 하여 SQL Server 구성 관리자로 다시 돌아 옵니다.

 

수정된 내용을 반영 하려면 DB를 다시 시작해야 하는데 재 시작은 SQL Server 구성 관리자 화면에서 좌측 메뉴의 SQL Server 서비스를 선택 합니다.


SQLServerException TCP/IP 연결 실패


우측에 3개의 서비스 리스트 중 첫번째 SQL Server를 선택 합니다.


SQLServerException TCP/IP 연결 실패


선택을 하였으면 마우스 우측 버튼을 클릭 해서 팝업메뉴가 나오도록 하여 다시 시작을 선택 합니다이제 다른 프로그램에서 SQL ServerTCP/IP 접속을 할 수 있습니다한번 전자정부 프레임워크에서 테스트를 진행해 봅니다.


SQLServerException TCP/IP 연결 실패


Ping 테스트가 성공 했군요전자정부 프레임워크에서도 MS SQL Server를 사용할 수 있게 되었습니다.

oracleExpress Edition 이 있는데 MS SQL Server에도 Express Edition 이 있습니다.  local에서 간단하게 설치하고 테스트 하기에는 좋은 것 같아 설치를 해보았습니다.

 

다운로드는 아래 링크를 이용하면 됩니다.

Microsoft SQL Server 2008 R2

https://www.microsoft.com/ko-kr/download/details.aspx?id=30438


MS SQL Server 2008 R2 SP2


붉은색 다운로드를 클릭하면 파일 선택 화면으로 이동을 합니다.


MS SQL Server 2008 R2 SP2


각자 필요한 파일을 선택해서 다운로드 받습니다.

SQLEXPR : 데이터베이스 엔진

SQLEXPRADV : 모든 기능 포함 패키지

SQLEXPRWT : 데이터베이스 엔진, 매니지먼트 도구

저는 엔진만 필요하므로 선택하고 다음 버튼을 클릭하면 SQLEXPR_x64_KOR.exe 파일이 자동 다운로드가 진행 됩니다.

 

다운로드 받은 파일을 실행하여 설치를 진행 합니다.


MS SQL Server 2008 R2 SP2


새로 설치하거나 기존 설치에 기능을 추가합니다. 를 선택 하면 설치 가능 유무를 확인 합니다.


MS SQL Server 2008 R2 SP2


컴퓨터 다시 시작이 실패했군요상태에서 실패라고 써있는 글씨를 눌러보면 자세한 설명이 나옵니다.


MS SQL Server 2008 R2 SP2


작업 중인거 많은데... 어째든 다시 시작을 해야겠네요.

 

컴퓨터를 다시 켜고 프로그램을 처음부터 시작해서 넘어오면 


MS SQL Server 2008 R2 SP2


라이선스에 동의함을 체크하고 다음 버튼을 클릭 합니다.


MS SQL Server 2008 R2 SP2


SQL Server 설치에 필요한 파일을 설치 합니다.


MS SQL Server 2008 R2 SP2


모두 선택된 상태에서 다음 버튼을 클릭 합니다.


MS SQL Server 2008 R2 SP2


다음 버튼을 클릭 합니다.


MS SQL Server 2008 R2 SP2


NO AUTHORITY\SYSTEM을 선택하고 다음 버튼을 클릭 합니다.


MS SQL Server 2008 R2 SP2


인증 모드는 혼합 모드로 선택하여 계정을 생성할 수 있도록 합니다중간에 추가 버튼을 클릭해서 관리자 계정을 생성 합니다.


MS SQL Server 2008 R2 SP2


Administrator를 하나 추가했습니다.


MS SQL Server 2008 R2 SP2


비밀번호를 입력하고 다음 버튼을 클릭 합니다.


MS SQL Server 2008 R2 SP2


오류가 없군요다음 버튼을 클릭해서 설정한 내용으로 설치를 진행 합니다.


MS SQL Server 2008 R2 SP2


설치가 진행 됩니다.


MS SQL Server 2008 R2 SP2


손쉽게 SQL Server 설치가 완료 되었습니다닫기를 클릭하면 설치 작업이 완료 됩니다.


123

+ Recent posts