전체 글 (25) 썸네일형 리스트형 [스프링 핵심 원리] - 기본편 #8 섹션 9 : 빈 생명주기 콜백데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면 객체의 초기화와 종료 작업이 필요하다. 스프링 빈객체 생성 -> 의존관계 주입따라서 초기화 작업은 의존관계 주입이 모두 완료되고 난 다음에 호출한다. 스프링 빈의 이벤트 라이프사이클스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸 전 콜백 -> 스프링 종료 초기화 콜백 : 빈이 생성되고, 빈의 의존관계 주입이 완료된 후 호출소멸 전 콜백 : 빈이 소멸되기 직전에 호출 스프링은 의존관계 주입이 완료되면 초기화 콜백을 실행하고, 컨테이너가 종료되기 전에는 소멸.. [스프링 핵심 원리] - 기본편 #7 섹션 8 : 의존관계 자동 주입의존관계 주입의 4가지 방법생성자 주입수정자 주입(setter 주입)필드 주입일반 메서드 주입 생성자 주입@Componentpublic class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository.. [스프링 핵심 원리] - 기본편 #6 섹션 7 : 컴포넌트 스캔컴포넌트 스캔 - 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록한다.@Component 어노테이션이 붙은 모든 클래스를 스프링 빈으로 등록한다. @Autowired - 의존관계를 자동으로 주입한다.스프링 컨테이너는 타입을 기반으로 빈을 찾아 자동으로 주입한다. basePackages : 탐색할 패키지의 시작 위치를 지정한다. 이 패키지를 포함한 하위 패키지를 모두 탐색한다.@Configuration@ComponentScan( basePackages = "hello.core.member", excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configurat.. 국민취업지원제도 신청자격 (1유형, 2유형, 알바, 주의사항) 국민취업지원제도란?국민취업지원제도는 취업을 희망하는 사람들에게 맞춤형 취업 지원 서비스를 제공하고, 저소득 구직자에게 생계 지원을 통해 안정적으로 구직활동을 할 수 있도록 돕는 제도입니다. 고용보험 가입 여부와 상관없이 참여할 수 있습니다. 국민취업지원제도의 첫 신청은 고용24 사이트 상단의 취업지원 탭의 국민취업지원제도로 들어가시면 신청할 수 있습니다 ! 신청일 : 2/11일안내 전화 : 2/21일 (상담 일정 조율)1차 상담 : 3/7일2차 상담 : 3/14일3차 상담 및 수당 신청: 3/20일 이런 일정으로 대략 한 달 정도 걸렸습니다! 저의 경우 여행 일정이 껴 있어 1차 상담까지 조금 오래 걸렸지만, 아마 대부분의 분들은 신청부터 상담까지 한 달 정도 걸릴 것 같습니다! 유형별 조건 및 혜.. [스프링 핵심 원리] - 기본편 #5 섹션 6 : 싱글톤 컨테이너스프링은 대부분 웹 애플리케이션을 주로 만듬웹 애플리케이션의 특징 - 고객 요청이 매우 많음그런데, 스프링 없는 순수한 DI 컨테이너는 호출할 때마다 다른 객체를 생성한다. 하단의 테스트 결과를 봐면memberService1 = hello.core.member.MemberServiceImpl@62bd765memberService2 = hello.core.member.MemberServiceImpl@23a5fd2 로 서로 다른 객체가 생성되는 것을 확인할 수 있다.만약 고객 트래픽이 초당 100이 나오면 초당 100개의 객체가 생성되고 소멸되므로 메모리 낭비가 심각해진다. 이를 해결하기 위한 방안이 싱글톤이다.해당 객체가 딱 하나만 생성되고, 이를 공유하도록 설계한다. => 싱.. [스프링 핵심 원리] - 기본편 #4 섹션 5 : 스프링 컨테이너와 스프링 빈 Applicationcontext = 스프링 컨테이너 new AnnotationConfigApplicationContext(AppConfig.class);ApplicationContext 인터페이스의 구현체로, 스프링 컨테이너의 역할을 한다. 스프링 컨테이너를 구성할 때는 구성 정보를 지정해주어야 한다. 위의 코드에서는 AppConfig.class를 구성정보로 지정하였다. 스프링 빈 등록 @Bean 어노테이션이 붙은 메서드가 스프링 컨테이너에 의해 호출된다.각 메서드는 객체를 생성하고 반환하며, 이때 반환된 객체가 스프링 컨테이너에 등록됩니다.등록된 객체를 스프링 빈이라고 합니다.빈 이름빈 객체memberServiceMemberServiceImplorderSer.. [스프링 핵심 원리] - 기본편 #3 섹션 4 : 스프링 핵심 원리 이해 2현재 위의 OrderServiceImpl 클래스는 SOLID 원칙, 특히 OCP(개방-폐쇄 원칙)와 DIP(의존 역전 원칙)를 같준수한 것처럼 보이지만, 실제로는 그렇지 않다. OrderServiceImpl 에서 클래스 의존관계를 살펴보면 두 코드 모두 추상(인터페이스)만 의존하는 것이 아닌 구체(구현) 클래스에도 의존하고 있기 때문에 DIP를 위반한다. MemberRepository(추상)은 MemoryMemberRepository(구현)에 의존DiscountPolicy(추상)은 FixDiscountPolicy(구현)에 의존FixDiscountPolicy - 정액 할인 정책RateDiscountPolicy - 정률 할인 정책 또한, 할인정책을 변경할 경우 클라이.. [스프링 핵심 원리] - 기본편 #2 섹션 3 : 스프링 핵심 원리 이해 1 객체 지향 설계와 스프링스프링은 다형성을 기반으로 OCP(Open-Closed Principle)와 DIP(Dependency Inversion Principle)를 지원하여 유연하고 확장 가능한 설계를 가능하게 한다. DI(Dependency Injection): 의존성 주입- 클라이언트 코드의 변경 없이 기능을 확장할 수 있도록 지원- 부품을 교체하듯이 쉽게 개발 가능 좋은 객체 지향 설계란?- 역할과 구현을 철저히 분리하는 설계- 공연을 설계하듯이 배역(역할)을 먼저 정하고, 배우(구현)는 언제든지 유연하게 변경 가능하도록 설계- 이를 위해 다형성뿐만 아니라 OCP와 DIP 원칙을 준수해야 함스프링 컨테이너는 이러한 설계를 효과적으로 지원 인터페이스 우선 설계.. 이전 1 2 3 4 다음 목록 더보기