[Spring/Java] Java Bean이란, Spring Bean이란, Java bean 유래, Java Beans
여러 spring 관련 글들을 보면 Bean(빈) 이라는 용어가 등장합니다.
이게 무엇인지 알아보겠습니다.
Bean 이름의 유래
Bean이라는 용어는 한국어로 콩이라는 뜻입니다.
갑자기 왠 콩? 일까 싶습니다.
먼저 Java라는 프로그래밍 언어는 인도네시아 Java 섬 커피를 즐겨마시던 개발자에 의해 만들어지게 되었습니다.
그리고 Java관련된 용어로 커피관련된 용어를 사용했지요.
그 중에서 Java 프로그램의 구성요소를 커피콩을 비유해서 Bean이라고 칭했습니다.
또한, Bean을 항아리에 담겠다 라고 해서 최종 빌드된 패키징파일은 .jar파일로 생성되게 됩니다.
마지막으로 재미있는 점은 .class파일을 hex 문자열로 보면 파일내용의 맨 앞이 CAFEBABE (카페 베이베) 라고 되어있답니다.
[.class파일을 텍스트 에디터에서 hex 문자열로 보기를 한 스크린샷]
Java Bean(자바 빈)의 의미
Java Bean은 Java의 구성요소중 하나라고 설명을 드렸습니다.
그렇다면 정확한 Java Bean의 의미가 무엇인지 알아보겠습니다.
Java Bean은 단순히 아래와 같은 코딩 관례를 지켜 작성된 자바 클래스입니다.
- 매개변수가 없는 public 생성자가 있습니다.
- public getter / setter 메소드가 존재합니다.
- java.io.Serializable을 구현합니다.
이를 이용해서 간단한 예제를 살펴보면 아래와 같은 코드를 Java Bean Class라고 할 수 있습니다.
public class Car implements java.io.Serializable{
private String name;
public Car(){}
void setName(String name){
this.name = name;
}
String getName(){
return this.name;
}
}
Spring Bean (스프링 빈)
스프링 빈은 기본적으로 스프링이 관리하는 오브젝트입니다.
보다 구체적으로, 스프링 프레임워크 컨테이너에 의해 인스턴스화되고, 구성되고, 관리되는 객체입니다.
스프링 빈은은 스프링 설정파일 또는 어노테이션에 의해 정의되고, 스프링에 의해 인스턴스화된 다음 응용 프로그램에 주입됩니다.
스프링이 관리하는 오브젝트를 빈(Bean)이라고 부르는 이유는 초기 버전에서는 스프링이 자바빈과 함께 사용하기 위한 것이었기 때문입니다.
스프링은 기본 생성자와 게터 및 세터와 같은 자바빈 특성이 없더라도 거의 모든 객체를 관리할 수 있습니다.
스프링 빈은 자바빈이 될 수도 있긴하지만, 꼭 지켜지지 않아도 충분히 프로그램 개발이 가능합니다.
총평
Bean 의 유래에 대해서는 얼핏들은 바가 있었는데, jar의 유래와 헤더가 CAFEBABE 인것은 처음 알게 되었습니다.
재밌는 비유인거 같습니다. 자바에 대해 또 어떤 재밌는 요소들을 넣었을지 또 궁금하기도 하네요.
또한, 자바 Bean이랑 스프링Bean이랑 같은 뜻인줄 알았는데 다른 점이 있었습니다.
헷갈리지 않게 쓸 수 있도록 해야겠습니다.
[Spring/Java] Java Bean이란, Spring Bean이란, Java bean 유래, Java Beans
#spring,#java,#bean,#beans,#springbean,#javabean,#jar,#CAFEBABE,#자바,#스프링,빈,#빈즈,#자바빈,#스프링빈
댓글