JAVA에는 참 이름도 많고 개념도 많고 이래~저래~복잡하다 생각이 든다.
AWT니, Swing이니, Applet이니...처음에는 짜증이 확!!! 나버렸다.
그러다가 어느 순간에 헛 Swing!!! 이런 개그나 치는 신세로 전략을 해 버렸으니 ㅋㅋ
여튼 세 단어의 공통점이랄까??
Java를 통해서 GUI를 제공하기 위한 기술들이라는 점.
그러나, 조금씩 차이점이 있으니!!! 쨔!!잔!!
우선, AWT 는 Abstract Window Toolkit으로 자바의 인터페이스 제공 기술 중 하나다.
MS의 C#이나 VB를 하면 기본적으로 인터페이스가 좍좍 나와주니까 별 문제가 안 되지만서도..
(물론 이 역시도 Win32-API등을 사용한 것이지만, 기본 플랫폼이 MS 운영체제이므로 호환이 잘 되는거죠~)
자바의 경우에는 '운영체제에 독립적' 이라는 설계원칙에 의해서, Windows의 인터페이스를 지원하기 위해서는
별도의 지원방식이 필요했고, 그것이 바로 이 AWT가 되겠다.
윈도우의 화면구성을 지원하기 위한 Java2D와 입력제어를 위한 Input Method 가 존재한다.
이 녀석의 문제라면, MS Windows의 플랫폼에 의존하게 된다는 것.
그래서 나온 녀석이 바로 Swing!!! 이다.
이 녀석은 AWT에 비해서 Hi-level에 설계가 되어있어서 확장이 가능하다.
MVC 에 기반을 두고 설계가 되었기 때문에 실시간으로 화면의 변경도 가능하다.
무엇보다도 플랫폼에 독립적이며 나름 Swing은 경량 컴포넌트다.
물론 JAVA가 느리네~무겁네~라고들 많이 하지만, Swing 기술은 실행속도가 빠르고 메모리 점유율이 낮다.
AWT와 Swing은 javax.swing.JFrame을 상속받아서 사용하게 된다.
AWT를 사용하는 방법도 있지만, Swing 보다 복잡하고 사용법도 번거롭다.
Applet 는 위의 두 녀석과 다르게 웹 브라우저를 기반으로 실행되는 애플리케이션을 지칭하는 말이다.
따라서 Applet은 html 파일에서 실행되는 것이 보통인데, 이를 위해서 object tag 나 applet tag를 사용한다.
아래는 그 예제코드이다.
<object codetype=
"application/x-java-applet" classid="java:MyApplet" archive="app.jar" width=200 height=100>
</object>
Applet은 javax.swing.JApplet을 상속받아서 작성하게 된다.
지금까지의 이야기를 한 방에 정리해 줄 챠트는 바로 이 것!!
일본어로 적힌 부분은 대략 패스 ㅋㅋ (라고 해도 쉬운 일본어이므로 해석 가능하실 듯~)
[그림의 출처 - 鈴木正人、ソフトウェアアーキテクチャ論の講義資料のCH4で]
「 Written by lovelydai 」
댓글
댓글 쓰기