SSISO Community

시소당

자바빈즈(Java Beans)란?

Java  Beans


1.  Beans란  무엇인가?  

Java  Beans  Specification문서에서는  Java  Bean을  다음과  같이  정의하고
있다.  

A  Java  Bean  is  a  reusable  software  component  that  can  be  manipulated
visually  in  a  builder  tool  (자바  빈은  빌더  툴에서  가시적으로  다루어질
수  있는  재사용  가능한  소프트웨어  부품이다)  

소프웨어  콤포넌트란  단어는  아마도  90년대를  가장  화려하게  장식한
단어중에  하나일  것이다.  비주얼  베이직과  같은  비주얼  개발툴에서
처음으로  사용된  이  개념은  이제  가장  대중적인  개발방법으로
자리잡았다.  윈도우즈  환경에서는  OCX(OLE  Custom  Control)라는
표준으로  자리잡은  실정이다.  

자바에서  이러한  객체지향적인  소프트웨어  부품을  사용할  수  있게끔
해주는  기능을  하는  것이  바로  Bean이다.(내가  사전을  찾아본  바로는
Bean은  (커피)열매를  말한다.  콩깍지  같이  생긴...)  

Java  Bean이  다른  소프트웨어  부품(예를  들면  OCX)에  비해  가지는
장점은  무엇일까?  

첫째,  Java  Bean은  자바로  만들어지기  때문에  자바  가상  기계가  돌아가는
어떠한  기계에서든  사용이  가능하다.(즉,  OCX와  같이  기계의존적이
아니다)  따라서  앞으로  머지않아  Java  Bean을  워드  문서나  엑셀,  또는
HTML문서에  그대로  삽입하는  것이  가능해  질  것이다.(물론  Apple이나
OS/2에서도  가능하다)  

둘째  Java  Bean은  만들기가  쉽다.  easy  to  use라는  자바의  정신을  그대로
물려받았기  때문에  프로그래밍이  손쉽다.  

세째,  보안성이  뛰어나다.  이  또한  자바본래의  특성을  그래로  물려받은
것이다.  

앞으로  머지않은  장래에(물론  지금도  사용할  수는  있다)  비주얼
베이직이나  델파이와  유사한  자바빈즈용  개발툴이  발표될  것이고  많은
컴포넌트들이  발표될  것이다.  

현재  윈도우즈  프로그래밍에서  OLE에  대한  지식이  필수적이듯이  자바
프로그래밍에서는  Beans에  대한  지식이  필수적이  될  것이다.  

2.  무엇을  알아야만  하는가?  

Java  Beans는  JDK1.1부터  본격적으로  지원된다.  따라서  Beans를
공부하려면  JDK1.1을  가지고  있어야  하며  공개  자료실이나
http://www.javasoft.com  에서  다운로드받을  수  있다.  또한  Java  Beans
Development  Kit이  필요하다.  이것  역시  같은  장소에서  구할  수  있다.  

그러나  Java  Beans  Spec  1.0에서는  이  스펙의  용도가  Component  vender
를  위한  것이라고  되어  있다.  Symantec  Visual  Cafe,  Boland  JBuilder,
IBM  Visual  Age  for  Java  등  자바  개발  툴(IDE)에  대부분  Beans를  만들
기  위한  도구가  다  들어  있다.  따라서  개발자들은  그러한  도구를  이용하여
Beans를  개발하면  된다.

JDK1.1에서는  이전의  버전에  없던  많은  요소가  더해졌다.  
Beans는  JDK1.1의  새로운  요소에  크게  의존하고  있으므로  이들  요소들에
대해서  잠깐  알아볼  필요가  있다.  

1)  새로운  이벤트  모델  

이전  버전에서  이벤트를  다루는  방식은  handleEvent메소드를  이용하거나
특정  이벤트  발생시  불리게끔  되어있는  여러가지  이벤트  관련  메소드
(예를  들면  mouseMove,  mouseEnter,..  등등)를  재정의하는  것이었다.  

물론  이러한  방식은  여전히  가능하지만  Beans를  이용하기  위해서는
새로운  이벤트  모델에  따라야  한다.  새로운  이벤트  모델이라고  해서
완전히  새로운  것은  아니고  기존의  이벤트  모델을  확장한  것이라고  보면
될  것이다.  개개의  빈은  이벤트의  소스(Source)가  되며  자신만의  고유한
이벤트를  생성하고  전달할  수  있다.  이렇게  전달된  이벤트를  받는  쪽을
listener라고  한다.  이  listener는  자바의  interface  키워드를  이용해  정의되기
때문에  이  inteface를  구현하는  어떠한  객체라도  이벤트를  전달받을  수
있다.  이벤트에  관계된  API는  java.util  패키지,  java.awt.event  패키지에서
찾아볼  수  있다.  

