2018/06

    [DB] JTDS Mybatis NVarchar 관련 이슈

    DB와의 커넥션을 맺기 위해 주로 사용하는 풀링 라이브러리가 여러개 있다. dbcp, jtds, hikari, c3p0 등... 그런데, 한글이나 유니코드 문자열을 저장하려면 MS-SQL의 경우 NVARCHAR() 형으로 저장을 해줘야 하는데 JTDS를 사용한다면 곤욕을 치룰 수 있는 부분이 존재한다. NVARCHAR를 사용할 수 없다는 것인데, mybatis의 xml 매퍼에서 다음과 같이 insert or update를 진행했다고 하면 insert into SOME_TABLE ( [GROUP_NAME] , [REG_ID] ) values ( #{groupName}, #{regId} ) groupName을 nvarchar로 지정했다고 하자. jtds의 커넥션 정보를 아래와 같이 설정한 상태이다. jdbc..

    [JAVA/OS] /dev/random 관련 PRNG 오류

    현재 Odroid HC2(XU4) 에다가 개인 서버를 구축하고 사용중인데, plex랑.. 뭐 이것저것 올려서 사용중이다 근데, JAVA를 설치하고 개인 프로젝트를 올려서 사용하려고 하니, 처음에는 동작을 잘 하다가 어느 순간이 되면 JVM 자체가 종료되면서 덤프파일이 생겨버린다 ㅡ,ㅡ.. 오류 내용은 다음과 같다 # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x7285dcb8, pid=20327, tid=0x6bf5f460 # # JRE version: OpenJDK Runtime Environment (8.0_171-b11) (build 1.8.0_171-8u171-b11-0ubun..

    [JAVA] 랜덤 퍼센트 계산하는 클래스(?)

    게임이나 뭐 확률 관련된 개발을 하다보면 뭔가 퍼센트로 어떤 동작이 실행됐냐 안됐냐를 확인하고 싶을때가 있다 input : percentoutput : true / false ex)input : 0.8foutput : true 이런식으로 말이다. 이럴때!! 쓰는 간단한 클래스 public class ChanceSupport { public static boolean percent(double percent) { return percent > ThreadLocalRandom.current().nextDouble(0, 1); } } } double로 받은 percent 변수가 랜덤으로 뽑은 double 변수와 비교해서 그보다 작은지를 확인한다 ex)랜덤으로 뽑은 값 : 0~1퍼센트로 지정한 값 : 0.8 i..

    [Spring boot] Websocket connect / disconnect 관련

    spring boot로 websocket을 개발하다보면 Session의 Connect / Disconnect 되는 시점을 알고 싶을 때가 있는데(사용자 동시 접속 리스트 관리 차원) 그때는 ChannelInterceptorAdapter를 사용하면 된다. @Component public class StompHandler extends ChannelInterceptorAdapter { private final Logger logger = getLogger(this.getClass()); @Override public void postSend(Message message, MessageChannel channel, boolean sent) { StompHeaderAccessor accessor = StompH..

    [Spring Boot] Resource load 관련

    spring boot로 개발을 하다보면, ObjectMapper(MessageConverter)를 커스터마이징을 하기 위해 Config를 설정하는 경우가 있다. @Configuration public class CommonConfig extends WebMvcConfigurationSupport { @Override public void configureMessageConverters(List converters) { final Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder(); final MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessag..

    [Spring Boot] Spring Security maximumSessions 관련

    spring boot security(라고 쓰고, spring security 라고 읽을 수도 있다) 에서 동시접속 세션수를 제한하는 기능이 있다. @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.sessionManagement() .maximumSessions(1) .maxSessionsPreventsLogin(true) } } 위와 같이 @Configuration에 @EnableWebSecurity 어노테이션을 붙인 뒤, WebSec..