Spring 16

[스프링] 스프링 핵심 원리 기본편 정리: 6. 컴포넌트 스캔

컴포넌트 스캔 컴포넌트 스캔과 의존관계 자동 주입 시작하기 현재까지 스프링 빈을 등록할 때는 자바 코드의 @Bean이나 XML의 등을 통해서 설정 정보에 직접 등록할 스프링 빈을 나열했다. 하지만, 등록해야 할 스프링 빈이 수백 개가 되면 일일이 등록하기 귀찮을 뿐만 아니라, 설정정보가 커지고, 누락하는 문제가 발생한다. 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔과 의존관계를 자동으로 주입하는 @Autowired라는 기능을 제공한다. 이에 대해 코드를 통해 살펴보도록 하자. AutoAppConfig.java package hello.core; import org.springframework.context.annotation.ComponentScan; import org.sp..

Spring 2023.09.01

[스프링] 스프링 핵심 원리 기본편 정리: 5. 싱글톤 컨테이너

싱글톤 컨테이너 웹 애플리케이션과 싱글톤 스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생한 기술이다. 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 물론, 웹이 아닌 애플리케이션 개발도 얼마든지 가능하다. 웹 애플리케이션에서는 보통 수많은 고객이 동시에 요청을 한다. 그림은 클라이언트 A, B, C 세 명이 스프링 컨테이너인 DI 컨테이너에 있는 memberService를 동시에 요청하는 모습이다. 이 경우, 요청을 할 때마다 새로운 memberService 객체가 반환되게 된다. 지금은 클라이언트가 세 명밖에 없지만, 실제 웹 애플리케이션의 경우 수많은 고객이 동시에 요청을 하기 때문에 문제가 발생하게 된다. 실제 코드를 통해 해당 상황이 일어나는 경우에 대해 살펴보자. 스프링 없..

Spring 2023.08.30

[스프링] 스프링 핵심 원리 기본편 정리: 4. 스프링 컨테이너와 스프링 빈

스프링 컨테이너와 스프링 빈 스프링 컨테이너 생성 스프링 컨테이너가 생성되는 과정을 알아보기 전에 먼저 기본적인 개념을 알고 넘어가도록 하자. 스프링 컨테이너를 생성하는 코드는 다음과 같다. // 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext ApplicationContext를 스프링 컨테이너라고 한다. ApplicationContext는 인터페이스이다. 스프링 컨테이너는 XML을 기반으로 만들 수도 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수도 있다. 이전에 AppConfig를 사용했던 방식이 애노테이션 기반의 자..

Spring 2023.08.27

[스프링] 스프링 핵심 원리 기본편 정리: 3. 스프링 핵심 원리 이해2 - 객체 지향 원리 적용

스프링 핵심 원리 이해 2 - 객체 지향 원리 적용 새로운 할인 정책 개발 새로운 할인 정책의 확장 어떤 악덕 기획자가 등장하여 기존 할인 정책인 정액 할인 정책을 정률 할인 정책으로 변경하고 싶다고 이야기하여 정률 할인 정책에 대한 개발을 시작해야 된다. 악덕 기획자 : 서비스 오픈 직전에 할인 정책을 정액 할인 정책이 아닌 정률 할인 정책으로 변경하고 싶어요. 예를 들어, 기존 정책은 VIP가 얼마를 주문하든 간에 1000원을 할인해 주었지만, 정률 할인 정책은 10%로 지정해 주면 고객이 10000원을 주문 시 1000원을 할인해 주고, 20000원 주문 시에 2000원을 할인해 주는 거예요! 순진 개발자 : (유연한 설계가 가능하도록 객체 지향 원칙을 준수했기 때문에 개발에 문제는 없을 거야) 새..

Spring 2023.08.17

[스프링] 스프링 핵심 원리 기본편 정리: 2. 스프링 핵심 원리 이해1 - 예제 만들기

스프링 핵심 원리 이해 1 - 예제 만들기 프로젝트 생성 사전 준비물 프로젝트를 생성하기 전 다음과 같은 사전 준비물이 필요하다. Java 11 설치 IDE: IntelliJ 또는 Eclipse 설치 본 강의에서는 Java 11 버전을 기반으로 강의가 진행되기 때문에 다른 버전을 설치하여 사용할 경우, 각종 오류가 발생할 가능성이 높다. 따라서 꼭 오라클의 Java 11 버전을 설치하여 사용하길 바란다. Java 11 버전 설치 및 환경변수 설정과 관련된 내용은 해당 링크를 참조하면 된다. https://mimah.tistory.com/entry/Java-JDK-11-%EB%B2%84%EC%A0%84-%EC%84%A4%EC%B9%98-%EB%B0%8F-%ED%99%98%EA%B2%BD-%EB%B3%80%..

Spring 2023.08.07

[스프링] 스프링 핵심 원리 기본편 정리: 1. 객체 지향 설계와 스프링

해당 강의는 인프런에서 '김영한' 님의 "스프링 핵심 원리 기본편" 강의를 보고 정리한 내용이다. 무료 강의인 "스프링 입문" 강의를 듣고 스프링에 대해 자세히 공부하고 싶다는 마음이 생겨 로드맵을 따라 강의를 듣고 공부 내용을 정리하고자 한다. [참고 링크] https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 ..

Spring 2023.08.04