스프링 관련 글을 보다면 Bean 또는 빈 이라는 단어를 자주 접할 수 있다.
가끔은 한글로 빈이라고 해서 나는 또 빈(Empty) 설정, 빈(Empty) 스캐너랑 헷갈리던데.
암튼 스프링에서 Bean 또는 빈은 무엇일까?
Bean이란 Spring Ioc 컨테이너가 관리하는 자바 객체로, 컨테이너에 의해서 생명 주기가 관리되는 객체를 말한다.
IoC 컨테이너에 의해서 인스턴스화 되고 조립, 관리되는 객체라고 생각하면 될까
자바에서는 new 연산으로 객체를 생성했다면, 이제는 의존성을 주입하는 것을 외부에게 맡겼기 때문에,
즉, 제어의 역전이 일어났기 때문에 Spring IoC 컨테이너에서 객체를 관리하게끔 객체를 Bean화 시킨 것이다.
원래는 그냥 알아서 의존했는데
이 의존관계를 스프링 IoC 컨테이너에게 권한을 넘겨서 각각의 객체를 커피콩처럼 넣어뒀다가
필요한 자리에(@AutoWired) 쏙 넣어주는 것이다.
왜 커피콩이냐? 자바와 관련된 용어가 커피 관련 용어가 많다고 한다.
인도네시아 Java 섬에서 커피를 즐겨 마셨다더라. Java 프로그램 구성 요소를 커피콩에 비유해 Bean라 하더라.
그런 Bean을 담는 곳을 항아리, 즉 Jar라고 하더라.(jar 파일)
라고 이해하지 못했다. 그냥 그렇게 알아야겠다.
그냥 자바 객체가 스프링 IoC 컨테이너에서 관리하면서 Bean이라 부르는 것이다 라고 생각하자.
'프레임워크 > Spring' 카테고리의 다른 글
의존성 주입(Dependency Injection)(의존성 주입_Annotation@) (0) | 2023.04.11 |
---|---|
의존성 주입(Dependency Injection)(의존성 주입_XML) (0) | 2023.04.11 |
의존성 주입(Dependency Injection)(강하고 느슨한 결합 관계) (0) | 2023.04.11 |
제어의 역전(Inversion of Control) (0) | 2023.04.11 |
Spring FrameWork (0) | 2023.04.11 |