Showing posts with label example. Show all posts
Showing posts with label example. Show all posts

Monday, June 13, 2016

[자바예제] 하드(서버)를 DB로 사용하는 mapdb(파일디비) java 오픈소스


오픈소스


요즘 회사에서 하는 프로젝트는 온통
오픈소스 뿐입니다~ 전부터 오픈소스
사용에 대해서 굉장히 좋게 생각해오던
저인지라 새로운 오픈소스를 알게
될 때마다 큰 만족감을 느끼는 중입니다~
지금 하는 빅데이터 프로젝트의 내용 중에
일반 DB 서버를 사용하지 않고 파일에
data를 저장하는 부분이 있습니다.
단순히 파일에 내용을 저장하는게 아니고
객체나, 리스트, VO 등 모든 타입의
data를 파일에 저장하고 심지어 톰캣이나
다른 DB처럼 검색/수정/추가/삭제
심지어 join도 된다고 합니다~
한 시간 전까지는 내용만 알고 아직
예제를 돌려 보지 못했는데 오늘
드디어 예제 하나 돌려 봤습니다 ㅎㅎ

mapdb



data를 저장할 파일의 경로를 잡아주고
mapdb 예제를 돌려보면 해당 파일에
data가 저장되어서 위에 예제를 한 번
더 구동하면 그 전에 저장했던 data를
가지고 올 수 있답니다~~~ㅎㅎㅎ
이 때 최초에 파일이 없으면 아무 내용이
없더라도 해당 경로에 파일이 있어야 됩니다.

물론 왜 굳이 파일DB를 사용해야 되나를
묻는 분들도 계실 겁니다~
일단 오라클 같은 일반 DB를 사용하는 경우
연결 맺고 SELECT/INSERT/DELETE/UADATE를
하는 작업보다는 파일을 생성해서 read/write
하는 속도가 더 빠르다고 합니다. 그리고
DB를 사용하기 위한 환경 설정도 없어도 되고,
mapdb에서는 DB에서 제공하는 기능도
거의 제공까지 해주고 있습니다~
예를 들면 commit이나 rollback 같은 기능~

여튼 DB에 비해 Data 관리가
너무 편해지고 간편해 질 수
있다고 생각합니다~~

그리고 아마존웹서비스도 사용을
해보려고 하는데 DB와 서버 둘 다
아마존 웹서비스에서 사용하는 방법을
찾으려고 하니 너무 귀찮은 겁니다.
그런데 파일DB 되면 굳이 DB 사용할
필요가 없어져서 아마존웹서비 DB
서비스를 공부하지 않아도 되어서
너무 좋습니다~~

[자바예제] PDF뷰어 프로그램 소스(pdf 파일 read하는 Java 프로젝트)

PDF 뷰어


자바에서 제공하는 Swing 클래스와
icepdf 라는 오픈api를 이용해서
구현한 자바 PDF뷰어 입니다.
엄청 간단한 예제이지만 필요하신
분이 계실거 같아 공유합니다~
pdReport 카페에 올려 놓았습니다.


pdf 뷰어 실행한 화면 캡처 사진입니다.
프로그램 전체적인 틀은 보시는 것처럼
자바 Swing의 JPanel을 이용했고,
그 외 pdf 파일을 read해오는 것과
adobe reader처럼 pdf 뷰어의 여러
기능은 icepdf 라이브러리에서
기본으로 구현해 줍니다.


제가 한 거라고는 자바 클래스와
오픈api를 짬뽕시켜준 일 뿐입니다.

아래는 캡처 사진은 자바 pdf viewer의
프로젝트 구성입니다. 엄청 심플하죠?ㅎ
PDFJframeViewer.java 에
main 함수가 있으니 이클립스에서
해당 프로젝트를 import 해와서
실행만 시켜 주시면 됩니다.
혹 빌드패스 관련 문제가 생기면
직접 설정을 좀 해주셔야 될 수도 있습니다.


위 프로젝트의 lib 디렉토리 밑에 보면
icepdf 라이브러리를 보실 수 있습니다.
참고로 servlet-api-2.5.jar는 
필요 없는 파일입니다 ㅋㅋㅋ
제가 다른 작업 한 건데 안 지운 거니
참고하세요 ㅎㅎ

PDFJframeViewer.java 파일을 보시면
아래와 같이 열고자 하는 pdf 파일의
경로를 담고 있는 filePath 라는
String 타입의 변수가 있습니다.


위에 경로만 본인이 가지고 있는
pdf 파일의 절대경로로 바꿔서
입력해 주시면 됩니다.

