본문 바로가기

전체 글116

Spring 4.3.2 log4jdbc-log4j2 설정 방법 1. pom.xml 자바 1.8 기준 메이븐 디펜던시 설정 org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1 1.16 2. DataSource 설정 DBCP는 HikariCP를 사용(자바 기반 설정) @Bean public DataSource dataSource() { HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("net.sf.log4jdbc.sql.jdbcapi.DriverSpy"); ds.setJdbcUrl("jdbc:log4jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("use.. 2016. 9. 29.
context.xml JNDI 설정 언제나 찾기에 여기에 적어두자. context.xml 파일을 웬만하면 프로젝트 webapps/META-INF 폴더 밑에 두자 그러면 WAS 의존성 없이 쓸 수 있다. 끝. 2016. 9. 29.
Springfox 설정 API 문서화 및 테스트를 가능케 해주는 Springfox에 대해서 알아본다. 1. 메이븐pom.xmlio.springfoxspringfox-swagger-ui2.5.0io.springfoxspringfox-swagger22.5.0 2. 자바에서 설정@Configuration, @EnableWebMvc 등 설정이 들어간 클래스에 추가@EnableSwagger2public class WebConfiguration extends WebMvcConfigurerAdapter {// API 객체 선언@Beanpublic Docket api() {return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any()).pat.. 2016. 9. 25.
Spring 4.3.2 자바 annotation 기반 설정 이클립스 네온으로 스프링 현재 릴리즈 버전인 4.3.3으로 테스트 하려고 했으나 아직 메이븐 레파지토리(http://mvnrepository.com)에 등록이 되어있지 않아 스프링 관련 클래스를 못 찾는 에러가 난다(jar는 다운받아지던데...). 그래서 이전 버전인 4.3.2 버전으로 테스트 한다. => 4.3.3으로도 가능하다. 메이븐에 올라왔다. 스프링이 xml 기반 설정을 줄이고 annotation 기반 설정으로 가는 추세인 듯 하여 간단하게 설정해보았다. 아래 예제는 최소한의 설정만 들어가 있다. DataSource, Transaction, JSP, UTF-8 등등 설정은 생략하였다. 1. web.xml 대신 설정 package com.my.web.common.config; import java.. 2016. 9. 21.
ThreadLocal(스레드로컬) ThreadLocal(스레드로컬)- 각 스레드마다 자신만이 쓸 수 있는 자원을 관리해주는 클래스 2가지 구현 방식이 있고 사용법은 간단하다.1. ThreadLocal 객체화ThreadLocal threadLocal = new ThreadLocal();threadLocal.set("test");System.out.println(threadLocal.get()); 2. ThreadLocal 상속 받은 클래스 객체화initialValue() 메소드를 오버라이딩하여 초기값을 줄 수 있다(get() 호출 시 수행).public class ThreadLocalHelper extends ThreadLocal {@Overrideprotected String initialValue() {return "test";}} 3.. 2016. 8. 16.
Apahce poi 엑셀 읽기(파싱) 엑셀 2007 이전 xls 엑셀 2007 부터 xlsx 에 대한 처리를 지원하는 Apache poi에 대해서 알아본다. poi는 아파치 오픈 소스로서 엑셀을 읽거나 쓸 수 있다. 여기선 읽는 부분에 대해서 살펴보겠다. 홈페이지: http://poi.apache.org/ 여기선 poi-3.14 버전으로 구현 기본적으로 엑셀을 읽는데 크게 2개의 클래스를 아래와 같이 제공한다. HSSF: xls 읽기 XSSF: xlsx 읽기 확장명에 따라 처리가 가능하지만 2개를 나누어서 처리하기보다 WorkbookFactory.create를 쓰면 쉽게 처리가 가능하다. 예제 // 엑셀파일, 패스워드, 읽기전용 // 첫 번째 인자 엑셀 파일은 타입에 따라 생성 클래스가 다른데 살펴볼 필요가 있다. Workbook workb.. 2016. 7. 31.
디비툴 DBeaver 1. 홈페이지http://dbeaver.jkiss.org/ 2. 다운로드 및 설치아래 url에서 다운로드http://dbeaver.jkiss.org/download/ 여기선Windows 64 bit (installer + JRE)다운로드 후 설치 한다.설치는 쉬우므로 넘어간다. 3. 실행된 화면 끝. 2016. 6. 25.
아파치 미나(Apache MINA) 사용법 자바에서 네트워크를 쉽게 구현해주는 Apache MINA에 대해 알아본다.MINA는 네트워크 프레임워크으로서 Mina, FtpServer, SSHD, Vysper 4개의 프로젝트를 제공한다.여기서 Mina에 대해서 확인해본다. 미나(MINA)는 한국인이 창시한 오픈소스 프로젝트로서자바에서 IO Socket이나 NIO Socket을 쉽게 구현할 수 있는 프레임워크이다. 미나는 3개의 레이어로 구성1. I/O Service : 실제 I/O수행, Session 존재2. I/O Filter Chain : 원하는 데이터 구조와 원하지 않는 데이터 구조 바이트를 필터/변형, n개의 필터 존재3. I/O Handler : 실제 비지니스 로직 http://mina.apache.org/mina-project/usergu.. 2016. 6. 11.
Eclipse Indigo maven plungin 설치 Eclipse Indigo는 기본적으로 메이븐이 없다.따라서 메이븐 사용을 위해 플러그인을 설치하여야 하는데 쉽게 설치 가능하다. 이클립스 상단 메뉴에서- Help -> Install New Software... 선택 - Work with 셀렉트(콤보)박스에서 -> Indigo - http://download.eclipse.org/releases/indigo 선택 - 검색된 목록 중 Collaboration 이나 General Purpose Tools 하위 목록에 m2e로 시작하는 목록이 2개 있는데 체크하고 설치하면 된다. 옛날꺼라 그런지 업데이트 받는데 시간이 오래 걸린다. 끝. 2016. 6. 7.
Eclipse AngularJS 플러그인 설치 jQuery 같은 JavaScript를 쉽게 처리해주는AngularJS라는 JavaScript Framework가 등장했다. 사이트는 여기 https://www.angularjs.org/벌써 2버전이 나왔나보다. 이클립스에서 AngularJS 코딩을 도와주는 플러그인을 설치해보자. 이클립스 메뉴에서Help -> Eclipse Marketplace... 선택 Eclipse Marketplace 창에서AngularJS 검색하여 설치(아래 그림은 이미 설치되어 있음) 그리고 이클립스 프로젝트 마우스 오른쪽 버튼을 눌러Configure -> Converto to Angular JS Project... 선택 결과 참고https://github.com/angelozerr/angularjs-eclipse 끝. 2016. 5. 10.
eclipse.ini 설정 eclipse.ini 설정 -vmC:\Program Files\Java\jdk1.8.0_91\bin-Xverify:none-XX:+UseParallelGC-XX:-UseConcMarkSweepGC-XX:+AggressiveOpts-XX:CompileThreshold=20000-XX:PermSize=256m-XX:MaxPermSize=256m-XX:NewSize=256m-XX:MaxNewSize=256m-Xms1024m-Xmx2048m 끝. 2016. 5. 2.
Java ServerSocket Multithereading 예제 Java 1.4.2부터 NIO가 나와있지만기본인 BIO 소켓 처리 예제를 다룬다. 사실 NIO 코딩이 더 어렵다.채널, 바이트버퍼, 셀렉터 등등...MINA나 Netty 프레임웍을 쓰면 좀 쉽게 처리가 가능하다. 아래는 BIO 소켓서버 처리 코드이다. ServerSocket1.javaimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;import j.. 2016. 4. 25.
Spring batch 예제 Spring Batch 예제- spring framework 4.2.5- spring batch 3.0.6- cglib 3.2.2- myBatis 3.3.1- myBatis spring 1.2.4- logback 1.1.7- mariadb 1.4.2 여기선 myBatis 연동과 트랜잭션 처리 예제까지는 안했다.트랜잭션은 AOP나 @Transactional 사용하면 될 듯. DB는 MariaDB를 사용했다.스프링 설정에서 자동으로 스키마를 생성해주는게 있는 듯 한데, 그냥 테이블 생성 스크립트를 수동으로 돌렸다.spring-batch-core-x.x.x.RELEASE.jar 파일 안에 org.springframework.batch.core 패키지 안에 있다.살펴보면 mariadb 스크립트는 따로 없다. 그.. 2016. 4. 20.
Java 큐(Queue) 종류 및 특성 Java 큐(Queue) 종류 및 특성 - CopyOnWriteArrayList병렬 처리 성능이 좋고 Iterator를 이용해 데이터를 뽑아낼 시 대상을 복사해서 사용 - LinkedBlockingQueue, ArrayBlockingQueue, PriorityBlockingQueue프로듀서-컨슈머 패턴, 병렬 처리 성능이 좋음PriorityBlockingQueue는 우선 순위를 기준으로 처리 - SynchronousQueue큐에 데이터를 쌓지 않고 하나의 데이터가 큐에 들어가면 그 데이터를 가져갈 때까지 대기 - ConcurrentLinkedQueue병렬 처리 성능이 좋고 비블록 알고리즘이 사용됨 - LinkedTransferQueue프로듀서-컨슈머 패턴, 병렬 처리 성능에 좋고 블로킹, 비블로킹 둘 다.. 2016. 3. 30.
Spring 4.2.4 + Querydsl 3.7.1 # Spring 4.2.4, Querydsl 3.7.1, Hibernate 5.1.0 기준으로 작성Full 예제는 아니므로 자신의 개발환경에 맞추어 코딩최소한의 설정과 예제로 작성됨 # Querydsl 3버전은 패키지 경로가 com.mysema.query로 시작하나 Querydsl 4버전에는 com.query으로 시작함4버전 써도 무방하고 이 글 쓰는 시점의 최신 버전은 4.0.7 # 메이븐- dependencych.qos.logbacklogback-classic1.1.3 org.hibernatehibernate-entitymanager5.1.0.Final com.mysema.querydslquerydsl-apt${querydsl.version}providedcom.mysema.querydslqueryd.. 2016. 2. 22.
Spring WebSocket 1. Spring 4.x, WebSocket # pom.xml org.springframework spring-websocket 4.2.1.RELEASE # servlet-context.xml # WebSocketHandler.java import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.WebSocketSession; import org.springframework.web.socket.handler.TextWebSocketHandler; public class WebSocketHandler extends TextWebSocketHandler { @Override protected void handl.. 2015. 9. 13.
오픈스택(OpenStack) 인스턴스에 볼륨 붙이기 에러 처리 오픈스택 Block(Cinder)를 설치하고 나서 볼륨을 생성하고 인스턴스에 볼륨을 붙이면 아래와 같은 에러를 겪었다. 에러1ERROR oslo_messaging._drivers.common [req-d8618159-5e26-409b-9597-76af25d617e9 f586e5bbbe404ce88160dfc1dddb8e27 0519eb1a7104438c8aa7de57bdbd7288 - - -] Returning exception Unexpected error while running command. Command: sudo cinder-rootwrap /etc/cinder/rootwrap.conf tgtadm --lld iscsi --op show --mode target Exit code: 96 Std.. 2015. 9. 4.
myBatis plugin interceptor sql 바인딩 로깅 구현 myBatis 로깅을 좀 더 가독성을 높이기 위한 방법을 고민하다가 아래와 같이 myBatis 플러그인 인터셉터를 이용한 방법을 사용해보았다. 플러그인 등록 mybatis-config.xml 플러그인 구현 SqlLogInterceptor.java import java.util.Collection; import org.apache.ibatis.cache.CacheKey; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.BoundSql; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.ParameterMapping; im.. 2015. 9. 1.
OpenStack Swift 팁 오픈스택 오브젝트 스토리지 설치 때 많은 삽질이 있어 그 내용을 남기고자 한다. ERROR: Unable to run auditing: [Errno 13] Permission denied: '/srv/node/sdb' ERROR: Unable to run auditing: [Errno 13] Permission denied: '/srv/node/sdc' 위 에러는 보안 정책을 재적용하면 된다. # restorecon -R /srv/node ('Connection aborted.', error(111, 'Connection refused')) ExecStart=/usr/bin/swift-proxy-server /etc/swift/proxy-server.conf (code=exited, status=1/FA.. 2015. 8. 24.
CentOS 7 오픈스택(OpenStack) 어딘가 이상이 있습니다! CentOS 7 오픈스택 Kilo의 Dashboard를 설치하고 나서인스턴스 생성 같은 명령어를 수행시키면 아래와 같은 에러가 발생하는 경우가 있다.또는 아래 그림 말고 알림창에 에러 내용이 표시되기도 함. 파이썬 인코딩 문제라고 한다.기본 인코딩 값이 ascii로 되어있는걸 utf-8로 변경하면 되는데파이썬 2.x 까지는 ascii로 되어있는듯 한다.파이썬 3.x 부터는 utf-8로 되어있다고 하는데 확인이 필요하다. 에러내용파일위치: /var/log/horizon/horizon.logUnicodeDecodeError: 'ascii' codec can't decode byte 0xeb in position 0: ordinal not in range(128) 해결참고로 오픈스택 킬로는 파이썬 2.7을 사.. 2015. 8. 17.