빈 스코프
·
Study/Spring
강의 링크스프링 핵심 원리 - 기본편 강의 - 인프런빈 스코프Scope : 범위스프링이 지원하는 스코프싱글톤 : 기본 스코프, 스프링 컨테이너가 시작되고 종료될 때까지 유지되다 → 가장 넓은 범위의 스코프프로토타임 : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여, 더는 관리하지 않음 (떤저버린다) → 매우 짧은 범위의 스코프프로토타입 스코프싱글톤 빈 요청과 비교싱글톤 빈 요청클라이언트가 싱글톤 스코프의 빈을 스프링 컨테이너에 요청한다.스프링 컨테이너는 본인이 관리하는 스프링 빈을 반환한다.이후에 같은 요청이 와도 스프링 컨테이너는 같은 객체 인스턴스의 빈을 반환한다.프로토 타입 빈요청 1프로토타입 스코프의 빈을 스프링 컨테이너에 요청한다.스프링 컨테이너는 이 시점에 프로토 타입 빈을..
빈 생명주기 콜백
·
Study/Spring
강의 링크스프링 핵심 원리 - 기본편 강의 - 인프런빈 생명주기 콜백 시작빈, 객체의 초기화 및 종료 작업을 지원 예시먼저 데이터베이스와 서버를 연결시켜 놓는 커넥션 풀을 설정하는 경우네트워크를 가지고 서버를 연결하기위해 소캣을 미리 열어놓는 것들에 경우,→ 애플리케이션 시작 시점에 작업되며 이것들을 안전하게 종료하는 것까지 스프링이 관리해준다.서버가 시작될 때 바로 외부 네트워크가 연결되고 종료될때 미리 종료되는 외부 네트워크가 있다고 가정.public class NetworkClient { private String url; public NetworkClient() { System.out.println("생성자 호출= " + url); connect(); ..
의존관계 자동 주입
·
Study/Spring
강의 링크스프링 핵심 원리 - 기본편 강의 - 인프런다양한 의존관계 주입 방법생성자 주입수정자 주입(setter 주입)필드 주입일반 메서드 주입생성자 주입생성자 자동 생성 단축키 : Alt+Insert (Windows/Linux)생성자를 통해 의존관계를 주입받는 방법.생성자 호출시점에 딱 1번만 호출되는 것이 보장된다.“불변, 필수” 의존관계에 사용된다. (값 세팅을 고정할 수 있음)@Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy ..
컴포넌트 스캔
·
Study/Spring
강의 링크스프링 핵심 원리 - 기본편 강의 - 인프런컴포넌트 스캔과 의존관계 자동 주입 시작하기스프링 빈을 일일이 빈에 등록하기 귀찮음.설정 정보가 커지면 누락하는 문제도 발생함.→ 따라서 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 “컴포넌트 스캔”이라는 기능을 제공하고, 해당 등록된 bean을 자동으로 의존관계를 주입시키는 @Autowired라는 기능을 제공한다.@Compoent를 사용하게 되면 @Autowired를 사용하게 된다.@Componentpublic class MemberServiceImpl implements MemberService{ private final MemberRepository memberRepository; @Autowired // ac.getBea..
싱글톤 컨테이너
·
Study/Spring
강의 링크스프링 핵심 원리 - 기본편 강의 - 인프런 웹 어플리케이션과 싱글톤웹 어플리케이션은 보통 여러 고객이 동시에 요청을 한다.appconfig는 고객이 요청할 때마다 new로 객체를 만들면 메모리 소모가 많아지게 된다. @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContainer() { AppConfig appConfig = new AppConfig(); //1. 조회 : 호출 할 때마다 객체를 생성 MemberService memberService1 = appConfig.memberService(); MemberService memberService2 = appConfig.memberSe..
스프링 컨테이너와 빈
·
Study/Spring
강의 링크스프링 핵심 원리 - 기본편 강의 - 인프런스프링 빈 조회 - 기본AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);@Test@DisplayName("모든 빈 출력하기")void findAllBean() {String[] beanDefinitionNames = ac.getBeanDefinitionNames();for (String beanDefinitionName : beanDefinitionNames){Object bean = ac.getBean(beanDefinitionName);System.out.println("name = " + beanDefinitionNa..
스프링 핵심 원리 이해2 - 객체 지향 원리 적용
·
Study/Spring
강의 링크스프링 핵심 원리 - 기본편 강의 - 인프런새로운 할인 정책 개발새로 나온 정책은 10%로 지정해두면 고객이 10000원 주문 시 1000원을 할인해주고, 20000원 주문 시에 2000원을 할인해주는 것.@Test @DisplayName("VIP는 10% 할인이 적용되어야 한다") void vip_o(){ //given Member member = new Member(1L, "memberA", Grade.VIP); //when int discount =discountPolicy.discount(member,10000); System.out.println("discountPolicy = " + discountPolicy);..
스프링 핵심 원리 이해1 - 예제 만들기 (1)
·
Study/Spring
강의 링크스프링 핵심 원리 - 기본편 강의 - 인프런예제 만들기비즈니스 요구사항과 설계회원회원을 가입하고 조회할 수 있다.회원은 일반(Basic)과 VIP 두 가지 등급이 있다.   회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정)주문과 할인 정책회원은 상품을 주문할 수 있다.회원 등급에 따라 할인 정책을 적용할 수 있다.할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.)할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수 도 있다. (미확정) 회원 클래스 다이어그램 / 회원 객체 다이어그램회원 클래스 다이어그..
객체지향
·
Study/Spring
스프링이란?객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크DI (Dependency Injection) 컨테이너 지원AOP(Aspect Oriented Programming) 지원POPJ(Plain Old Java object) 지원핵심 기술(DI, AOP, POPJ) 및 웹 기술 , 데이터 접근 기술, 테스팅을 지원.스프링부트란?스프링을 편리하게 사용할 수 있도록 지원한다.톰캣 같은 웹서버를 내장해서 별도의 웹서버를 설치하지 않아도 된다.손쉬운 빌드 구성을 위한 starter 종속성을 제공한다.Starter 라이브러리를 제공해서 손쉽게 프로젝트에 적용할 수 있다.스프링과 3rd parth 라이브러리 자동 구성유명한 메..