JAVA에서 Gdal을 사용하기 전에 고려해야할 것.

소프트웨어 개발/JAVA|2019. 5. 20. 11:18

Java에서 Gdal을 사용하는 사람이라면, GIS 데이터를 JAVA에서 처리하기 위한 목적으로 해당 라이브러리를 고려했을것이다. 하지만, Gdal은 태생이 C/C++로 작성된 라이브러리이고, JAVA로 포팅된게 아닌 랩핑(Wrapping)된 형태의 라이브러리임을 명심해야한다.

 

이는 윈도우 환경에서 개발한 웹어플리케이션이 리눅스나 클라우드환경의 서버에서 작동이 제대로 되지 않을 수 있으며, 안드로이드 개발시에도 해당 장치의 CPU에 대응해 빌드된 Gdal 라이브러리(윈도의 dll파일의 역활을 하는 so 파일들)가 필요한 것이다.

 

만일 처리하고자 하는 GIS 데이터가 레스터가 아닌 백터데이터(Shape, KML, GeoJSON, 등) 뿐이라면 굳이 힘들게 네이티브 라이브러리때문에 고생을 하지말고 Java로 작성된 GeoTools를 사용하길 바란다.

 

Java에서 Gdal을 사용하는 방법

댓글()

전자정부프레임워크 3.6 샘플 웹 프로젝트

소프트웨어 개발/JAVA|2017. 4. 12. 10:18


전자정부프레임워크 3.6의 샘플 웹 프로젝트의 수정본입니다.

주안점은 Servlet 3.1 적용과 Eclipse Validater에 아무것도 걸리지 않는 코드를 목표로 수정하였습니다.


개인적으로 이제 iBatis는 놓아줘야할 때가 아닌가 싶습니다. Apache에서도 더이상 관리 안하고 myBatis 사용하라고 안내하고, Hibernate ORM이나 JPA ORM 쪽으로 개발하는게 좋을것 같습니다.


변경사항:

  • POM 수정: Servlet 3.1 적용, JSP 2.3.1 적용, JDK 1.8변경, Jetty-maven-plugin 추가
  • web.xml 수정: : Servlet 3.1 적용
  • ibatis제거: ibatis 샘플 자바코드, sqlmap, mapconfig, 등 제거
  • JSP 파일의 Validator 통과 못하는 구문 수정


Test36.zip



댓글()

C#에서 Thread내에 Parallel.Foreach 가 있는 경우 중단 방법

소프트웨어 개발/C#|2017. 1. 9. 12:59

GUI 환경에서 버튼을 클릭하는 등의 이벤트로 시간이 오래걸리는 작업을 구동하는 경우 쓰레드를 분리하여 개발하는 방법이 좋다는 방법은 C# 뿐만 아니라 안드로이드나 MFC등 GUI를 어느 정도 개발한 사람이라면 익숙할 것이라고 생각한다.


그렇다면 그 시간이 오래 걸리는 작업을 더욱 빠르게 하고 싶다면 병렬 처리가 가장 쉽고 빨리 적용할 수 있는 합리적인 방법이라고 생각한다.


구글링을 통하여 어찌어찌 병렬 For문을 적용하였지만 문제는 "클라이언트가 구동은 했지만 오래 걸리는 프로세스를 작업 도중에 중단하고 싶다"고 말했을때 발생하였다.


다음은 몇가지 코드를 조합하여 만든 메인 쓰레드와 분리된 다중 포문 작업 클래스와 그 작업을 중단 시키는 예를 콘솔 응용프로그램으로 구성하였다.

소스코드

메인 클래스 및 중단 클래스




시간이 오래걸리는 작업 클래스



참조


http://www.albahari.com/threading/part3.aspx

댓글()