본문 바로가기

java

자바를 이용한 DB 프로그래밍 기초 - mysql 자바에서 DB를 이용한 프로그래밍은 JDBC라는 표준 인터페이스 덕분에, 벤더에 (거의) 상관없이 동일한 형태로 구현할 수 있다. 따라서 자바를 이용한 DB 프로그래밍은 JDBC를 어떻게 이용하느냐의 문제라고 할 수 있다. JDBC를 이용한 프로그래밍은, 아래와 같은 순서로 작성된다. 1. 벤더(mysql, PostgreSQL, ms-sql, oracle 등) 사이트에서 제공하는 JDBC 드라이버를 먼저 구해야 한다. mysql 같은 경우에는, 아래 링크와 같다. http://www.mysql.com/downloads/connector/j/ 2. 이클립스에서 해당 라이브러리를 빌드패스에 추가한다. 3. 여기서 프로그램을 작성하는데, 3-1. 드라이버를 로드한다. (mysql의 경우) Class.forNa.. 더보기
구글 웹 툴킷(GWT) 개요 웹쪽 기술에 대해서 너무 관심이 없었던 터라, 스스로 제대로 로드맵을 못 그려내고 있음을 느꼈던 하루였다. 그래서 잠깐 짬내서 찾아봤던 자료에 대해 이해한 정도만 간략히 정리해 놓는다. 일단, 구글 웹 툴킷은 요약하면, "Java로 Javascript를 작성하는 도구"이다. (여기서부터 개인적인 판단이므로, 인용시 유의바랍니다.) 2006년 정도에 처음 발표되었는데, 이 당시에 자바스크립트는 언어라고 부르기에는 너무 체계가 없이 사용되었었다. 따라서 기존의 구조화된 언어를 작성하던 프로그래머들이 사용하기에는 자바스크립트의 자유분방함이 커다란 벽처럼 느껴지던 터였다. 이런 배경에서 기존의 자바 코드처럼 프로그램을 작성하고, 이를 컴파일 과정을 통해서 Javascript로 변환하는 과정이었으리라 생각된다. .. 더보기
Open GIS engine - geotools 최근들어, 지역 자료 (시군구)를 분석하는 연구를 수행하다 보니, 결과를 지도로 표시해야하는 경우가 많아졌다. 지도 정보는 일반적으로 GIS를 이용하여 시각화하며, 주로 arcGIS를 많이 이용하는 것으로 생각된다. 하지만, 상용 툴인데다가, 사용법이 다소 복잡 (배운지 않아서)하고, 프로그램이 무거워서 반복작업이 불편하였다. 내가 필요한 건 지역에 적절한 색만 칠해주면 되는 단순한 작업이고 데이터를 변화시켜 가며 보여주는 반복적인 작업이기에, 프로그램에 연동해서 사용할 수 있는 가벼운 엔진이 필요하였다. 2004년 경에 웹 기반 GIS 엔진을 사용할 일이 있어서 찾았었던, 'Mapserver' 라는 프로그램을 지속적으로 이용해 왔었다. 하지만 웹 기반이다 보니, CGI로 제공되는 API가 다소 부담스럽.. 더보기
Java 코드 내부에서 외부 프로그램 실행시키기 - exec(), ProcessBuilder Runtime.exec()와 ProcessBuilder 클래스를 이용하여, 구현할 수 있다. 그리고 apache 프로젝트에 'apache common exec'라는 라이브러리도 있다고 한다. 경험상 외부 프로그램 실행시에는 현재 실행 위치가 잘 안 먹는 경향이 있으니, 절대 경로를 이용해서 명령을 내려주는 것이 여러모로 편하다. String binDir_ = System.getProperty("user.dir") + "/exec/node3d/"; String[] cmdArray = new String[] { binDir_ + "nodes3d.exe", System.getProperty("user.dir") + "/" + inputFile }; try { Process p = new ProcessBuild.. 더보기
Java System Property 자바에서 외부 프로그램을 실행시키는 경우, 경로가 잘 안 먹는 경우가 생긴다. 이에 절대 경로를 적어주기 위해서 현재 위치를 알아야 하는 데, 현재 위치는 다음과 같이 System Property에서 구할 수 있다. System.getProperty("user.dir") 프로퍼티 속성은 다음 링크의 테이블을 참조하면 된다. http://blog.naver.com/strong_will/60059797418 더보기
Rosa 2000 - map toolbar isn't visible. 웹 기반 GIS 엔진인 Mapserver 의 rich-client 소스 중 하나인 rosa2000. 연구실에서 이 로사를 이용하여 맵서버를 구현해 놓았는데, 어느 날, 툴 바가 사라졌다. 로사 소스를 찾아보고 해도 최근에는 업데이트가 없었고, 가장 최근 소스를 구해서 소스를 분석해 보니, applet 에서 어느 순간인가(자바 1.4 전후로 생각된다.)부터 컴포넌트에 add() 메소드를 이용하여 추가한 컴포넌트를 그리는 순서가 달라진 것으로 생각된다. 이전 버젼까지는 먼저 추가된 것이 먼저(아래에) 그려졌다면, 최근 버젼에서는 먼저 추가된 것이 나중에(위에) 그려지도록 바뀐 것으로 추정된다. 아마 구현 내부에 priority를 설정하는 게 아닐까라는 생각을 해본다. 어찌되었건, 이와 관련해서 Rosa200.. 더보기
Java에서 splash 화면 구현하기 1.5 이하에는 따로 splash를 지원하지 않아서 구현하여 이용하였으나, 1.6 부터는 옵션을 통해 손쉽게 적용할 수 있다. 본인은 이미지를 프로그램에 지정하는 방식보다는 이미지를 지정하면 splash 화면이 뜰 수 있도록 Helper 개념의 클래스를 만들다보니 매번 바꾸게 해야 하기 때문에, 예전 방식을 이용하여 구현하게끔 하는 1.5 이하에서 사용하던 방식을 이용하였다. 1.5 이하 버젼에서는 JWindow에 JLabel를 넣어서 직접 구현하는 방식이고, 1.6 이상에서는 1) 커멘드라인에 -splash:splash-image.jpg 와 같은 옵션을 주거나, 2) .jar일 경우 manifest 파일에 정의할 수 있다. 원문은 아래와 같다. http://www.zdnetasia.com/how-to-.. 더보기