슬기로운 개발생활

[Java] JavaFX란? / AWT란? / Swing이란?

by coco3o
반응형

JavaFX ?

JavaFX는 크로스 플랫폼에서 실행하는 리치 클라이언트 애플리케이션(Rich Client Application)을 개발하기 위한 그래픽과 미디어 패키지를 말한다.

 

JavaFX는 자바 7 부터 JDK에 포함되어 있기 때문에 별도의 SDK 설치 없어도 바로 사용할 수 있다.

 

현재 JavaFX는 자바 표준 UI 라이브러리였던 Swing보다 가벼워지고 더 강력해졌기 때문에 Swing을 대체하는 새로운 라이브러리로 자리메김하고 있다.

 

JavaFX는 데스크톱뿐만 아니라 임베디드 장비에서 실행하는 UI 애플리케이션을 개발할 수 있도록 가볍고 풍부한 UI를 제공하는 것을 목표로 하고 있다.

 

JavaFx 애플리케이션에서 UI 생성, 이벤트 처리, 멀티미디어 재생, 웹 뷰 등과 같은 기능은 JavaFX API로 개발하고

그 외의 기능은 자바 표준 API를 활용하여 개발할 수 있다.

 

멀티 스레딩과 서버와의 통신 기능은자바 표준 API를 사용하면서 JavaFX에서 제공하는 풍부한 UI 기능을 활용할 수 있다는 점이 큰 장점이다.

 

JavaFx는 화면 레이아웃과 스타일, 애플리케이션 로직을 분리할 수 있기 때문에 디자이너와 개발자들이 협력해서 JavaFX 애플리케이션을 개발할 수 있는 구조를 가지고 있다.

 

레이아웃과 애플리케이션 로직을 분리하고 싶다면 레이아웃은 FXML 파일로 작성하고 애플리케이션은 자바 코드로 작성하면 된다.

 

다음은 JavaFX 애플리케이션을 구성하는 파일 단위 요소를 보여준다.


AWT ?

자바 언어가 처음 나왔을 땐 인터넷이 활성화되지 않았기 때문에 대부분의 클라이언트 애플리케이션은 운영체제가 제공하는 네이티브(native) UI 컴포넌트를 이용해서 개발되었다.

 

그래서 Java 1.0에 포함된 AWT(Abstract Window Toolkit)는 운영체제가 제공하는 네이티브 UI 컴포넌트를 이용하는 자바 라이브러리였다.

ㅡ> 자바 애플리케이션이 실행되는 운영체제에 따라 UI 모양이 서로 달랐고 종류도 제한적이였다.


Swing ?

AWT의 다음 세대로 Swing이 출시되었다.

 

Swing의 중심 아이디어는 운영체제가 제공하는 네이티브 UI 컴포넌트를 사용하지 말자는 것이다.

 

즉 모든 운영체제상에서 동일한 UI를 갖도록 Swing 자신만의 UI을 갖도록 하자는 것인데 

 

시간이 흘러 네이티브 UI가 애니메이션과 시각적인 효과를 내면서 사용자는 Swing의 독자적 UI보다는 운영체제의 네이티브 UI를 더 선호하게 되었다.

 

Swing은 네이티브 UI로 보여지도록 자신의 UI를 재정비 했지만, 실행 성능이 느려지고, 메모리를 더 많이 사용함으로써 사용자들이 좋아하지 않았고, 이러한 이유로 Swing은 네이티브 UI에 점점 밀려나게 되었다.


 

Reference : 이것이 자바다 17장 JavaFX

 

반응형

블로그의 정보

슬기로운 개발생활

coco3o

활동하기