Author Archives: itpsolver

java 프로퍼티 파일 읽기 예시 (java.util.Properties, org.springframework.util.ResourceUtils)

By | 11월 25, 2015

  Properties props = new Properties(); try{ props.load(new FileInputStream(ResourceUtils.getFile(“classpath:config/properties/test.properties”))) //classpath 기준으로 찾을 경우 //props.load(new FileInputStream(ResourceUtils.getFile(“file:C:/project/src/main/resources/config/properties/test.properties”))) //파일시스템 기준으로 찾을 경우 }catch(IOException e){ e.printStackTrace(); } String testValue = props.get(“testKey”);     * 이러한 류의 작업은 File I/O를 사용하기 때문에 시스템 기동부나 테스트코드에서 사용해야지, 자주 반복되는 구간에서 사용해서는 안된다.    

Hazelcast 서버가 일정한 주기로 다운되던 사례

By | 11월 24, 2015

웹페이지에서 refresh 를 하면서 JMX로 Hazelcast의 상태를 모니터링하는 프로그램이 있었다.   그런데 왜 일정한 주기로(며칠…) 다운되나 jconsole로 원인을 살펴보았더니, 이  JMX 조회를 수행할 때, JMX connection이 초기화되지 않고 계속 생성되면서, Hazelcast 내부 스레드(thread) 제한 갯수인 5000 에 육박하였기 때문이었다.   이 문제는 해당 프로그램에서 조회시마다 connection close를 잘 해 주도록 수정하여 해결되었다. 끝~~

Java 소켓통신에서 Connection reset by peer (peer로 연결 재설정) 오류가 발생할 경우의 사례

By | 11월 24, 2015

Connection reset by peer  (혹은 “peer로 연결 재설정”)   이 메세지는, 잘은 모르지만 느낌상 Netty에서 뿌려주는 메세지처럼 보인다. 내 경우에는, 연결을 유지하는 소켓통신을 사용중, 거래가 없기 때문에 상대방이(서버) 연결을 끊은 경우 (상대방 방화벽/어플리케이션 에서 자동으로 연결종료?), 내 쪽 (클라이언트) 에서 이 메세지를 볼 수 있었다. 검색을 좀 해 보니, 이것은 상대방이 TCP RST 패킷(리셋)을 보낼… Read More »

java에서 KSC5601 규격에 해당하는 문자만 허용하는 유효성검사 코드

By | 11월 20, 2015

* 실제로 이렇게 사용하는 것이 괜찮은가 하는 것은 잘 모르겠으나, 일단 한 번 구현해 보았다.   public static final Charset CHARSET_EUC_KR = Charset.forName(“EUC-KR”); public static final String KSC5601_START_HEX = “A1A1”; //EUC-KR 코드페이지 내에서 KSC5601의 시작코드 public static final String KSC5601_END_HEX = “FEFE”; //EUC-KR 코드페이지 내에서 KSC5601의 종료코드 public static final int KSC5601_START_INT = Integer.parseInt(KSC5601_START_HEX, 16); public… Read More »

Module로 구분된 Maven 프로젝트를 이클립스에 Checkout 하기 (module import)

By | 10월 30, 2015

Maven 프로젝트 하나를 checkout 받았는데, 구조가… [이클립스프로젝트명] > [모듈명1] > src > main … [이클립스프로젝트명] > [모듈명2] > src > main … 이렇게 되어 있었다.   그래서 이 프로젝트를 그냥 checkout 하는 것만으로는 Maven 프로젝트로서 기능을 할 수도, build path를 설정할 수도 없었다. 이 경우에는 Module 별로 Maven 프로젝트를 import 하면 된다고 한다.   패키지익스플로러에서… Read More »

콘 쉘 (korn shell, ksh) 관련 사항

By | 10월 29, 2015

* set -0 vi : 커맨드라인에서 ESC 입력시 vi 스타일의 명령어를 사용할 수 있다. k : 최근 입력 명령어 (누를수록 이전 명령어를 찾는다.) j : k와 반대방향으로 탐색 ESC\ 를 사용하여 디렉토리명 등을 자동완성(auto complete)할 수 있다. (참고: set -o emacs 사용시에는 ESC 2회 연타로 사용 가능)          

이클립스(eclipse)에서 원격 디버깅(remote debug) 하기

By | 10월 29, 2015

1. 서버 JVM 기동 스크립트에 아래의 VM argument(java option)를 추가하여 기동한다. (address에는 원하는 포트를 설정) -Xdebug -Xrunjdwp:transport=dt_socket,address=8899,server=y,suspend=n     2. 이클립스 설정 Run > Debug Configuration > Remote java application 을 생성한 후 실행한다.(1에서 설정한 포트와 설정을 맞출 것)     3. 이후 서버(원격)에서 코드 수행중 break point 에 해당하는 코드를 지나면 로컬 이클립스에서 디버깅을… Read More »

이클립스(eclipse)로 개발을 하면서 파일을 생성했는데(text file) 이클립스가 새로고침(refresh) 되지 않아서, 어플리케이션에서 바로 그 파일을 가져다 쓸 수 없는 상황에 대한 해결책

By | 10월 29, 2015

이클립스 > Window > Preference > General > Workspace > Refresh using native hooks or polling 을 체크한다!! 이렇게 하면 이클립스의 탐색기에서 F5 키를 누른 것과 같은 효과가 주기적으로 발생한다.      

Oracle 에서 테이블(table)을 truncate할 수 없을 때

By | 10월 27, 2015

– 출처 : https://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:399218963817 –   자식 테이블이 존재할 경우에는 테이블을 truncate할 수 없다. 정 하고 싶으면 FK constraint 를 삭제한 후 truncate 하고 다시 FK를 생성하라고 한다. 귀찮으니 그냥 delete를 사용하자~    

이상하게 인터넷 속도가 느릴 때 체크할 사항 (DNS 문제가 아닌지 점검하자!)

By | 10월 16, 2015

얼마 전에 공유기를 교체했는데, 지금까지 사용하던 것 중에 가장 비싸면서 가장 스펙이 좋은 제품이었다. 그런데 이상하게도 인터넷은 이전보다 더 느려진 느낌이 들었다. (스마트폰으로 공유기에 연결해서 웹페이지를 열면 최소 5초 이상 걸렸다)   왜일까… 생각하면서도 귀찮아서 그냥 내버려 두고 있었는데, 몇 주간 사용하다 보니 이상한 점이 눈에 띄었다. 바로 파일 다운로드 속도는 거의 차이가 없을 뿐만… Read More »

java interface method 에 붙은 throws Exception 구문을 코드 인스펙터가 지적했다. (그냥 Exception 말고 디테일한 Exception을 던지라고) 어떻게 해야 하는가??

By | 10월 14, 2015

나도 잘은 모르겠으나… 해당 메서드의 implementation 에서 checked exception을 throw 하는 API를 호출할 가능성을 배제할 수 없으므로, (ex: 외부 라이브러리 메서드 호출), 이 부분은 그냥 유지하는 게 좋지 않을까 싶다.