<div>그동안 자바는 서버 어플리케이션 개발에만 사용하다가 처음으로 사용자에게 배포할 GUI 프로그램을 자바로 개발하는 중입니다.</div> <div><span style="font-size:9pt;line-height:1.5;">C++로 Qt를 써서 개발했었던 프로그램을 Java Swing 기반 프로그램으로 재작성 하고 있어요.</span></div> <div>예전에는 Swing은 도저히 못써먹을만한 물건이라고 생각했었는데 JDK1.8에서 람다식을 추가로 지원할 뿐인데 개발하기 정말 편해졌네요.</div> <div>끔찍한 익명클래스들에서 벗어날 수 있으니..</div> <div><br></div> <div>안드로이드 App과 USB로 통신하는 프로그램이라 libusb-win32를 필터드라이버로 올려서 사용했는데 역시 유명한 C 프로젝트는 Java Wrapper가 존재합니다. <a target="_blank" href="http://libusbjava.sourceforge.net/wp/" target="_blank">http://libusbjava.sourceforge.net/wp/</a></div> <div><br></div> <div>메시지 교환하는것도 예전에는 직접 스트림에 데이터를 읽고 쓰기를 했었는데 JSON으로 직렬화해서 바로 주고받으니 정말 편합니다. JSON 라이브러리는 구글에서 만든 Gson을 쓰고있어요. <a target="_blank" href="https://code.google.com/p/google-gson/" target="_blank">https://code.google.com/p/google-gson/</a></div> <div><br></div> <div>개발환경(IDE)는 넷빈즈를 쓰고있는데 전 이클립스보다 넷빈즈가 훨씬 마음에 드네요. 특히 프로젝트 디렉터리가 깔끔하고 쓸데없는 파일이 생기지 않는다는 점에서요. 빌드 스크립트도 Ant용으로 자동 생성되고. 이클립스의 워크스페이스 구조는 쓸데없이 복잡해서...</div> <div><br></div> <div>UI는 Qt나 WPF, JavaFX처럼 XML로 작성되는건 아니고 여전히 코드로 되어있지만 NetBeans의 Swing UI 편집기는 정말 좋습니다. 그동안 써 왔던 Qt의 Designer랑 비교하면 80%정도 만족해요. 이클립스 플러그인인 VE는 솔직히 많이 실망했었거든요. 물론 MFC가 가장 최악이었지만.</div> <div><br></div> <div>윈도 환경에서의 실행 파일을 제공하기 위해서 Winrun4j를 사용했습니다. 이클립스가 eclipse.exe로 실행되는것처럼 자체 실행파일을 만들 수 있게 해 주는 프로그램입니다. JRE의 경로를 지정할 수 있게 되어있어서 사용자 PC에서는 JRE를 따로 설치하지 않고 제 프로그램의 배포파일에 JRE를 내장시켜서 압축만 풀면 실행할 수 있도록 했습니다. <a target="_blank" href="http://winrun4j.sourceforge.net/" target="_blank">http://winrun4j.sourceforge.net/</a></div> <div><br></div> <div>자바와 C++을 비교했을 때 가장 큰 장점은 생산성이죠.</div> <div>처음 C++로 개발했을 때는 USB 드라이버등의 기술을 찾고 습득하는걸 제외하고 순수 UI 프로그램 개발만 몇주 걸렸었는데</div> <div>이번에 자바로 진행하면서 3~4일 안에 끝낼 수 있을거 같아요.</div> <div>프로그램 구조 설계같은걸 C++ 개발때 해놓은걸 감안하더라도 훨씬 빠른 속도네요.</div> <div><br></div> <div><br></div> <div>덧. 프로그래머 게시판에서 질문하고 답변 해 주는것도 좋지만,</div> <div>서로서로 자신이 겪었던 경험 공유가 많이 되었으면 합니다.</div> <div>그래서 저부터 이 글을 올린거구요.</div> <div>다른 분들도 많이 동참해 주시면 좋을것 같아요.</div>