pdReport 카페에 올려 놓았으니
많이 다운 받아서 사용하세요!

Wednesday, June 8, 2016

웹에서 동작하는 HDFS 탐색기 HTML 예제 소스(AngularJS와 WebHDFS 이용한 빅데이터 프로젝트)

HDFS 탐색기


예전에도 만들었던건데 그 때는 올리지
않고 있다가 이 번에 다시 한 번 만들 일이
있어서 구현한 웹에서 돌아가는 HDFS 탐색기입니다.
하둡을 이용해서 빅데이터 프로젝트를 하고 있는데
HDFS에 저장된 데이터를 윈도우 탐색기와 같은
형태로 볼 수 있는 HDFS 탐색기입니다.
AngularJS를 이용해서 개발하였으며,
웹 브라우저에서 돌아가고 회사 서버에 저장된
HDFS 디렉톹리와 파일을 읽어와서 웹에
테이블 형태로 보여줍니다. 모든 디렉토리와
파일을 JSON 형태로 받아오는데 WebHDFS라는
AngularJS 모듈을 이용했습니다.


밑에 나오는 글자들은 파일을 선택했을 때
해당 파일의 내용을 보여주고 있는 겁니다.
테스트 용이라 디자인은 고려하지 않고,
결과만 얼른 확인할 목적으로 만든 거이니
조잡해 보이는 점은 이해 부탁드리겠습니다.

HTML 소스



테이블 소스입니다. 일반적인
테이블 소스와 크게 다르지는
않지만 요소요소에 AngularJS
를 이용했기 때문에 이게 뭐지?
싶은 게 있을 수도 있습니다.

위의 영상으로 HDFS 웹 탐색기를
소셨으면 아시겠지만 경로를 선택하고
파일과 디렉토리를 구분해서 파일
선택 시에 해당 파일의 내용을 화면에
실시간으로 보여주고 있었고, 또
다른 파일을 선택하면 그 파일의
내용으로 화면이 바로 갱신되었습니다.
탐색기의 가장 핵심적인 기능을
위와 같이 간단하게 구현할 수
있다는 점이 AngularJS의 큰
장점 중에 하나일 겁니다.

물론 위에 view에 해당하는
화면 소스 말고 Controller에
해당하는 javascript 파일도
존재합니다~ 하지만 말 그대로
MVC 중에 C에 해당하는 Controller
부분이므로 디자인이나 UI 쪽은
관여하지 않으며, 위의 영상에서
보이는 여러 기능들에 해당하는
function들이 구현되어 있습니다.

Controller



그 함수 중에 하나를 올렸습니다.
read_file이라는 이름의 function으로
이름 그대로 탐색기에서 선택된 파일의
내용을 읽어오는 함수입니다.
마찬가지로 AngularJS 문법이므로
조금은 익숙하지 않으실 수 있습니다.
하지만 알고 나면 정말 편하다는 건~

NodeJS



전에 AngularJS와 NodeJS 예제를
올린 적이 있어서 올려 봅니다.
AngularJS를 사용하다 보면 NodeJS는
필연적으로 한 번은 거쳐가야 하는
내용입니다. NodeJS 기반으로
AngularJS가 돌아가기 때문이기도
하지만 AngularJS 모듈 중에는
NodeJS에서 바로 실행하는 것들도
있기 때문에 AngularJS와 문법 자체가
다른 NodeJS도 조금은 공부를 해야됩니다.

특히 위의 링크된 포스트에도 있고,
캡처한 이미지에도 나오지만
NodeJS와 AngularJS 간 통신을
위해 HTTP 통신을 하는데 정말
방법 모르면 사람 돌아가십니다 ㅠ

위의 예제에서는 NodeJS가 서버로,
AngularJS로 구현한 화면이 클라이언트
역할을 하며, 둘 간에 HTTP 통신을
하고 있습니다. 

이 AngularJS로 인해 자바스크립트로도
서버단을 구현할 수 있다는 점은
엄청난 장점 중의 하나라고 합니다.

Friday, June 3, 2016

자바 테트리스 게임 프로그램 예제 소스

자바 테트리스


예전 노트북에서 이클립스 작업 폴더를
뒤지다가 찾은 자바 테트리스 게임입니다.
안드로이드 프로젝트 하나를 찾는게
있었는데 엉뚱하게 자바 프로젝트를
하나 찾았습니다 ㅋ 아래 영상을 보시면
아시겠지만 테트리스의 기본적인
기능만 되지만 그래도 상당히 까다로운
테트리스 게임을 깔끔하게 구현해 놓은
자바 프로젝트 소스입니다.


