블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
04-19 12:12
 

달력

« » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
 

최근에 올라온 글

최근에 달린 댓글

String compareTo 에 대해...

JAVA / 2015. 1. 19. 17:03


너무 오랜만에 글 쓰는거지만 맨날 까먹는거라서...


String a, b; 가 있는 경우


a > b 일 때는 a.compareTo(b) 의 결과는 1 이상.

a == b 일 때는 a.compareTo(b) 의 결과는 0.

a < b 일 때는 a.compareTo(b) 의 결과는 -1 이하.



Posted by 자수씨
, |

아래와 같이 JDBCMailbox 는 Mailbox<String> 을 구현한 클래스입니다.

 

 

다른 mailbox 도 고려하기 위해 List<Mailbox<String>>로 리턴형식을 잡고 List<JDBCMailbox> 를 리턴했더니 캐스트 오류가 발생합니다.

 

JDBCMailbox 는 Mailbox<String> 으로 캐스팅이 가능한데 말입니다...

 

그래서 아래와 같은 작업을 해야 한다는...

 

 

무슨 이유가 있겠죠???

 

 

Posted by 자수씨
, |

어쩌다보니 iBATIS 환경도 아니고 하이버네이트 환경도 아닌 부분을 건들게 되었습니다.

다행히 Spring 3 환경이라 Spring JDBC 를 쓰다보니 좀 불편한 부분이 있어 ObjectRowMapper 를 새로 만들어보았습니다.

(이미 있을 수도 있겠지만 검색능력 부족으로...)

 

public class ObjectRowMapper<T> implements RowMapper<T>

사용법

 

 

퍼포먼스라... 일단 빠른 개발이 우선이기 때문에...

 

후우...

Posted by 자수씨
, |

Uber JAR???

JAVA / 2012. 7. 23. 09:54



Maven 쪽 뭔가를 찾다보니 uber-jar 라는 생소한 단어가 튀어나왔다.


google 을 뒤저보아도 명쾌한 정의가 없었지만 대충 의미라도 확인할 수 있는 사이트를 찾아 내 맘대로 해독(?)했다.


 By default maven is generating a small JAR file, which just contains your compiled classes and other project files. If you want to have a single JAR file which also includes all dependent JAR files, you have to create a uber JAR.

출처: http://robert-reiz.com/2011/10/19/uber-jar-with-maven/



의존관계인 라이브러리의 JAR 를 풀어서 JAR로 묶는 것이 아니라 해당 라이브러리를 그대로 JAR안에 넣고 META-INF 로 조정하는 형식???


