요새 자바FX 보고 있는데, 재밌네요
개인적으로는 토이 프로젝트 만들기에 데스크톱 프로젝트만한게 없다고 생각하는데(물론 heroku 등을 이용한 웹기반 프로젝트도 생각할 수 있겠지만), 그래서 최근에는 JavaFX를 살펴보고 있습니다. 재밌네요.
자바FX 자체는 오라클 JDK 8 때부터 살펴보기 시작했는데, 나중에 보니까 오라클 JDK 빼고 나머지 오픈JDK 계통에서는 자바FX가 빠졌더라구요. openjfx 프로젝트 페이지에서 직접 빌드해서 써야된다길래 빌드에 수많은 좌절을 겪었다가 포기하고, 자바11 + JavaFX 11로 갈아탔습니다.
JDK 8 때까지만 해도 오라클JDK일때만 자바FX가 기본 포함이라 타 JDK를 쓸
때는 이래저래 짜증이 났었는데-소스를 받아서 빌드를 해야 하는데, 빌드를 하기 위한 개발환경 구축하다 보면 배보다 배꼽이 더
크다던가, 기껏 pre-build된걸 찾았는데 지금 쓰는 운영체제용으로는 빌드를 안해줬다든가 등등-, 자바FX 11 부터는 메이븐
저장소에 아예 등록이 되어 있네요; 메이븐같은 빌드툴로 간단히 의존성 지정하고 바로 프로젝트를 시작할 수 있다는 점은 마음에
들었습니다. 이제 헬로 월드 띄워주는 자바FX 프로그램은 5분만에 만들 수 있어요! (...)
다만, 자바FX가 모듈 프로젝트로 만들어져 있어서, 자바 모듈 시스템에 대해서 강제적으로 공부를 해야 하는건... 공부할게 생겨서 좋은건지, 번거로워서 나쁜건지 모르겠네요-_- 기본적으로는 자바FX 11 쓸때는 모듈 기반으로 프로그램 하도록 강제됩니다. 그냥 돌리면 모듈 내 클래스의 가시성 문제로 자바FX 클래스들에 접근이 안되네요. 반대로 module-info.java 만들어서 돌리면, 직소에 대응하지 않은 타 라이브러리를 쓸때 문제가 왕왕 터져서 개발을 더 진행할 수가 없고요.
jar로 패키징 할때도 고역인데, module-info.java 넣고 모듈 기반 프로그램으로 작성을 해도, jar를 돌릴때는 모듈이 requires 되지 않았다고 잉잉되네요. 이건 뭐, 제가 아직 모듈 시스템에 대해서 잘 몰라서 그런 것이다 싶어서 따로 공부를 해야겠다 싶네요.
여하튼 자바FX 살펴보고 있자니 심심하지 않게 할게 자꾸 늘어서 좋네요(응?) 요 근래 회사 일정이 많이 널널해져서 살펴보기 시작한 건데, 조만간 바빠질 예정이라 끝내 다 못보고 중간에 접어버릴 것 같은 느낌이...