스프링 빈(Bean)의 설계 철학 #57
Replies: 5 comments
-
|
객체의 생성, 의존성 연결, 생명주기 관리를 개발자가 직접 하지 않고 스프링 컨테이너에 맡기는 것입니다. 일반적으로 객체를 직접 생성하면 클래스가 특정 구현체에 강하게 의존하기 쉽습니다. 따라서 스프링은 객체를 Bean으로 등록하고, 필요한 의존성을 외부에서 주입해줍니다. == IoC & DI의 핵심 스프링 빈 설계의 핵심은 다음과 같습니다.
|
Beta Was this translation helpful? Give feedback.
-
|
스프링 빈은 스프링 컨테이너가 생명주기와 의존관계를 관리하는 애플리케이션 객체입니다. 그 설계 철학의 핵심은 제어의 역전, IoC입니다. 이 방식의 장점은 객체 간 결합도를 낮추고, 각 객체가 자신의 핵심 책임에 집중할 수 있다는 점입니다. 그래서 저는 스프링 빈의 설계 철학을 객체 생성, 조립, 생명주기 관리를 애플리케이션 코드에서 분리해서 더 느슨하게 연결되고 테스트 가능한 구조를 만드는 방식이라고 생각합니다. |
Beta Was this translation helpful? Give feedback.
-
스프링 빈의 설계 철학스프링 빈은 객체 생성, 조립, 생명주기의 통제권을 객체가 아니라 외부 컨테이너로 옮긴 결과물이고, 스프링 빈은 스프링 IoC 컨테이너가 인스턴스화, 조립, 생명주기 관리를 담담하는 객체이고,
다음은 스프링 빈 설계 철학에 대한 개념이다. IoC (Inversion of Control, 제어의 역전)객체가 자기 의존성은 직접 생성하거나 찾지 않고, DI (Dependency Injection, 의존성 주입)IoC를 구현하는 구체적인 방식으로, 객체가 협력 객체를 오직 생성자 인자, 세터로 선언하고, 싱글톤으로 무상태 설계빈이 기본적으로 싱글톤으로 만들어지는데, 싱글통 무상태로 하면 협력 객체를 매번 새로 만들 필요 없어 메모리, 생성 비용을 아끼기 위함이다. 즉, 싱글톤이 안전한 이유는 빈이 상태를 갖지 않도록 설계가 되어 있기 때문이다. |
Beta Was this translation helpful? Give feedback.
-
|
Spring Bean - 스프링 컨테이너가 관리하는 자바 객체입니다. 이는 구현 클래스가 다른 객체를 직접 생성하지 않고, 인터페이스나 추상화 객체에 의존하여, 강결합을 방지하게 만들어줍니다.
|
Beta Was this translation helpful? Give feedback.
-
|
스프링 빈으로 객체를 관리하는 방식은, 객체 생성과 객체 사이의 관계를 어플리케이션 코드가 직접 책임지지 않고 스프링 컨테이너가 관리하도록 결합도를 낮춘 방식입니다. 그래서 객체의 생성과 생명주기를 필요한 객체가 직접 담당하지 않고, 선언만 하여 컨테이너에서 관리하는 빈객체가 주입하도록 작성됩니다.
또한, 외부 컨테이너가 필요한 빈 객체를 주입해주기 때문에, 추상화의 이점인 구현체 교체가 용이합니다. 그리고 객체 생명주기의 책임을 컨테이너가 갖기에, 객체는 자신의 비즈니스 로직에만 집중할 수 잇고 객체 관리에 대한 부담이 줄어든다는 장점이 있습니다. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
스프링 빈(Bean)의 설계 철학에 대해서 설명해주세요
Beta Was this translation helpful? Give feedback.
All reactions