728x90
반응형
728x90
반응형
Spring in Action (5판) 스프링 5의 강력한 기능과 생산성을 활용한 웹 애플리케이션 개발 Walls, Craig 지음 제어펍 출판사 2020.05.14 스프링 인 액션 개인 스터디 내용을 정리하자. AOP Aspect Oriented Programming 관점 지향 프로그래밍 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어 모듈화 하는 것이다. OOP를 보완하는 수단으로, 흩어진 Aspect를 모듈화하여 비즈니스 로직을 헤치지 않고 재사용하는 기법이다. 위와 같이 흩어진 관심사를 Aspect로 모듈화하고 핵심적인 비즈니스 로직에서 분리하여 재사용하는 것이 AOP의 목적이다. Aspect 애플리케이션 내 흩어져 있는 코드/기능, 비즈니스 로직은 아니다. 여러 객체에 공통적으로 ..
스프링이란? 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다. Config 최근에는 XML 파일 대신 자바 기반의 Configuration을 사용하는 추세이다. @Configuration : 각 빈이 스프링 애플리케이션 컨텍스트에 제공하는 구성 클래스라는 것을 스프링에게 알려주는 역할 @Bean : 각 메서드에서 반환되는 객체가 애플리케이션 컨텍스트의 빈으로 추가된다. 각 Bean의 ID = 해당 Bean을 반환하는 메서드의 이름 Bean 애플리케이션의 핵심을 이루는 객체이며, Spring IoC Container에 의해 인스턴스화, 관리, 생성된다. Spring Bean Life Cycle Bean Scope singleton 기본적으로 모든 Bean은 Singleton Spring IoC Co..
스프링이 없는 순수한 DI 컨테이너 @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContainter() { AppConfig appConfig = new AppConfig(); // 호출할 때마다 객체를 생성 MemberService memberService1 = appConfig.memberService(); MemberService memberService2 = appConfig.memberService(); // 참조값이 다르다. JVM 메모리에 새로운 객체가 계속 생성되어 저장된다. assertThat(memberService1).isNotSameAs(memberService2); } 호출이 올 때마다 객체를 새로 생성하고, 이후 소멸하기에 메모리 낭비..