확실한 의미를 알게되면 다시 정리해야겠다 =ㅁ='''


Posted by 자수씨
, |


JMX remote 관련해서 급 처리할 일이 생겨서...





출처: http://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#properties

Posted by 자수씨
, |

오전/오후가 포함된 날짜를 파싱하기 위해 아래와 같이 코딩을 하였습니다.



하지만 결과는... 오전/오후가 구분이 되지 않았습니다.

실행결과
Mon Oct 31 01:20:00 KST 2011


한참을 고민하고, Locale 도 줘보고 하였으나 결과는 똑같았습니다.


http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

Letter Date or Time Component Presentation Examples
G Era designator Text AD
y Year Year 1996; 96
M Month in year Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day in week Text Tuesday; Tue
a Am/pm marker Text PM
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in am/pm (0-11) Number 0
h Hour in am/pm (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800

오전/오후를 구분하는 문자열은 'H' 가 아니고 'K' 였습니다. 코드를 변경해서 실행해보니 원하는 결과가 나왔습니다.



실행결과
Mon Oct 31 13:20:00 KST 2011





Posted by 자수씨
, |

JNI 를 사용하기 위해 자바에서는 dll 파일이나 so 파일을 로드하여 사용합니다.

하지만 jar 파일 안에 위와 같은 라이브러리 파일이 있을 경우 별도의 로직으로 로딩을 해야 합니다.


NativeLoader.java


load() 메소드에 라이브러리 이름을 지정하면 해당 클래스로더에서 라이브러리를 로드하게 됩니다.


주의사항

라이브러리를 로드하여 파일과 최초로 호출되는 파일이 동일할 경우 ClassLoader 에서 InputStream 을 정상적으로 가지고 오지 못하는 경우가 있습니다. 예를 들어 A.class.getClassLoader().getResourceAsStream("...") 를 통해 라이브러리에 접근한다고 할 때, 최초로 해당 jar 파일에 접근하는 클래스가 A 일경우 정상적으로 확인이 되지 않습니다. B 클래스를 통해 A 를 이용하여 라이브러리를 로드하면 정상적으로 수행됩니다.

Posted by 자수씨
, |

Joda Time

JAVA / 2011. 9. 18. 22:39

먼가를 만들다보니 처음보는 Joda Time 이라는 라이브러리가 있어 찾아보았습니다.
http://joda-time.sourceforge.net

Joda Time - Java date and time API

Joda-Time 은 자바의 Date 와 Time 클래스의 품질 교체를 제공합니다. 간단한 API 를 통해 다양한 calendar 시스템을 제공합니다. 기본 calendar 는 ISO8601 표준을 사용합니다. 그레고리안, 율리우스, 불교, 콥틱, 에티오피아과 이슬람 시스템이 포함되어 있습니다. 지원 클래스는 시간대, 기간, 형식 및 파싱이 포함됩니다.


ISO 8601은 날짜와 시간의 표기에 관한 국제 표준 규격이다. 정식 명칭은 Data elements and interchange formats - Information interchange - Representation of dates and times이다. 최신버전인 ISO 8601:2004와 구버전인 ISO 8601:2000, ISO 8601:1988이 있다.
http://ko.wikipedia.org/wiki/ISO_8601


아래는 Joda-Time 의 간략한 예제입니다.



왜 Joda Time 인가?

Joda-Time 프로젝트 페이지에서는 다음같은 이유로 설명하고 있습니다.
  • 사용하기 쉽다.
  • 확장하기 쉽다.
  • 종합 기능 집합
  • 최신 시간대 계산
  • Calendar 지원
  • 간편한 상호 운용성
  • 더 나은 성능
  • 좋은 테스트 커버리지
  • 완전한 문서
  • 오픈 소스

기존 자바에서 제공해주는 Date 와는 달리 산술 연산도 쉽게 처리가 가능합니다. 근데 음력은 보이질 않네요 -ㅅ-...


Posted by 자수씨
, |

자바스크립트 환경변수를 js 파일에 글로벌 변수로 선언한 것을 DB화 시키기 위해 마이그레이션 툴을 만들다가 자바에서 기본으로 제공해주는 스크립트 엔진을 이용하여 파싱을 해보았습니다.

Parser 만들기

javax.script.* 클래스들을 이용하여 자바스크립트 글로벌 변수를 파싱하는 클래스 입니다.
JsGlobalVariableParser.java


간략하게 설명을 하자면, 문자열형 (String), 실수형 (Double), 부울린 형 (Boolean), 자바스크립트 오브젝트 형 (NativeObject) 을 추출하여 Map 으로 반환하는 로직을 가지고 있습니다. 문자열의 경우에는 single quotation 으로 감싸는 작업을 했으며, 실수형의 경우에는 정수로 변환하는 작업을 처리하였습니다. JavaScript Object 의 경우에는 json.js 의 stringify 함수를 이용하여 Object 그대로를 문자열로 치환하였습니다.

javax.script 패키지의 클래스들은 Rhino 가 자바 표준으로 포함되면서 별도의 라이브러리 추가 없이 사용할 수 있게 되었습니다.

Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically embedded into Java applications to provide scripting to end users. It is embedded in J2SE 6 as the default Java scripting engine


테스트

글로벌 변수를 가지고 있는 실험용 스크립트를 통하여 테스트를 진행해 보겠습니다.
test.js


JsGlobalVariableParserTest.java



녹색바가 정상적으로 뜨는 것을 확인하였습니다.

조금 더 정비할 사항이 있긴 하지만 현재 처리되어야 하는 상황은 충분히 처리가 가능합니다.

Posted by 자수씨
, |

예전에 정리해놓은 줄 알았는데;;;; 아니였나보네요~




익셉션이나 에러 발생 시 스택 트레이스를 활용할 때 사용합니다


Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백