Swing, JFrame, JPanel, JButton 등
자바에서 제공해주는 Swing 클래스를
이용해서 구현되었고, 이클립스에서
fmain을 실행시켜 주시면 바로 위와
같이 정상적으로 실행됩니다.


소스는 카페에 올려 놓았습니다.
위에 링크된 곳으로 가시면 됩니다.


소스에 나름 주석도 달아 있어서
소스 파악하는데 있어서
도움이 되실 거라 생각합니다.


아 그리고 제가 직접 실행을 해보니
약간의 버그가 있더라구요
자주 발생하는 문제는 아니지만
어쩌다 한 번씩 블록이 부서지지
않는 경우가 있었습니다.
참고 하시고 이 소스를 사용하시게
된 경우 꼭 수정하시기 바랍니다~

제가 구현한 건 아니지만 자바 테트리스
예제 소스에 대해 질문이 있으시면 카페
QnA 게시판에 글 남겨 주시면 아는
한도 내에서 답변 드리겠습니다.

Saturday, May 28, 2016

안드로이드 메모 어플 예제소스 - 메모장, 손글씨 저장/로드/수정/공유 기능


메모 어플



전에도 블로그에 제가 가지고 있는
메모 어플 소스를 공유했었습니다.


그 당시에는 안드로이드를 배운지
얼마 안된 시점이어서 정말 기본적인
디자인과 기능 구현에만 급급한
어플이었습니다.
그런데 이번에 제 카페를 통해 정말
괜찮은 메모 어플을 하나 공유받았습니다.
일단 아래 공유 받은 메모 어플 구동
영상을 한 번 봐보시기 바랍니다^^

아 해당 메모 어플 소스는
pdReport 카페에 공유해 놓았습니다!
어플 구동 영상도 카페에 올려 놓았습니다.

디자인은 심플하고 깔끔합니다~
딱 제 스타일ㅋㅋㅋ


위에 사진을 보시면 왼쪽이 어플 실행 시
첫 화면이고, 오른쪽 사진은 어플 구동이
완료되면 뜨는 화면입니다.
일단 첫 화면을 보시면 저한테 공유해주신
분의 실명이 뜹니다^^; 수정하려고 했더니
저 첫 페이지 자체가 이미지 파일어디라구요
위에 실명을 없애기 위해서는 이미지 파일을
직접 수정해 주셔야 됩니다!


카페에서 해당 어플의 전체 소스를 받으시면
위에 경로에 memo1.png 파일이 있습니다.


이 파일이 실명이 박혀 있는 첫 화면에
해당하는 이미지 파일입니다.
해당 파일을 그림판이나 포토샵으로 수정해
주셔야 됩니다!!!


그림메모를 저장한 화면입니다.
위와 같이 저장한 순간의 날짜, 시간 정보로
파일명이 자동으로 지정됩니다.

상단에 메뉴는 세 개 있습니다.
메모추가, 그림메모(메모장)이동, 삭제
두번째 메뉴는 상황에 맞게 그림메모,메모장
이동 버튼으로 바뀝니다.


저장한 그림메모를 불러온 화면입니다.
제가 악필인 점 너그러이 이해해주세요;
불러올 땐 끊김없이 잘 로딩됩니다!!!
  

이번에는 메모장에서 입력하는 화면과
해당 메모를 저장한 모습입니다.
하단에 캡쳐 리스트라는 버튼이 있는데
이 버튼을 누르면 저장한 그림메모를
볼 수 있는 화면으로 이동이 됩니다.


메모를 하나 더 저장해 봤습니다~
그리고 위에 어플 구동 동영상을
보시면 아시겠지만 저장한 메모나
그림메모를 삭제할 수도 있습니다.
한 번에 여러개를 삭제하는 기능도
잘 구현되어 있습니다 *^^*



그리고 아주 친절하게 저장한 메모나 그림메모를
공유할 수 있는 기능도 있습니다~
동영상을 보시면 카톡으로 공유하는 모습도
볼 수 있습니다~~~

아 그리고 어플 아이콘도 아주 예쁘게
만들어져 있습니다~
아주 공들여서 만든 어플인게 느껴집니다~

pdReport 카페에서 공유 받으세요!!!!!

구글맵 안드로이드 어플 예제 소스(지도/위성/확대/축소/거리뷰 볼 수 있는 Android GoogleMap 앱)

안드로이드 구글 지도



예전에 구글지도어플을 만들어서
블로그에 공유한 적이 있습니다.
그 당시에는 구글맵 기능을 사용하기
위해서는 구글지도 API를 사용해야 됐고,
구글에 인증까지 받는 등 상당히 까다로워서
많은 분들이 질문을 주셨었는데.. 
너무 복잡한 설정들이 많아서 결국 저도 GG..

