콘텐츠로 건너뛰기

Programmer

oracle query troubleshooting

매번 mysql만 사용하고, oracle 쿼리를 만들어 본 적 없었는데, 약간은 뜬금없는 오류에 대해서 겪은 내용 공유합니다. 아래와 같은 쿼리가 있습니다. baseDate는 String값이고 예를 들면, 20140810 과 같은 값을 가지고 있습니다. 특정 날짜 이후의 데이터에 대해서 조회하는 로직입니다.

개발DB에서 성공적으로… 더 보기 »oracle query troubleshooting

MockMvc에서 ExceptionHandler 등록해서 쓰는 방법

단순히 Exception을 throw하면, ExceptionHandler가 Code와 Message를 json형태로 잘 매핑해서 응답하게 됩니다. (추가로 HttpStatusCode까지도 매핑하게 됩니다) 그래서 아래처럼 테스트를 하게 되면 오류가 발생하게 됩니다.

그렇다면 보통 아래처럼 테스트를 고치게 되겠죠?

그러고 나서 테스트를 돌리게 되면 또다른 오류가… 더 보기 »MockMvc에서 ExceptionHandler 등록해서 쓰는 방법

Spring Batch의 getJobParameters()의 동작법

Spring Batch 코드를 만들 때, 보통 아래와 같은 코드를 이용해서 jobParameter를 전달받습니다.

물론 배치를 실행할 때, argument를 주게 되겠죠.

그런데 말입니다… maxCount=1 숫자입니다. 그렇다면, 아래와 같은 코드도 가능하지 않을까요?

실제로 JobParameters는 getLong(), getString(), getDate(), getDouble() 메소드를 지원합니다.… 더 보기 »Spring Batch의 getJobParameters()의 동작법

FastDateFormat(SimpleDateFormat) 오동작

// Wed Apr 29 00:00:00 KST 2015 FastDateFormat.getInstance(“yyyyMMdd”).parse(“20150429”); // throws ParseException FastDateFormat.getInstance(“yyyyMMdd”).parse(“2015”); // Thu Mar 16 00:00:00 KST 81724 FastDateFormat.getInstance(“yyyyMMdd”).parse(“20150429113100”);   위와 같은 내용이고요, DateFormat과 입력값의 형태가 다를 때 결과가 다르게 나옵니다. yyyyMMdd 포맷이고, 20150429 인 경우는 정상적으로 2015/4/29로 파싱되구요(시간은… 더 보기 »FastDateFormat(SimpleDateFormat) 오동작

URL과 QueryString조합

URL을 생성할 때 QueryString을 조합하는 문제가 있었다. 적당하게 &와 ?를 버무려야하는데, 딱히 이쁜 생각이 들지 않을 때 아래처럼 apache commons나 spring component를 이용하면 된다. http://www.leveluplunch.com/java/examples/build-convert-map-to-query-string/

 

SimpleDateFormat은 Multi-thread 환경에서 쓸 수 없다.

java.lang.ArrayIndexOutOfBoundsException: 13 at sun.util.calendar.BaseCalendar.getCalendarDateFromFixedDate(BaseCalendar.java:454) ~[na:1.7.0_45] at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:2333) ~[na:1.7.0_45] at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:2248) ~[na:1.7.0_45] at java.util.Calendar.setTimeInMillis(Calendar.java:1140) ~[na:1.7.0_45] at java.util.Calendar.setTime(Calendar.java:1106) ~[na:1.7.0_45] at java.text.SimpleDateFormat.format(SimpleDateFormat.java:955) ~[na:1.7.0_45] at java.text.SimpleDateFormat.format(SimpleDateFormat.java:948) ~[na:1.7.0_45] at java.text.DateFormat.format(DateFormat.java:296) ~[na:1.7.0_45] 위처럼 에러가 나고, 확인했더니 SimpleDateFormat은 thread-safe 하지 않다고 한다. 멀티 스레드 환경에서 값의 변조에… 더 보기 »SimpleDateFormat은 Multi-thread 환경에서 쓸 수 없다.

맥에 apache, tomcat 연동하기

일하는 중이므로 간략하게 링크만 남김. 영어 : https://gist.github.com/jclausen/7121183 한국어 : http://cnbsoft.blogspot.kr/2014/02/mac-mavericks.html

CentOS에 크롬 설치

CentOS에는 파이어폭스가 기본으로 들어있다. 파폭을 사용하지 않은지 오래되서 뭔가 불편한 건 어쩔 수 없어서 크롬을 깔아보기로 한다. http://chrome.google.com 으로 들어갔더니 CentOS 버전이 없다. http://gshan85/tistory.com/56 을 봤더니 구글의 rpm폴더를 직접 접근해서 yum으로 설치하는 법이 나오는데 잘 안된다. libstdc++.so.6(glibcxx_3.4.15)가 필요하다는 에러가 나온다. 그래서… 더 보기 »CentOS에 크롬 설치

Install CentOS 6.5 with Guest Addition(VirtualBox)

잉여로움을 참지 못하고, 고민하다가 일단 CentOS를 설치해보기로 했다. 우리나라 컴퓨터 환경에서 Windows를 확 밀고 사용하기에는 용기가 차마 나지 않아서 VirtualBox에 올려서 사용하기로 하였다. CentOS ISO를 받아서 설치까지는 문제가 없었는데, 게스트 확장을 설치하려 했더니 “Building th main Guest Additional module [실패]”로 나온다.… 더 보기 »Install CentOS 6.5 with Guest Addition(VirtualBox)

IE7에서는 window.open하면 return null 이다.

IE7을 사용하는데, 자바스크립트 오류가 발생한다는 고객문의를 받았다. 다른 분이 디버깅을 해주셔서 오류 부분을 확인해봤더니, 그리 복잡한 로직은 아니다.

oWin에 focus() 함수가 없던지, 혹은 oWin이 없던지가 문제이다. 개발자는 NPE를 싫어하니까, oWin이 없을 거라 먼저 생각하고 접근했다. MSDN을 보니, IE7에서는 window.open… 더 보기 »IE7에서는 window.open하면 return null 이다.