BEAN (4) 썸네일형 리스트형 [Spring 기본] Bean 생명주기 콜백 프레임워크를 통한 앱 개발을 하다보면 정말 많이 듣는 단어인 Life Cycle (생명주기) 이 Bean 에도 역시 있습니다. 사실 이 Bean 의 생명주기보다 Spring App 자체의 생명주기 뼈대를 우선적으로 이해하는 것이 중요하지만, 이번 포스트에서는 Bean 의 생명주기에 대해서 살펴보겠습니다. 생명주기를 제어하기 위해서는 앱이 실행되면서 필요한 연결들을 미리 해두고 (이 경우 Bean 등록), 앱이 종료 시점에 모든 연결을 해제하고 메모리를 비워낼 수 있는 작업 을 진행해야 하며, 이를 중점으로 살펴볼 예정입니다. 우선 이번 포스트에서 Bean 생명주기 이해를 도와줄 Network Client 객체부터 살펴봅시다. NetworkClient 는 특 정 서버와 연결을 하고 데이터 통신을 해주는 객.. [Spring 기본] 의존 관계 주입 전략 (DI Strategy) 이전 포스트에서 잠시 언급된 적이 있지만, Spring에서는 App 을 탐색하며 Bean을 등록하는 과정은 크게 두 가지 절차를 거치게 됩니다. (당장 지난 포스트에서 그림들. 1번, 2번, 3번 그림) 1. Bean 생성 2. 의존 관계 주입 (DI) 지금까지는 간단히 생성자를 통해서 DI를 진행하였지만 (제일 일반적인 방법입니다), 생성자를 통한 주입 말고도 DI 에는 크게 4가지 전략이 있습니다 (Autowire Strategy). (1) 생성자 주입 @Component public class MemberServiceImpl implements MemberService{ private final MemberRepository memberRepository; @Autowired public Membe.. [Spring 기본] Spring Container의 Singleton 전략 스프링은 대부분이 웹 앱을 사용됩니다. 저 또한 웹 앱을 만들기 위해서만 사용했고, 그 외의 사용은 본 적도 없네요. 웹 앱의 가장 큰 역할, 가장 중요한 역할은 바로 '서버로서의 대응'입니다. 웹 앱은 보통 다수의 고객들의 요청을 동 시에 처리하게 됩니다. 잘나가는 웹 서비스들은 한 고객만이 앱을 사용하는 동안 수백번씩의 요청이 이루어지기도 합니다. 만약 Spring이 지금까지 우리가 설계한 설정대로 Bean을 생성하고 주입해준다면 어떻게 될까요? N명의 고객들이 요청을 하여 Service 대응이 필요할 때, Service 객체가 그대로 N번 생성이 되게 됩니다. 그리고 객체를 생성하기 위 해 메모리를 할당할 것이고, 그 주소 역시 힙에 저장하는 과정을 반복하게 됩니다. 이렇게 된다면, 심각한 메모리 .. [Spring 기본] Spring의 객체 지향 IoC, DI, Bean, Container 지난 포스트에서는 Spring의 도움을 받지 않고 순수한 Java 를 통해서 객체 지향을 위한 설계를 해봤습니다. 이번 포스트에서는 [Spring 기본] 포스트들의 목적에 맞게 Spring이 이런 설계를 도와주기 위해 어떤 지원을 해주는지 살펴보겠습니다. 스프링 짱짱맨.. IoC (Inversion Of Control) IoC 란 어떤 지원되는 기능, 기술을 말하는 것이 아니라, 설계적인 측면의 용어라고 생각하시는게 편합니다. Spring 한정으로 사용되는 용어가 아니라, 메소드 혹은 객체의 호출 작업을 개발자 코드에서 결정되는 것이 아닌, 외부에서 프레임워크 따위가 내 코드를 호출해 주는 구조를 말합니다. 이렇게 제어를 하는 권한이 뒤바뀐다고 해서 IoC, 제어의 역전이라고 부릅니다. 지난 포스트에서 .. 이전 1 다음