본문 바로가기

전체 글116

Java return generic type (map to bean) 자바를 사용하다 보면 map을 bean으로 변환해야 할 일이 많다.하지만 변환하다보면 형변환(cast)를 강제적으로 해주면서 코드가 지저분해지는 걸 종종 보게 되는데이를 방지코저 제네릭 타입으로 리턴하는 예제를 해보겠다. public static T map2Bean(Map map, Class clazz) {T t= null; try {t = clazz.newInstance(); for (Entry entry : map.entrySet()) {String key = entry.getKey();Object value = entry.getValue(); if (value == null) { continue;} for (Method m : clazz.getDeclaredMethods()) {if (m.getNa.. 2015. 6. 12.
RestTemplate 사용법 RestTemplate 란? - REST 서비스를 연동하기 위해 스프링에서 제공하는 객체 - Spring 4.1.5 기준 RestTemplate 설정 아래 말고도 생성자를 통한 생성 방식도 있다. ■ XML messageConverter는 선언할 경우 선언한 메시지 컨버터만 지원한다. 또는 ■ Java RestTemplate restTemplate = new RestTemplate(); 기본적으로 RestTemplate 선언만 하면 포함되는 HttpMessageConverter 들이 있다. ByteArrayHttpMessageConverter : 바이트배열 처리 StringHttpMessageConverter : 문자열 처리 ResourceHttpMessageConverter SourceHttpMessa.. 2015. 2. 20.
Eclipse ResourceBundle Plugin (Properties Plugin) 이클립스로 웹을 작업하다보면 다국어 처리를 위해 메시지를 properties로 빼고 작업하는 경우가 생긴다.이 때 여러 언어를 한번에 편집 가능한 플러그인을 소개하고자 한다. - 홈페이지: http://eclipse-rbe.sourceforge.net/index.htm- 다운로드: http://eclipse-rbe.sourceforge.net/installation.htm- 스크린샷: http://eclipse-rbe.sourceforge.net/screenshots.htm 1. 플러그인 설치다운받은 ResourceBundleEditor_v0.8.0.zip 파일 압축을 풀어보면plugins 폴더 안에 com.essiembre.eclipse.i18n.resourcebundle_0.8.0 폴더만 존재하는데이.. 2014. 4. 30.
Java Socket & ServerSocket options Socket & ServerSocket 옵션들(1) TCP_NODELAY - true : 네이글 알고리즘 사용 안함(버퍼화 사용 안함) - false : 네이글 알고리즘 사용(버퍼화 사용)(2) SO_TIMEOUT - 지정된 시간만큼 read() 대기하고 있다가 시간이 지나면 예외발생. 연결은 끊어지지 않고 다시 read() 시도.(3) SO_LINGER - true, seconds : 지정된 시간동안 남아있는 데이터를 전송하려고 시도한다. - false : 남아있는 데이터를 버린다.(4) SO_SNDBUF - 전송 버퍼 크기. 네트워크 속도가 빠를수록 버퍼가 크면 성능이 향상됨.(5) SO_EVCBUF - 수신 버퍼 크기. 네트워크 속도가 빠를수록 버퍼가 크면 성능이 향상됨.(6) SO_KEEPALIV.. 2013. 4. 20.
Perforce 설치 소스관리 툴 중인기있는 SVN, GIT 툴이 있으나 이와 비슷한 툴인 Perforce에 대해서 알아본다. 1. Perforce 관련 프로그램 다운로드 - http://www.perforce.com 접속 후 [DOWNLOADS] 클릭 (1) Perforce 서버 다운로드- 20 사용자까지는 무료인 듯 하다.- 동의와 다운로드 클릭하면 사용자 등록 창이 나오는데 Skip Registration 하면 넘어가고 Register 해도 상관없다. 아래 그림은 윈도우용 64비트 다운로드- perforce64.exe 파일이 다운된다. (약, 10.7메가)- Perfoce 서버 설치(2) Perforce 클라이언트 다운로드 - Perforce 서버 다운로드 아래에 있다. - p4vinst64.exe 파일이 다운된다. (.. 2013. 4. 3.
Spring quartz JMX 사용방법 작업환경 1. sts-3.1.0.RELEASE 2. jdk1.6.0_39 3. spring-2.5.6 4. quartz-1.8.6 서론 Quartz는 JMX를 제공하여 사용할 수 있다. java 실행 시 VM arguments로 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 위 3개의 값을 셋팅만 해주고 quartz.propertis 파일에 org.quartz.scheduler.jmx.export = true org.quartz.scheduler.jmx.objectName = quartz:type=QuartzSched.. 2013. 2. 15.
IO vs NIO performance compare (성능 비교) Java 1.4 버전에서 이미 NIO가 나왔음에도 일반 IO 쓰는게 대부분이다. 이번에 IO와 NIO의 성능 비교를 하고자 파일 복사 테스트를 하였으니 참고 시 유용하게 쓰였으면 한다(단, 걸린 시간만 체크). 테스트조건 - Java 버전: jdk1.6.0_39 - 파일크기: 232 Mbytes (src.zip) - 버퍼사이즈: 8192 bytes (1~6번까지 하나씩 테스트) 공통 private static File srcFile = new File("src.zip"); private static File desFile = new File("des.zip"); private static int bufferSize = 8192; public static void main(String[] args) { S.. 2013. 2. 14.
jqGrid ColNames Change 컬럼명 변경 var colModel = $("#jqgrid").jqGrid('getGridParam', 'colModel'); // 컬럼명을 배열형태로 가져온다. jQuery("#jqgrid").jqGrid("setLabel", colModel[0]['name'], "abc"); // setLabel 함수로 0번째 컬럼명을 abc로 변경, for문으로 돌려도 된다. 끝. 2013. 1. 8.
Oracle에서 iBatis batch 사용 - 대용량 업데이트 시 대용량 업데이트 시 속도 향상을 위해 batch를 사용하여 insert/update를 한다. ojdbc.jar에 있는 ORACLE 전용 batch를 사용하면 더 빠른 수행결과를 보여주나 iBatis에서는 Java에 있는 batch 방법만을 사용할 수 있다. 하지만 대용량의 데이터를 한번에 executeBatch() 해준다면 서버에 메모리를 많이 사용하게 되어 메모리 부족현상이 발생할 수 있다. 그래서 5~30 (Oracle에서 제시한 배치 size라고 함)를 한 묶음으로 배치 처리해주는 것이 효율적이다. 임시테이블에 컬럼 2개를 생성하여 10만건을 insert/update를 해본 결과 배치 크기를 30으로 줬을 땐 약 5.5초가 걸렸고 배치 크기를 1000으로 줬을 땐 약 4초가 걸렸다. 참고로 배치 사.. 2013. 1. 2.
IE9 속도 향상 방법 시작 - 실행 - regedit 입력 후 엔터 아래 경로로 가서 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings DWORD로 MaxConnectionsPer1_0Server MaxConnectionsPerServer 2개를 생성하고 값은 10진수로 10~100으로 범위에서 테스트 해보면 된다. 빨라졌는가? 아래 파일을 실행시켜도 된다. 2012. 11. 25.
JavaScript 성능 향상(팁, 최적화) 1. 모든 태그는 태그 앞에 둔다.2. 스크립트 내용 양에 상관없이 태그를 적게 선언한다.3. getElementById()와 getElementByTagName()보다 querySelectorAll() 내장 메서드를 사용하라.4. 요소나 값의 배열은 루프를 돌릴 때 length 값을 지역변수로 할당한다.예) for (var i = 0; i for (var i = 0, len = items.length; i < len; i++);5. if-elseif-else문보다 switch문이 더 빠르다. 또, if-elseif-else문에서 자주 조건에 걸리는 내용을 먼저 if 걸어라. 2012. 10. 23.
Publishing failed with multiple errors Springsource Tool Suite Juno 버전(3.0.0)이 화면 버벅임이 있어Springsource Tool Suite Indigo 버전(2.9.2)으로 갈아탔다. 1. 문제Maven을 이용한 Spring Template Project를 생성해서작업하던 도중 화면이 나오는지 확인 후 jsp(vm, ftl) 파일을 수정하고 저장하면Tomcat 7.0.30에서 Publishing 0%에서 멈춰있다가Publishing failed with multiple errors라는 에러를 내뱉는다.에러 내용은 lib 폴더에 jar파일들을 삭제 못했다는 에러인데 다른 프로세스가 락을 잡고 있을 거 같다는 것이다.이것때메 무척헤맸다! 2. 해결명확한 해결법이 아닐 수 있지만 아래 방법으로 해결이 되었다.pom... 2012. 10. 1.
JavaScript Compressor, 자바스크립트 압축(한줄로) 만들어주는 사이트 jQuery 처럼 JavaScript 배포 시에 유용하게 쓰일 수 있습니다. http://javascriptcompressor.com/ 2012. 9. 25.
Spring Template Project with Eclipse Juno Eclipse Juno 4.2가 나온 기념으로 Spring 3.1.2 릴리즈 버전 기준으로 설정한다. 한국에서도 Maven이나 Ant를 이용한 프로젝트가 많이 활성화 되었으면 좋겠다. JDK 설치는 기본이므로 넘어간다. 1. Eclipse Juno 4.2 다운로드 - 첫번째에 있는 Eclipse IDE for Java EE Developers 다운로드 - 적당한 곳에 압축해제 2. Maven 3.0.4 다운로드 - 사진에 표시된 파일을 다운로드 - 적당한 곳에 압축해제 3. Eclipse 설정 - 이클립스 실행 (단, eclipse.ini 파일에 -vm 옵션을 걸어주면 더 빨리 실행됨) - 글로벌 시대에 맞춰 인코딩을 대개 UTF-8로 사용하니 개발할 때 MS949를 UTF-8로 지정하고 개발하는 습관을.. 2012. 7. 28.
spring 2.5.x 컨트롤러 설명 Controller, AbstractController 단순 처리(요청 파라미터 처리 직접 구현) AbstractCommandController 파라미터 매핑(요청 파라미터를 객체에 저장, 검증 기능 제공) SimpleFormController 입력 폼 처리(폼을 출력 및 폼에 입력한 데이터 처리) AbstractWizardFormController 다중 페이지 입력 폼 처리(여러 페이지에 걸쳐 데이터 입력시) ParameterizableViewController, UrlFilenameViewController 정적 뷰 매핑(단순 요청에 의한 뷰 전달) MultiActionController 다중 액션(연관 또는 비슷한 로직을 수행하는 기능들을 하나의 컨트롤러에 구현할때 사용) 끝. 2012. 5. 31.
Windows(윈도우) 7 64bit FusionHDTV7 USB Audio Capture(XC5000) 문제해결 윈도우7 64비트에서 Audio Capture(XC5000)이 설치가 안되서 골치때리다가 해결 방법을 드뎌 알게되었다!FusionHDTV 3.91 프로그램을 설치하면 유독 저 Audio만 설치 에러가 뜬다.Analog Capture(XC5000)Digital Capture(XC5000)위 2개는 설치가 잘 된다.소프트웨어로 드라이버 제거해서 다시 설치해봐도 안된다. 간혹 USB 오디어 장치가 설치되는데 이건 디지털 방송은 소리가 나오는데 아날로그 방송은 소리가 안나온다. 해결방법위 그림은 제대로 설치된 그림이다. 저기서 Audio Capture(XC5000)이 없다고 보면 된다.먼저 FusionHDTV 3.91 프로그램을 설치한다. 그럼 오디오 드라이버만 설치 에러가 뜬다.그럼 [장치 관리자] 화면에서 .. 2012. 5. 31.
Eclipse JBoss 웹서버 설정 Eclipse 3.7 indigo 기준으로 설명한다. Help - Eclipse Marketplace...를 선택해서 jboss로 검색한다. a 맨 처음 검색된 JBoss Tools (Indigo)를 Install 한다. JBoss 웹서버는 표시한 부분만 설치하면 된다. 나머지 중 필요한 게 있으면 설치하면 된다. 설치가 완료되고 이클립스 재시작하면 Window - Preference - Server - Runtime Environments 클릭하여 Add 버튼 누르면 위와 같이 JBoss Community랑 JBoss Enterprice Middleware 2개의 항목이 추가된다. 이제 JBoss WAS를 다운받자. http://www.jboss.org/jbossas/downloads 여기로 가면 각 .. 2012. 4. 25.
Oracle JDeveloper and ADF 1. ADF란? 이클립스 같은 툴로써 자바 개발하는데 사용된다. Application Development Framework 약자로 오라클에서 제공한다. 빠르고 간편한 자바기반 응용개발이라고 설명되어 있다. 2. Oracle JDeveloper and ADF 설치 제거는 제어판 -> 프로그램 및 기능 -> Oracle Fusion Middleware 11.1.2.1.0 제거 로그인 후 없으면 계정 생성. 아래 표시를 클릭. 라이센스 동의하고 다운(리눅스 버전도 있음). 다운이 좀 느리므로 차 한잔의 여유를 갖자. 다운받은 파일을 실행시킨다(혹시나 작동을 안한다면 파일을 마우스 오른쪽 클릭해서 관리자 권한으로 실행으로 해 보아라). 다음 클릭. 새 Middleward 홈 만들기가 선택되어져 있을 것이다(현.. 2012. 4. 24.
Eclipse diagram(이클립스 다이어그램) 1. eUML2 - 홈페이지 : http://www.soyatec.com/euml2/ - 특징 * 클래스, 패키지, 시퀀스 다이어그램을 그릴 수 있다. * 패키지, 클래스 다이어그램은 사용 가능하나 일부 기능 제한이 있다(이미지 저장은 사용 불가). * Studio edition 버전 다양한 기능을 쓸 수 있다고 한다. 가격은 590€ 라고 되어있다(Free edition : 무료버전). 2. ObjectAid - 홈페이지 : http://www.objectaid.com/ - 특징 * 클래스, 시퀀스 다이어그램을 그릴 수 있다. * 계정이 있어야 라이센스를 획득하여 사용할 수 있다. * 가입은 무료이나 라이센스는 받은 날짜로부터 한달간만 무료사용 가능하고 그 이후엔 라이센스를 구입해야 한다. * 사용개수.. 2012. 3. 18.
Eclipse + STS + Maven pom.xml 파일에서 Failure to transfer ... 60000 현상 프로젝트 마우스 오른쪽 클릭해서 Run As - Maven clean을 실행해주면 pom.xml 상단에 에러부분이 없어진다. 그래도 안된다면 C:\Users\이름\.m2\repository 하위 폴더를 다 지우고 위 사항을 다시 시도해보면 된다. 2012. 2. 22.