본문 바로가기

Java에서 PDF 파일을 이미지로 export 하기 PDF 파일의 페이지 단위별 이미지로 export이 필요한 경우 maven 에서 org.apache.pdfbox 를 이용한다.현재는 2.0.3 버전을 사용하였다. String pdfFilePath = args[0];String savePath = args[1];File file = new File(pdfFilePath); PDDocument doc = PDDocument.load(file);PDFRenderer renderer = new PDFRenderer(doc);for(int i = 0 ; i < doc.getNumberOfPages() ; i++){BufferedImage image = renderer.renderImageWithDPI(i, 130); // 해상도 조절ImageIO.write(im.. 더보기
Gson을 이용하여 JSON Array를 List로 마샬링 GSON을 이용하여 JSONObject를 마샬링 하는 것은 직접 클래스를 지정하여 주면 되지만 List로 반환을 받아야 하는 JsonArray일 경우 TypeToken을 이용하여야 한다. Gson gson = new Gson();gson.fromJson( [JsonArray].toString() , new TypeToken(){}.getType() ); 참고로 일반적인 객체로의 변환은 Gson gson = new Gson();gson.fromJson( [JsonElement or Json.toString()] , [변환하고 싶은 객체].class); 더보기
[Android] 추천 라이브러리 1. Prelollipoptransition Android 5.0 이전의 버전에서 좀더 효과적인 activity, fragment의 transition을 쉽게 해주는 라이브러리입니다. https://github.com/takahirom/PreLollipopTransition 2. Picasso Square 사가 배포한 이미지 라이브러리입니다. 이미지뷰에 http로 이미지를 호출 할 수도 있고 caching도 지원이 됩니다. 퍼포먼스도 좋고 다른 라이브러리랑 비교해보았을 때 상당히 준수한 편입니다. 무엇보다 사용하기가 너무 간단하다는 것이 매력적입니다. http://square.github.io/picasso/ 3. GIFImageView Native App을 개발할 떄 Gif 때문에 머리아픈적이 몇번 있.. 더보기
crontab 실행하기 다음 명령으로 crontab을 제어할 수 있다. crontab -e 더보기
java 에서 활성화된 thread 카운트 보기 첫번째 방법은 jconsole을 이용하는 방법이다. jconsole은 jdk 설치 폴더 하위에 bin 폴더에 존재한다. jconsole [프로세스 아이디] 두번째 방법은 java 코드로 직접 thread 갯수를 찍을 수가 있다. java.lang.Thread.activeCount(); 더보기
Ubuntu에서 mosquitto 컴파일 및 mysql 연동 * 본 문서는 ubuntu 14.04 LTS 기준으로 작성되었습니다. * docker에서 진행됨으로 ubuntu의 docker 공식 이미지를 사용하였습니다. 1. 사전 준비 sudo apt-get install build-essential libc-ares-dev uuid-dev libssl-dev libcurl4-openssl-dev libmysqlclient-dev sudo groupadd mosquitto sudo useradd -g mosquitto mosquitto 2. mosquitto 다운로드 및 컴파일http://mosquitto.org/download/ 사이트에서 최신 source 다운로드(현재 버전은 1.4.8) cd ~ wget http://mosquitto.org/files/sour.. 더보기
Ubuntu 에서 docker 설치하기 * 본 문서는 ubuntu 14.04 LTS 기준으로 작성되었습니다. 1. 필요한 패키지 설치 sudo apt-get updatesudo apt-get install apt-transport-https ca-certificates 2. GPG 키 등록 sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D 3. sources.list에 repository 추가 cd /etc/aptsudo vi sources.list === 추가deb https://apt.dockerproject.org/repo ubuntu-trusty main 4. update 및.. 더보기
VI 명령어 모음 1. 텍스트 입력. 석제 , 명령키는 대소문자를 구분한다. i : 현재 커서에서 끼워넣기a : 현재 커서의 다음에서 끼워넣기I : 현재 커서가 놓인 line의 맨 처음줄에서 끼워넣기A : 현재 커서가 놓인 line의 맨 뒷에서 끼워넣기x : 커서의 문자열을 삭제dd : 커서가 있는 문자열 라인을 모두 삭제한다.2. 커서의 이동 h : 커서를 왼쪽으로 이동j : 커서를 아래로 이동k : 커서를 위로 이동l : 커서를 오른쪽으로 이동3. 텍스트 검색 및 치환(command mode에서) s/[찾고자 하는 문자열]/[변경을 하려는 문자열]/ : 현재 커서가 있는 라인에서 텍스트 검색 후 치환%s/[찾고자 하는 문자열]/[변경을 하려는 문자열]/ : 문서 전체에서 텍스트 검색 후 치환/[찾고자 하는 문자열] :.. 더보기
MySQL에서 Random으로 데이타 가지고 오기 ORDER BY RAND 를 사용하는 법 SELECT [컬럼명,,,] FROM [테이블명] ORDER BY RAND() 가장 간단하게 사용할 수 있다. 다만 대량의 row가 있을 경우 sorting overhead가 발생되어지므로 row의 수가 그리 많지 않을 경우에만 사용하도록 권장하고 있다.다음의 쿼리의 경우 single row로 생성된 랜덤값을 range로 처리하여 가지고 오는 예제이다. SELECT [컬럼명,,,] FROM [테이블명] AS r1 JOIN (SELECT CEIL(RAND() * (SELECT MAX([키]) FROM [테이블명])) AS [키]) AS r2 WHERE r1.[키] >= r2.[키] ORDER BY r1.[키] ASC LIMIT 1 더보기
HTTP는 어떻게 동작하는가 다시 들을 필요도 없을 정도로 많이 들었던 이야기지만 http통신은 우리의 삶에 직접적인 연관이 있는 아주 중요한 프로토콜입니다. 너무나 진부한 이야기가 된지 오래전인것 같습니다. 그로 인하여 이 자연스레 웹에 기반한 생업을 유지 하는 사람들도 많습니다. 해당 분야에 사람이 많이 보이는 만큼 직업도 상당히 다양해지고 잇는 추세이기도 합니다. 이렇게 http라는 프로토콜을 기반하여 일을 하는 많은 사람들 중에 불행히도 http 가 어떻게 동작이 되는지 모르는 사람들이 생각보다는 많이 존재하는 것 같습니다 물론 모두가 이것을 알아야 한다는 것은 아닙니다. 하지만 얕고 넓은 지식의 이점을 생각해보면 어차피 웹밥먹고 살것이라면 알아두어 나쁘지는 않은듯 할 것 같습니다. 게다가 이 HTTP라는 놈은 웹을 넘어서 .. 더보기