Development

    [JAVA] Object Pooling

    오브젝트 풀링(apache commons pool 이용) 하는 방법. 오브젝트 풀링에 대한건.. 간단하게 설명하면 많은 수의 오브젝트가 생성되는것을 방지하고자, Pool에 오브젝트들을 담아두고 사용 및 반납을 하는 방식이다. 도서관에 책을 대여하고, 반납하면서 특정 개수의 책만 사용하는 것을 생각하면 된다. 만약, 그런 시스템이 없다면 필요 할때마다 도서관에서는 책을 새로 신청해야 할 것이다. 용도 및 장점 : 잦은 오브젝트 할당으로 인한 over-head 감소 1. pom.xml에 apache commons pool 라이브러리를 maven import commons-pool commons-pool 1.6 2. 풀링해볼 객체의 구현체인 Person 클래스를 만듬. package gompang.domain..

    [Spring] Springboot JUnit 테스트 시 설정

    1. pom.xml 설정 1) Junit 4.12 버전 이상 junit junit 4.12 test 2) Spring-boot starter-test org.springframework.boot spring-boot-starter-test 1.5.3.RELEASE 테스트 클래스 구성 import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; impor..

    [logger] Logback xml 설정 및 디펜던시 설정

    매번 찾는 수고로움을 덜기위해 기술해둠. 내용logback 설정console appender highlight 설정필요 디펜던시 기술logger 사용법 1. logback.xml %d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %magenta(%-4relative) --- [ %thread{10} ] %cyan(%logger{20}) : %msg%n labatory.log labatory.%d{yyyy-MM-dd}.log 30 %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %-4relative --- [ %thread{10} ] %logger{35} - %msg%n 2. pom.xml 디펜던시 ch.qos.logback logback-core 1..

    [DB] DBCP 구현 - DB Connection Pooling

    Spring에서는 xml혹은 java 설정으로 DBCP를 구성할 수 있지만, Spring 혹은 해당 웹 프레임워크를 사용하지 않는 프로젝트에서는 DB Connection에 관한 풀링을 자체로 만들어야 한다. 현재는 Apache Storm 쪽에서 DB 작업을 하기 위한 구성 중, 성능상 문제가 없는 DBCP 커넥션 설정 방법을 공유하고자 함. DBManager 를 사용하고자 하면 Singleton으로 받아와서 사용해야 함. DBCP에 대한 설명은 간단하게 아래 그림과 같음. (출처) 사실 DBCP 설정 등에 대해서도 쓸게 많은데.. 많은고로 귀찮기 때문에 이번엔 구현만 설명하고자 한다 Connection을 미리 생성해두고, Connection을 가져와서 사용하고 다시 반납을 하게 되면 매번 새로운 Conn..

    [Springboot] JPA(Hibernate) 공부 편

    일단.. JPA랑 Hibernate는 같은 놈이라기보단 인터페이스와 구현체로 볼 수 있다 Springboot 패키지에 springboot-starter-jpa 라는 놈이 있는데, 이를 사용하면 JPA를 쉽게 사용할 수 있다. 이 JPA 구현체로 Hibernate를 사용하는 것이다. JPA의 구현체에는 여러가지 기법이 있는데 그 중 가장 유명한 방식을 사용 하는 것(하도 JPA Hibernate라고 하니, 두개가 같은 건지, 같이 꼭 붙어다녀야 하는건지 항상 의문이었다) Hibernate는 ORM 이라 불린다. ORM(Object Relationship Mapper)는 말 그대로 무언가를 매핑해주는 매퍼를 말하는데,DB상에 존재하는 데이터를 JAVA의 POJO로 인식을 하여 접근하게 해주는 역할을 한다. ..

    [Spring] JSON Object 관련

    이전 포스팅에도 Spring에서 객체를 Wrapping해주는 JSON Mapper에 대해 기술한 적이 있는데 좀더 자세히 사용법을 알아보고자 작성해본다. JAVA에서 객체를 박싱/언박싱할때 사용하는 라이브러리는 주로 다음과 같다 org-jsongsonjacksonjson-simpleminimal-json일단 왜 JSON 라이브러리가 중요한가 보면, JSON(Javascript Object Notation)은 현재 여러 플랫폼에서 통용되는 데이터 타입이라고 볼 수 있는데,서버 클라이언트에 사용되는 주요 메세지 포맷이다. 데이터를 송/수신할때 직접 byte단위로 보내도 되지만, 이럴 경우 언어별로 각기 다른 처리를 해줘야 하는 수고로움이 들기도 하고사람이 알아보기 힘든 면이 있다.(JSON의 경우 사람이 알..

    [JAVA] ExecutorService 관련 공부

    ExecutorService 관련 공부 1. ExecutorService에 관하여 ExecutorService는 병렬작업 시 여러개의 작업을 효율적으로 처리하기 위해 제공되는 JAVA의 라이브러리이다. 통상적으로 작업을 분리하고 수행하는 작업을 손수 구현하고자 하면.. 각기 다른 Thread를 생성해서 작업을 처리하고, 처리가 완료되면 해당 Thread를 제거하는 작업을 진행해야 한다. 이러한 일련의 작업을 이 클래스를 이용해서 쉽게 처리가 가능하다. 흔히 말하는 ThreadPool을 구현하기가 매우 용이하므로, Java에서 쓰레드풀을 생성해서 사용하고자 하면 (손수 구축이 아닌.. 보장된 동작을 원한다면 이를 사용하길 적극 추천) 반드시 사용을 고려해봐야 할 유틸리티성 클래스이다. ExecutorSer..

    [Spring] Annotation 관련

    @Controller // 일반적인 MVC Controller의 컨트롤러.. 이를 사용한 클래스는 객체를 자동으로 Wrapping 해주지 않는다. @RestController // 위의 Controller와 같은 역할을 하지만(Servlet Request, Response 핸들링), // Rest에 적합한 Controller로써, @RequestBody, @ResponseBody를 사용하지 않아도 알아서 Convert를 해서 핸들링한다. @RequestBody // Request로 받은 Input을 자동적으로 JSON으로 Wrapping해서 가져온다. @ResponseBody // Response로 나가는 output을 자동적으로 JSON으로 Wrapping해서 내보낸다. // 아래는.. 게시판을 만들면..

    [Springboot] Velocity 사용 중 unable to find resource

    springboot에 템플릿 엔진으로 velocity를 사용해보고 있는데, 아래와 같은 에러 메세지를 접하게 된다. 23:28:19.346 [XNIO-1 task-2] ERROR org.apache.velocity - ResourceManager : unable to find resource '/nav.vm' in any resource loader. 23:28:19.353 [XNIO-1 task-2] ERROR org.apache.velocity - #include(): cannot find resource '/nav.vm', called at arrival.vm[line 18, column 1] 23:28:19.365 [XNIO-1 task-2] ERROR io.undertow.request - UT..

    Windows에서 원격 remote 포트 검사하는 방법

    좋은 프로그램이 있으니 쓰자 tcping 이라는 놈이다 http://www.elifulkerson.com/projects/tcping.php 에 가면 다운받을 수 있고 윈도우 커맨드창에서 실행시키면 된다. 주로 cmd는 기본 열리는 path가 C:\Users\본인계정 에서 열리게 되므로 해당 path에 갖다놓으면 cmd 실행하자마자 디렉토리 옮길 필요없이 바로 사용 가능하다. 바로 이런식으로 사용 가능하고 포트 지정해서 사용도 가능하다 tcping 대상주소 포트 로 사용 가능 매우 편리