인프런 김영한 강의 정리

1. 스프링 컨텍스트란?애플리케이션 전체에서 사용되는 다양한 객체(빈)들의 생명주기를 관리하고, 이들 간의 의존성을 주입하는 등의 역할을 한다. 2. BeanFactory와 ApplicationContext✔️BeanFactory스프링 컨테이너의 최상위 인터페이스다.스프링 빈을 관리하고 조회하는 역할을 담당한다.`getBean()` 을 제공한다.BeanFactory를 직접 사용하는 경우는 거의 없다.✔️ApplicationContextBeanFactory 기능을 모두 상속받아서 제공한다.일반적으로 ApplicationContext를 스프링 컨테이너라 한다.BeanFactory보다 더 많은 부가 기능을 제공한다. 3. 다양한 형식의 설정 정보 지원자바코드, XML, Groovy등을 지원한다.✔️Annota..
1. 객체의 초기화와 종료 작업초기화와 소멸 콜백 기능을 통해 빈의 상태를 정확히 제어하고 이를 통해 자원을 효율적으로 관리해야한다. 1) 스프링 빈의 이벤트 생명주기스프링 컨테이너 생성▶️스프링 빈 생성 ▶️ 의존관계 주입 ▶️ 초기화 콜백 ▶️ 사용 ▶️ 소멸전 콜백 ▶️ 스프링 종료 2) 초기화와 소멸 콜백✔️초기화 콜백: 객체의 생성과 의존성 주입이 완료된 후, 초기화 콜백이 호출된다.이 단계에서는 객체가 생성된 상태와 주입된 의존성을 활용하여 필요한 초기화 작업을 수행한다.예를 들어, 데이터베이스 연결이나 필요한 리소스의 설정이 이루어질 수 있다. ✔️소멸전 콜백: 애플리케이션 종료 직전에 호출되는 소멸 콜백을 통해, 객체가 사용하던 리소스를 정리하고 연결을 종료하는 작업을 수행한다. 3) 객체..
* 스프링 로드맵모든 개발자를 위한 HTTP 웹 기본 지식 - 섹션8 ( 총 5시간 40분 )스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 섹션7  ( 총 15시간 22분 )스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 섹션11 ( 총 21시간 5분 )스프링 DB 1편 - 데이터 접근 핵심 원리 - 섹션6 ( 총 10시간 4분 )스프링 DB 2편 - 데이터 접근 활용 기술 - 섹션11 ( 총 14시간 )스프링 핵심 원리 - 고급편 - 섹션13( 총 16시간 44분 )실전! 스프링 부트 - 섹션10(총 15시간 45분) * JPA 스프링부트 로드맵 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 섹션 11개 (총 16시간 3분)실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 -..
동적으로 빈을 선택해야할 때, Map으로 빈을 받으면 편리하다.예제에서는 두가지 할인 정책이 있는데, Map에 key값만 넘겨주면 각 할인 정책에 맞는 할인가를 알 수 있다. 1. 예제: Map으로 2개의 빈 받아오기DiscountPolicy 인터페이스가 있다.fixDiscountPolicy와 rateDiscountPolicy는 구현 클래스다. ✅FixDiscountPolicy @Componentpublic class FixDiscountPolicy implements DiscountPolicy {    private int discountFixAmount = 1000; //1000원 할인    @Override    public int discount(Member member, int price) { ..
1. 조회하는 빈이 2개 이상일 때, 발생하는 문제@Autowired는 Type으로 조회하기 때문에, DiscountPolicy처럼 하위 타입을 2개 이상 가지고 있는 경우에하위 타입 클래스에 @Component로 의존관계 자동주입을 실행하면 빈 충돌 오류가 발생한다. 2. 빈 충돌 해결방법@Autowired 필드 명 매칭@Qualifier 매칭@Primary 사용1) @Autowired 필드명 매칭@Autowired는 Type 매칭을 먼저 시도한다.이 때, 빈이 여러개 있으면 다음으로 필드명, 파라미터 명으로 빈 이름을 매칭한다. ✅기존 코드@Autowiredpublic OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discoun..
의존성 주입에 왜 롬복을 알려줄까?왜냐하면, 의존성 주입 4가지 방법 중 생성자 주입방법을 가장 권장하기때문이다.생성자 주입은 생성자를 매번 만들어줘야하는데, 이 귀찮은 작업을 롬복이 도와준다. 1. 롬복이란?롬복(Lombok)은 Java 언어를 위한 라이브러리로 특정한 상황에서 반복적으로 작성되는 코드 조각을 줄여준다.개발자의 생산성을 향상시키는 데 도움이 된다.실무에서 아주 많이 쓰이는 라이브러리! 2. 롬복 라이브러리 설정하는 법 (build.gradle) ✔️build.gradle에 Lombok 라이브러리 코드를 추가하고 재빌드한다.//lombok 설정 추가 시작 configurations { compileOnly { extendsFrom annotationProc..
주입할 스프링 빈이 없어도 동작해야 할 때가 있다.그래서 오늘 포스팅 주제는 '의존성 주입 옵션 처리'이다. 1. 자동 주입 대상을 옵션으로 처리하는 방법 3가지required = false@NullableOptional public class AutoWiredTest { @Test void AutoWiredOption(){ AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(TestBean.class); } static class TestBean { //빈으로 등록되지 않은 Member를 주입하는 테스트 @Autowired(required = false)..
1. 의존성 주입이란? 의존성 주입(Dependency Injection, DI)은 객체가 자신의 의존성을 외부로부터 주입받는 디자인 패턴으로, 객체의 생성과 의존성 관리를 스프링 컨테이너가 담당한다. 이 방식은 객체가 자신이 필요로 하는 의존성을 직접 생성하거나 조회하지 않도록 함으로써 코드의 결합도를 낮추고, 유연성과 재사용성을 향상시킨다. 2. 의존관계 주입 방법 4가지생성자 주입수정자 주입(setter 주입)필드 주입일반 메서드 주입실무에서는 주로 생성자 주입과 수정자 주입을 쓰고 필드 주입과 일반 메서드 주입은 거의 쓰지 않는다.그 이유들을 정리하는게 이번 포스팅의 목표다. 3. 의존성 주입 과정스프링에서 스프링 빈을 등록하고 의존성을 주입하는 과정은 일반적으로 다음 단계로 이뤄진다. 1️⃣빈 ..
백엔드 개발자 - 젤리곰
'인프런 김영한 강의 정리' 카테고리의 글 목록 (7 Page)