본 포스팅은 인프런 김영한 강사님의 스프링 부트 핵심 원리 강의 섹션 9를 수강하고 배운 점을 정리했습니다. 스프링 핵심 원리 - 기본편 강의 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결 싱글톤 빈과 프로토타입 빈을 함께 사용하는 경우 프로토타입 빈을 주입 시점이 아닌 사용할 때마다 새로 생성해서 사용할 수 있도록 하는 방법 스프링 컨테이너에 요청 package hello.core.scope; import org.junit.jupiter.api.Test..
본 포스팅은 인프런 김영한 강사님의 스프링 부트 핵심 원리 강의 섹션 9를 수강하고 배운 점을 정리했습니다. 스프링 핵심 원리 - 기본편 강의 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 1. 빈 스코프: 빈이 존재할 수 있는 범위! ✅스프링이 지원하는 다양한 스코프 1️⃣싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 2️⃣프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프 3️⃣웹 관련 스코프 - re..
본 포스팅은 인프런 김영한 강사님의 스프링 부트 핵심 원리 강의 섹션 8을 수강하고 배운 점을 정리했습니다. 스프링 핵심 원리 - 기본편 강의 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 1. 스프링 빈의 초기화 시점 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요하다. 스프링에서 이러한 초기화 작업과 종료 작업을 어떻게 진행하는 걸까? 외부 네트워크에 연결하는 객체를 생성하는..
본 포스팅은 인프런 김영한 강사님의 스프링 부트 핵심 원리 강의 섹션 7을 수강하고 배운 점을 정리했습니다. 스프링 핵심 원리 - 기본편 강의 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 1. 옵션 처리 : 주입할 빈이 없는 경우 주입할 스프링 빈이 없어도 동작해야 할 때가 있다. 그런데 @Autowired 만 사용하면 required 옵션의 기본값이 true로 되어 있어서 자동 주입 대상이 없으면 오류가 발생한다. 자동 주입 대상을 옵션으로 처리하는 방법 1️⃣ @Autowired(required=false) : 자동 주입할..
본 포스팅은 인프런 김영한 강사님의 스프링 부트 핵심 원리 강의 섹션 7을 수강하고 배운 점을 정리했습니다. 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 다양한 의존관계 주입 방법 1. 생성자 주입 ✅ 생성자를 통해서 의존 관계를 주입받는 방법이다. ✅ 생성자 호출시점에 딱 1번만 호출되는 것이 보장된다. ✅ 불변, 필수 의존관계에 사용 @Component public class OrderServiceImpl implements OrderService { private final Membe..
본 포스팅은 인프런 김영한 강사님의 스프링 부트 핵심 원리 강의 섹션 6을 수강하고 배운 점을 정리했습니다. 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 컴포넌트 스캔과 의존 관계 자동 주입 이전까지 스프링 빈을 등록하던 방법: 자바 코드에 @Bean 애노테이션을 일일이 작성하거나 XML의 를 통해서 설정정보를 직접 등록했다. 수동 등록의 단점: 등록할 빈이 많을수록 설정 정보가 커지고 누락하는 문제 발생 ➡️ 설정 정보 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔 기능 제공한다. ..
본 포스팅은 인프런 김영한 강사님의 스프링 부트 핵심 원리 강의 섹션 5를 수강하고 배운 점을 정리했습니다. 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 1. 웹 애플리케이션과 싱글톤 [1] 스프링 없는 순수한 DI 컨테이너 테스트 - 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. - 아래와 같이 고객 한 명이 memberService를 요청할 때마다 새로운 memberService 객체를 생성한다고 하면 어떨까? 테스트를 만들어서 직접 확인해 보자. hello.core.Test..
본 포스팅은 인프런 김영한 강사님의 스프링 부트 핵심 원리 강의 섹션 4를 수강하고 배운 점을 정리했습니다. 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 스프링 컨테이너 생성 과정 1. 스프링 컨테이너 생성 - 스프링 컨테이너를 생성할 때는 구성 정보를 지정해주어야 한다. 아래와 같이 AppConfig.class를 구성 정보로 지정했다. new AnnotationConfigApplicationContext(AppConfig.class) 2. 스프링 빈 등록 AppConfig.class @C..
본 포스팅은 인프런 김영한 강사님의 스프링 부트 핵심 원리 강의 섹션 3을 수강하고 배운 점을 정리했습니다. 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 1. 새로운 할인 정책 개발 기존에 고정 금액 할인을 구현하는 FixDiscountPolicy 이외에 주문 금액당 할인하는 정률% 할인을 구현하는 RateDiscountPolicy를 구현해 보자. RateDiscountPolicy.java package hello.core.discount; import hello.core.member.Gr..
본 포스팅은 인프런 김영한 강사님의 스프링 부트 핵심 원리 강의 섹션 2를 수강하고 배운 점을 정리했습니다. 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 0. 프로젝트 생성 입문 강의 때와 마찬가지로 Spring Initializer를 사용해서 프로젝트를 생성했다. 위와 같이 설정하는데, 이때 강의는 Java 11 버전을 기반으로 제작되었으므로 나도 똑같이 버전을 맞췄다. 자바 11 버전은 스프링부트 2.x.x 버전에서 호완성이 좋으므로 스프링부트 버전도 2점대로 맞췄다. 또한 설정에 들어..