2)  프로퍼티(속성)의  개념  도입  

기존의  멤버  데이타외에도  프로퍼티라는  새로운  개념이  도입되었다.
물론  이것은  비베나  델파이에서와  같이  언어적으로  정의된  것은  아니다.
(이들  언어(또는  개발도구)에서는  프로퍼티로  정의하기  위해서  새로운
키워드를  사용해서  지정해주는  방식을  취하고  있다..)  따라서  기존에
멤버  데이타를  정의하는  것과  똑같은  방법이  사용된다.  프로퍼티를
다루기  위해서는  이  프로퍼티를  다루는  두가지의  메소드를  정의해야만
한다.  하나는  프로퍼티의  값을  알아낼  수  있는  것(getter)이고  하나는
프로퍼티의  값을  바꾸어서  빈의  형태나  성질이  변하게끔  하는
것(setter)이다.  가령  비베에서  다음과  같은  문장이  있다면  이것은
프로퍼티를  이용하는  것이다.  

Form1.Caption  =  Change  the  Caption  property..  

빈에서는  다음과  같은  형식을  취하게  될  것이다.(또는  취하고  있다..)  

frame1.setTitle(Change  the  Caption  property..);  

프로퍼티의  변화는  마치  이벤트를  전달하듯이  Property  Listener에  전달할
수  있다.  

프로퍼티에  관계된  API는  java.benas  패키지에서  찾아볼  수  있다.  

3)  Object  Serialization  

빈은  자신의  상태나  특성을  어떤  매체(영구적인  저장장치나  네트웍으로
연결된  다른  지점)에  저장하고  그것을  다시  사용할  수  있어야  한다.
JDK1.1에서는  이를  위해  오트젝트를  저장하고  다시  읽을  수  있는  새로운
방식을  제공한다.  

Object  Serialization에  관계된  API는  java.io에서  찾아볼  수  있다.  

4)  Reflection  

자바로  프로그래밍을  해본  사람이면  한번  쯤은  Class라는  특이한
클래스를  사용해  본  경험이  있을  것이다.  Class오브젝트는  오브젝트
자체를  다룰  수  있는  아주  특별한  능력을  가지고  있다.  JDK1.1에서는
이러한  오브젝트  자체를  다룰  수  있는  더욱  풍부한  클래스들과  메소드를
제공한다.  빈은  자신에  대한  정보를  다른  객체에  알리기  위해  이러한
새로운  클래스들과  메소드들을  이용한다.  

또한  빈을  사용하는  객체또한  빈에  대한  정보를  얻기  위해  이것들을
사용한다.  Reflection에  관계된  API는  java.lang.reflect  패키지에서  찾아볼  수
있다.  


추후  다시  정리해서  올리겠습니다.

================================================
이원영(javaservice@hanmail.net)
236-1,  Hyosung-2dong,  Kyeyang-gu,  Inchun,
407-042,  KOREA
Phone:(82-32)540-5243,  Fax:(82-32)540-5402
PCS:019-310-7324
http://math.kyungpook.ac.kr/~leewy/
================================================

  

자바빈즈란  이원영씨가  설명한  것처럼  GUI에서  재사용  가능한  자바의  컴포넌트  모델에서  출발합니다.

다만  jsp  에서  빈즈라는  개념은  이러한  자바의  자바빈즈의  개념을  이용해서  jsp에서  컴포넌트를  

이용하여  개발한다는  뜻이  녹아들어가  있다는  것입니다.  따라서  굳히  GUI  를  위한  컴포넌트  개발이  

아니더라도  재사용  가능한  컴포넌트를  만들어  사용한다는  측면에서의  '빈즈'라고  보시면  좋을  듯합니다

혹  어떤  저자의  책에서는  이러한  빈즈를  '서비스  빈즈',  '데이터  빈즈',  'GUI  빈즈'  이런식으로  

나누기도  하더군요..  아무쪼록  너무  용어에  집착하지  않고  필요에  따라서  적절한  기술들을  

잘  활용하는  것이  좋을  듯  합니다.  [  김  용희  ]

[출처]  자바빈즈(Java  Beans)란?|작성자  준형빠
http://blog.naver.com/sms0909?Redirect=Log&logNo=80002003463

1265 view

4.0 stars