일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바의 정석 기초편 ch13
- 자바의 정석 기초편 ch14
- jpa - 객체지향 쿼리 언어
- jpa 활용2 - api 개발 고급
- 2024 정보처리기사 시나공 필기
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch2
- 자바의 정석 기초편 ch3
- 자바의 정석 기초편 ch9
- 2024 정보처리기사 수제비 실기
- 스프링 고급 - 스프링 aop
- 스프링 mvc2 - 검증
- 스프링 mvc1 - 서블릿
- 자바의 정석 기초편 ch4
- 스프링 mvc2 - 로그인 처리
- 게시글 목록 api
- 자바의 정석 기초편 ch5
- 자바의 정석 기초편 ch12
- @Aspect
- 타임리프 - 기본기능
- 자바의 정석 기초편 ch1
- 스프링 db1 - 스프링과 문제 해결
- 스프링 db2 - 데이터 접근 기술
- 자바의 정석 기초편 ch6
- 자바의 정석 기초편 ch8
- 코드로 시작하는 자바 첫걸음
- 스프링 입문(무료)
- 스프링 mvc2 - 타임리프
- 자바의 정석 기초편 ch11
- 자바의 정석 기초편 ch7
- Today
- Total
목록인프런 - 스프링 완전정복 코스 로드맵/스프링 핵심원리 - 기본편 (11)
나구리의 개발공부기록
출처 : 인프런 - 스프링 핵심원리 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://inf.run/kCYMv1. 웹 스코프(1) 웹 스코프의 특징웹 환경에서만 동작하며 스프링이 해당 스코프의 종료 시점까지 관리하므로 종료 메서드가 호출됨(2) 웹 스코프의 종류request: HTTP요청 하나가 들어오고 나갈 때 까지 유지되며 각각의 HTTP요청 마다 별도의 빈 인스턴스가 생성되고 관리됨session: HTTP Session과 동일한 생명주기를 가짐application: 서블릿 컨텍스트(ServletContext)와 동일한 생명주기를 가짐websocket: 웹 소켓과 동일한 생명주기를 가짐세션, 서블릿 컨텍스트, 웹소켓 같은 용어에 대한 지식은 ..
출처 : 인프런 - 스프링 핵심원리 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://inf.run/kCYMv1. 빈스코프란?1) 스프링이 지원하는 다양한 스코프(1) 스코프스코프는 번역 그대로 빈이 존재할 수 있는 범위를 뜻함(2) 싱글톤기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프지금까지 스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어 스프링 컨테이너가 종료될 때까지 유지된다고 학습한 이유가 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문임(3) 프로토타입스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 그 이후에는 관리하지 않는 매우 짧은 범위의 스코프(4) 웹 관련 스코프req..
출처 : 인프런 - 스프링 핵심원리 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://inf.run/kCYMv1. 빈 생명주기 콜백 - 시작1) 빈 생명주기 콜백스프링 빈이 생성되거나 종료 직전에 빈의 메서드를 호출하는 기능(객체의 초기화와 종료 작업)데이터 베이스 커넥션 풀이나 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면 객체의 초기화 종료 작업이 필요함(1) NetworkClienttest 하위에 lifecycle이라는 패키지를 생성하여 작성간단하게 외부 네트워크에 미리 연결하는 객체를 하나 생성한다고 가정하여 테스트 코드를 작성실제로 네트워크에 연결하는..
출처 : 인프런 - 스프링 핵심원리 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://inf.run/kCYMv1. 조회 빈이 2개 이상 - 문제1) 문제 발생@Autowired는 타입(Type)으로 조회하기 때문에 ac.getBean(DiscountPolicy.class)처럼 동작함(실제로는 더 많은 기능을 제공)스프링 빈 조회에서 학습했듯이 타입으로 조회하면 선택된 빈이 2개 이상일 때 에러가 발생함아래의 예시의 코드처럼 FixDiscountPolicy에도 @Component를 적용하여 의존관계 자동 주입을 실행하면 하나의 빈을 기대했는데 fixDiscountPolicy, rateDiscountPolicy 2개가 발견되었다는 메시지와 함께 NoU..
출처 : 인프런 - 스프링 핵심원리 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://inf.run/kCYMv1. 다양한 의존관계 주입방법1) 의존관계 주입 방법생성자 주입수정자 주입(setter 주입)필드 주입일반 메서드 주입(1) 생성자 주입생성자를 통해서 의존 관계를 주입하는 방법(지금까지 계속 진행 해왔던 방법)생성자 호출 시점에 딱 1번만 호출 되는 것이 보장되며 불변, 필수 의존 관계에 사용함생성자가 딱 1개만 있으면 @Autowired를 생략해도 스프링 빈에 자동 주입되며 생략 하는 방식을 주로 사용함@Componentpublic class OrderServiceImpl implements OrderService { private..
출처 : 인프런 - 스프링 핵심원리 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://inf.run/kCYMv1. 컴포넌트스캔과 의존관계 자동 주입 시작1) 의존관계 자동 주입 시작자바코드에 @Bean이나 XML의 등을 통해서 설정 정보에 스프링 빈을 등록 할 경우 등록해야할 빈이 수십, 수백개가 되면 일일이 등록하기가 번거롭고 누락 가능성이 높아짐그래서 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔 이라는 기능을 제공하며 의존관계도 자동으로 주입하는 @Autowired 기능도 제공함(1) AutoAppConfig생성기존의 AppConfig와 다르게 @Bean이 붙은 메서드가 하나도 없음컴포넌트 스캔을 사용하려면 @C..
출처 : 인프런 - 스프링 핵심원리 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://inf.run/kCYMv1. 웹애플리케이션과 싱글톤1) 순수 DI 컨테이너와 문제점(1) 웹 애플리케이션스프링은 기업용 온라인 서비스 기술을 지원하기 위해 탄생하였음대부분의 스프링 애플리케이션은 웹 애플리케이션(웹이 아닌 애플리케이션도 개발할 수 있음)웹 애플리케이션은 보통 여러 고객이 동시에 요청함(2) 스프링 없는 순수한 DI 컨테이너 테스트test하위 경로에 singleton 패키지를 생성 후 테스트 코드 작성AppConfig()객체를 생성하여 memberService()를 호출해보면 각각의 참조값이 다름AppConfig클래스 내부에서 메서드를 호출할 때마다..
출처 : 인프런 - 스프링 핵심원리 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://inf.run/kCYMv1. 스프링 컨테이너 생성1) 스프링 컨테이너 생성 코드ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);ApplicationContext를 스프링 컨테이너라고하며 인터페이스임스프링컨테이너는 XML기반과 애노테이션 기반의 자바 설정 클래스(기존의 AppConfig 클래스)로 만들 수 있음 new AnnotationConfigApplicationContext(AppConfig.class)..
출처 : 인프런 - 스프링 핵심원리 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://inf.run/kCYMv1.새로운 할인 정책 개발1) 정액 할인 -> 정률 할인으로 변경(1) RateDiscountPolicy 추가10% 정률할인 정책 적용package hello.core.discount;public class RateDiscountPolicy implements DiscountPolicy { private int discountPercent = 10; @Override public int discount(Member member, int price) { if (member.getGrade() == Grade.VI..
출처 : 인프런 - 스프링 핵심원리 - 기본편(유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용 https://inf.run/kCYMv** 참고이번 파트는 스프링의 도움없이 순수하게 Java로만 진행하고 다음 파트에서 스프링을 활용해서 문제점을 해결프로젝트 생성만 스프링부트로 생성1. 프로젝트 생성1) spring initializr 활용https://start.spring.io/ 접속 후 프로젝트를 생성(1) Project 생성 정보IDE - IntelliJProject : Gradle - Groovy ProjectSpring Boot: 3.x.x -> 정식 버전 중 가장 최신 버전Language: JavaPackaging: JarJava: 21 or 17Project ..