그런데 어제 구글맵을 띄워주는 어플 예제를
카페를 통해서 공유 받았는데...
인증 없이 간단한 코드 몇 줄로
구글지도 기능을 사용할 수 있었습니다!!!!!


pdReport 카페에 공유해 놓았습니다~
어플 구동 영상도 함께 올려 놓았습니다
위에 링크로 가시면 됩니다.

 

위에 사진이 구글지도 어플의 안드로이드 프로젝트인데
assets 폴더 밑에 있는 maps.html을 웹뷰를 통해
띄워주기만 하면 되더라구요 ㅠㅠㅠ
이 놈의 구글~! 정말 최고네요 ㅎㅎㅎ

아래처럼 maps.html을 실행하면 바로
구글지도기능을 사용할 수도 있습니다.
해당 어플에서는 단순히 어 구글지도
웹 페이지를 띄워주기만 하는 것이죠


그래도 기능들은 다 있습니다.
지도는 물론 위성사진, 확대/축소,
심지어 거리뷰(Street View) 기능도 됩니다.
ㅎㅎㅎ 이제 어플에 지도 기능을 넣는 것도
쉽게 할 수가 있겠네요~~~


ㅎㅎㅎ pdReport 카페 회원 분께서 공유 해주신
자료이고, 첫 페이지는 위와 같습니다.
솔직히 처음에 이 화면 봤을 때는 이게 뭐지 했지만
해당 어플의 구현 방법을 보고 우와! 이제 구글지도를
이렇게도 사용할 수 있구나~ 하면서 감동 받았습니다
기능적으로는 지도 어플이라면 있어야 될 기능만
있지만 예전에는 지도 기능을 사용한다는 거 자체부터
꽤 많은 시간을 할애했어야 됐고,
그걸 뼈저리게 경험해 봤기 때문에
감동을 받을 수 밖에 없었습니다~


일반 지도 사진입니다~
여타 다른 안드로이드 지도 어플과 크게
다를 건 없습니다. 드래그 해서 위치 이동
할 수 있고, 확대/축소 되고~


위성 사진을 선택했을 때 화면입니다.


거리뷰를 하기 위해서는 오른쪽 상단에
노란색 사람 모양의 아이콘을 위와 같이
거리를 보려는 지역의 드래그해주면 됩니다.
드래그를 하면서 위와 같이 해당 지역의
거리를 미리 볼 수도 있네요~


스트리트뷰 화면입니다.
국내 거리뷰까지도 되고...
국내 포탈 업체보다 못한게 없네요!

위에서 말씀드렸다시피 해당
구글지도 어플의 전체 소스가
필요하시면 pdReport 카페로


가시면 공유 받으실 수 있습니다.

Friday, May 13, 2016

HTML textarea 속성 - 자동 높이 조절(auto resize) 예제

<textarea>


집이 멀어서 금요일에 칼퇴를
해본들 고속도로에서 보내는
시간이 더 많기 때문에 퇴근을
안하다가 지금까지 회사에 있네요.
퇴근하기 전에 정말 간단한 예제나
하나 올리고 퇴근하렵니다~
내일 강화도로 놀러가서 이틀동안
블로그 포스팅을 할 수 없으니
짜잘한 내용으로 얼른 포스팅 하나
하고 집에 가서 내일 갈 준비해야죠~

아 참고로 이 포스팅은 전에 올린
modal에 연장된 글입니다~



위에 캡처화면은 모달을 띄워서
textarea에 특정 값을 보여주는
창인데;;;; 대괄호, 중괄호 두 개만
보이고 정작 중요할 것 같은 부분은
아예 보이질 않네요... 생각 같아서는
resize 어트리뷰트 하나 주면 되지
않을까 생각해보지만 제 생각대로
되는게 세상에 몇 가지나 있겠습니까?ㅋ


위에 띄운 modal 창에 있는
textarea 태그입니다. 보시면

onfocus="resize(this)" 

라는 부분이 보이는데 텍스트 영역
(textarea)에 포커스가 맞춰지면
자동으로 안에 내용에 맞게 textzrea의
높이를 조절해주는 resize 함수를
호출하고 있습니다.

resize 함수는 아래와 같습니다.


함수 밖에 있는 elasticModal 어쩌고
저쩌고 하는 부분은 모달창을 띄우는
부분이니 무시하시면 됩니다

강화도 여행 끝나고 와서 포스팅
남겨 놓겠습니다^^