본문 바로가기

Back-end/Spring19

[Spring] 컴포넌트 스캔 스프링 핵심원리 강의를 들으면서 복습겸 기록을 합니다. 컴포넌트 스캔과 의존관계 자동 주입 시작하기 지금까지 스프링빈을 등록할 때는 자바 코드의 @Bean이나 XML의 등을 통해서 설정 정보에 직접 등록할 스프링 빈을 나열했다. 이렇게 등록할 스프링 빈이 수백개가 되면 일일이 등록하고, 설정하기가 어려워진다. 그래서 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. 또 의존관계도 자동으로 주입하는 @Autowired라는 기능도 제공한다. AutoAppConfig.java package hello.core; import org.springframework.context.annotation.ComponentScan; import org.springframewor.. 2021. 10. 5.
[Spring] 싱글톤 컨테이너 스프링 핵심원리 강의를 들으면서 복습겸 기록을 합니다. 웹 애플리케이션과 싱글톤 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. 스프링이 없는 순수한 DI컨테이너 테스트 package hello.core.singleton; import hello.core.AppConfig; import hello.core.member.MemberService; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; public class SingletonTest { @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") voi.. 2021. 10. 5.
[Spring] 스프링 컨테이너와 스프링 빈 스프링 핵심원리 강의를 들으면서 복습겸 기록을 합니다. 스프링 컨테이너 생성 스프링 컨테이너가 생성되는 과정 0. 설명 //스프링 컨테이너 생성 ApplicationContext applicationContect = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext 를 스프링 컨테이너라 한다. ApplicationContext는 인터페이스다. 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. 직전의 AppConfig를 사용했던 방식이 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다. 자바 설정 클래스를 기반으로 스프링 컨테이너 (Applicati.. 2021. 10. 4.
[Spring] 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 스프링 핵심원리 강의를 들으면서 복습겸 기록을 합니다. 새로운 할인 정책 개발 정액할인 정책이 아닌 주문한 금액의 %를 할인해주는 정률 할인 정책을 추가하자! RateDiscountPolicy 코드 추가 package hello.core.discount; import hello.core.member.Grade; import hello.core.member.Member; public class RateDiscountPolicy implements DiscountPolicy{ private int discountPercent = 10; //10%할인 @Override public int discount(Member member, int price){ if(member.getGrade() == Grade.VI.. 2021. 9. 23.
[Spring] 스프링 핵심 원리 이해1 - 예제 만들기 스프링 핵심원리 강의를 들으면서 복습겸 기록을 합니다. 프로젝트 생성 https://start.spring.io 설정 이미지 비지니스 요구사항과 설계 회원 회원은 가입하고 조회할 수 있다. 회원은 일반과 VIP 두가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다.(미확정) 주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 변경 가능성이 높은 상황(미확정) 회원 도메인 설계 회원 도메인 요구사항 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확) 회원 도메인 협력 관계 회원 클래스 다이어그램.. 2021. 9. 22.
[Spring] 객체 지향 설계와 스프링 스프링 핵심원리 강의를 들으면서 복습겸 기록을 합니다. 자바 이야기 스프링 EJB 컨테이너 대체 단순함의 승리 현재 사실상 표준 기술 하이버 네이트 EJB 엔티티빈 기술을 대체 JPA(Java Persistence API) 새로운 표준 정의 EJB 엔티티빈 -> 하이버네이트 -> JPA 스프링의 역사 2002년 로드 존슨 책 출간 EJB의 문제점 지적 BeanFactory, ApplicationContext, POJO, 제어의 역전, 의존관계 주입 과 같은 스프링의 핵심 개념과 기반 코드가 들어있음 스프링이란? 스프링 프레임워크 핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트 웹 기술 : 스프링 MVC, 스프링 WebFlux 데이터 접근 기술 : 트랜잭션, JDBC, ORM지원, XML지원 기술 통.. 2021. 9. 22.