Category Archives: Lang

프로그래밍 언어

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 »

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

By | 10월 14, 2015

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

java.util.Scanner 와 while 문을 사용하여 콘솔(console) 입력을 계속 받아서 수행하는 프로그램 샘플

By | 10월 14, 2015

  Scanner scanner = new Scanner(System.in); while(true){ System.out.println(“실행할 서비스를 선택하세요 : “); String input = scanner.nextLine(); //block loop try{ //input 값으로 분기하여 필요한 로직 수행 //이 안에서 Exception 발생 가능성 있음 }catch(Exception e){ scanner.reset(); //Exception이 발생해도 중지되지 않고 계속 입력을 받을 수 있도록 처리 } }

NoClassDefFoundError 의 특이한 케이스

By | 10월 1, 2015

로컬에서 잘 돌던 A.java 파일이 개발서버에서 Runtime시 NoClassDefFoundError 를 뿜고 있었다. 에러로그를 보니 A.java 가 외부 라이브러리 클래스 (jar 에 포함된 클래스) B.class 의 static method 를 호출하는 순간이었는데, 문제는 B의 static method가 JNI library(*.so 파일)를 호출하는데, JVM을 실행시킨 user의 권한이 *.so 파일을 실행시키는데 부족했기 때문이었다. 그래서, 해당 *.so 파일들의 권한을 750 => 755 로 모두… Read More »

AngularJS 1.x 에 대한 메모

By | 6월 18, 2015

  * 하위 module을 갖고 있는 module에서 config와 run의 실행 시점 (1) 하위 의존성 module들의 config 콜백 실행 (2) 의존성 module들의 config 실행이 모두 완료된 후, 상위 module의 config 콜백 실행 (3) 하위 의존성  module의 run 콜백 실행 (4) 의존성 module들의 run 실행이 모두 완료된 후, 상위 module의 run콜백 실행   * constant와 value의 차이점 – 거의… Read More »

node.js 로 간단한 정적 자원(static resources)용 웹서버(web server) 만들기

By | 6월 11, 2015

* 환경 node.js v0.12.4   1. node.js 커맨드창에서 아래의 명령 실행 npm install connect static-server   2. 웹서버 런칭 js파일 작성 (server.js) var connect = require(‘connect’); var serveStatic = require(‘serve-static’); var port = 5000; connect().use( serveStatic(‘C:/nodejsweb’) //document root로 사용할 물리 경로 ).listen(port); console.log(“Static file server running at\n => http://localhost:” + port + “/\nCTRL + C… Read More »

jsonp 관련

By | 3월 31, 2015

* jQuery ajax 로 jsonp 요청시 크롬 개발자도구 상태 Content-type 없음 Accept는 */* 이 됨 network 탭에서 xhr이 아닌 script로 조회됨. method type에 관계 없이 get 요청이 됨.    

java 리플렉션(Reflection) 샘플

By | 3월 30, 2015

* 접근 불가능한 필드에 접근하기 Map<String, Field> fieldMap = new HashMap<String, Field>(); Field[] fields = Example.class.getDeclaredFields(); for(Field f : fields) { fieldName = f.getName(); f.setAccessible(true); fieldMap.put(fieldName, f); }   *  필드에 접근해서 값 셋팅하기 //this는 fieldMap에 해당하는 멤버를 지닌 객체 fieldMap.get(“returnMsg”).set(this, “success”);        

java 에서 숫자값을 갖는 object를 int나 long으로 형변환 해 주는 유틸 클래스(NumberUtility) 샘플 코드 (자작)

By | 2월 23, 2015

    public class NumberUtility { private static final Log LOG = LogFactory.getLog(NumberUtility.class); public static final BigDecimal INT_MIN_IN_BIGDECIMAL = new BigDecimal(Integer.MIN_VALUE); public static final BigDecimal INT_MAX_IN_BIGDECIMAL = new BigDecimal(Integer.MAX_VALUE); public static final BigDecimal LONG_MIN_IN_BIGDECIMAL = new BigDecimal(Long.MIN_VALUE); public static final BigDecimal LONG_MAX_IN_BIGDECIMAL = new BigDecimal(Long.MAX_VALUE); /** * 생성 금지 */ private NumberUtility(){} /** * Object를… Read More »

jQuery ajax 로 파라미터를 전달할 때 사용하는 $.param() 함수의 이상동작에 대하여

By | 2월 23, 2015

javascript object를 query string으로 변환해 주는 jQuery의 $.param() 함수 사용중, 값이 배열인 데이터를 query string으로 변환할 때 파라미터명 뒤에 “[]” 문자열이 붙는 현상이 있었다. 이 때, $.param() 함수의 두 번째 인수로 true 값을 주니 이 현상을 해결할 수 있었다. (ex:  var qryStr = $.param(jsonObj, true); )  

javascript 정규식 치환 (replace()) 함수의 두 번째 인수로 function을 넣어서 escapeHtml() 함수 작성하는 예제

By | 10월 23, 2014

– 출처: http://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery –   javascript replace() 함수의 두 번째 인수로 함수를 넣을 수 있다는 것을 처음 알았다. ^ㅁ^;   var entityMap = { “&”: “&amp;”, “<“: “&lt;”, “>”: “&gt;”, ‘”‘: ‘&quot;’, “‘”: ”’, “/”: ‘/’ }; function escapeHtml(string) { return String(string).replace(/[&<>”‘\/]/g, function (s) { return entityMap[s]; }); }      

jQuery Deffered 에 관한 개념 정리

By | 10월 21, 2014

      * Promise 객체 – Promise 객체는 $o.promise()로 생성하거나 $.when()의 인수로 넣어질 경우 생성된다. – Promise 객체가 되면 객체에서 일어나는 일들을 모니터링하여, 이벤트가 종료되면 done()을 호출한다. (ex: fadeOut())                                                  

정적 자원 (js, css) 들을 브라우저에서 캐싱(cache) 하지 못하도록 처리하기.

By | 9월 11, 2014

  방법 1) 정적 자원 로딩(import) url 뒤에 버전을 나타내는 구분자 붙이기.   * 브라우저가 1분 이상 정적 자원들을 캐싱하지 못하도록 막고 싶을 경우, 공통 heaer jsp 파일 소스코드 예시 <% request.setAttribute(“buildVer”, DateUtil.getCurrentDate(“yyyyMMddHHmm”)); //현재일시의 DateFormat을 리턴해 주는 사용자정의 메서드 getCurrentDate()가 있다고 치자. %> <script src=”${contextPath}/js/common.js?${buildVer}”></script>           나머지 방법들은 기회가 되면…  … Read More »

java 정규식(regex)을 사용하여 2회 이상 반복되는 정규식 패턴의 문자열을 각각 치환(replace)하는 예제

By | 5월 11, 2021

하려고 하는 작업 특정 문자열에서 메타문자 {WRAP}{/WRAP}로 감싸진 숫자를 찾아서 마스킹 처리를 하고 {WRAP}{/WRAP} 메타문자는 삭제하고 싶다. String dtl = "블라블라 {WRAP}123456{/WRAP} 어쩌구 저쩌구 {WRAP}987654{/WRAP} 마무으리 등등등…"; Matcher matcher = Pattern.compile("\\{WRAP\\}(\\d*)\\{/WRAP\\}"); // grouping을 하나 한 것에 주목 StringBuffer sb = new StringBuffer(); while(matcher.find()){ // 계속해서 결과를 찾아간다. //문자열 맨 앞에서부터 sb에 붙여나가면서 치환 처리까지 수행한다.… Read More »

java에서 원치 않는(의도하지 않은) null 문자열 (null string) 이 나올 경우 체크해 볼 사항

By | 8월 21, 2014

  1. StringBuffer, StringBuilder 클래스의 append() 메서드 사용 append() 메서드의 인수로 null 이 들어가면 “null” 문자열이 append() 된다.     2. String 클래스의 valueOf() 메서드 사용 valueOf() 메서드의 인수로 null 이 들어가면 “null” 문자열을 리턴한다.