본문 바로가기
Spring

static 과 Bean

by 슈슈슉민 2024. 2. 15.

 

처음 Bean을 책으로나 강의 접했을 때 정말 와닿지 않았다. 실제 개발을 하다보니 의문점이 생겼고 역으로 이해를 하게 되어 공유하고 싶어졌다. 나의 경우는 static과의 차이점을 알아내니 이해하기 쉬웠다.

 

시작하기 앞서 선지식이 필요하다. 선지식으로 1.객체지향 개발의 지향점과 2.static과 instance의 메모리 할당 시점을 알아야 한다.

1.객체간의 결합은 약하고 유연성은 높게

2.메모리 할당 시점: 
static은 메소드 영역에 할당되고, instance 힙에 할당 된다. 스택은 메서드 호출과 관련된 정보를 저장하는 데 사용되며, 메서드 호출이 끝나면 해당 프레임이 스텍에서 제거된다.

출처 https://velog.io/@hono2030/JVM%EC%9D%98-%EA%B5%AC%EC%A1%B0

 

본론으로 돌아가서 static을 사용하지 않고 Spring Bean을 사용하면 왜 객체지향 적개발이 될까??

-> 의존성 주입 관리가 잘되기 때문이다.

  Spring 프레임워크의 의존성 주입(Dependency Injection)기능을 활용하여 다른 빈들과의 의존성을 쉽게 관리할 수 있다. 빈의 DI는 객체화(Instance)와 관련이 있다. 객체화는 클래스를 인스턴스화하여 메모리에 올리는 과정을 의미하며, 이것이 DI의 시작점이 된다. DI는 외부에서 객체에 필요한 의존성을 주입하는 것을 의미한다. 이것은 객체가 스스로 의존 객체를 생성하거나 참조하지 않고, 외부에서 주입받아 사용하는 것을 의미한다.

  Spring에서는 빈이라는 개념을 사용하여 객체를 관리한다. 빈은 스프링 컨테이너에 의해 생성된고 관리되는 객체이다. 스프링에서는 빈은 DI를 통해 필요한 의존성을 주입하고 관리함으로써 객체 간의 결합도를 낮추고 유연성을 높힌다.

 

따라서 객체의 생성과 관리를 효율적로 수행할 수 있다!

 

'Spring' 카테고리의 다른 글

Spring Security와 JWT  (0) 2024.06.10
Spring Boot 와 Oauth2 구축  (2) 2024.06.10
Spring Security Architecture 이해하기  (2) 2024.06.10
[토비의 스프링] 스프링의 이해와 원리  (1) 2024.03.23