1\. 정적 컨텐츠파일을 그냥 그대로 웹브라우저에 전달해주는 것웹브라우저 접속 → 내장 톰켓 서버 → 스프링에게 넘김 → 1. 컨트롤러(우선순위가짐)에서 hello-static 찾음 → 없다 → 2. resource 파일안의 hello-static 찾음 → 반환2\.
컴포넌트 스캔과 자동 의존관계 설정 component관련 annotation이 있으면 객체를 생성해서 스프링 컨테이너에 등록→ 단, 실행하려는 Application이 있는 패키지의 하위에 있는 것들만 스프링 빈으로 등록@Controller, @Service, @Repo
AOP가 필요한 상황만약 모든 메소드의 호출시간을 측정하고 싶다면?이런식으로 모든 로직을 변경해줘야함하지만 시간을 측정하는 로직은 핵심 관심 사항이 아닌 공통 관심 사항임또한 유지보수도 어려움→ 만약 이것을 모두 ms가 아닌 s단위로 바꿔야한다면 굉장히 많은 수정이 필
Spring필수 : 스프링 프레임워크, 스프링 부트선택 : 스프링 데이터, 스프링 세션, 스프링 시큐리티, 스프링 Rest Docs, 스프링 배치, 스프링 클라우드스프링 프레임워크핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타웹 기술 : 스프링 MVC, 스
https://start.spring.io 사이트에서 스프링 프로젝트 생성project : Gradle-GroovySpring Boot : 가장 최신 안정화 버전 (3.x) → java 17 이상, javax 패키지 이름을 jakarta로 변경 Langua
악덕 기획자 : 서비스 오픈 직전에 할인 정책을 지금처럼 고정 금액 할인이 아니라 좀 더 합리적인 주문 금액당 할인하는 정률% 할인으로 변경하고 싶어요. 예를 들어서 기존 정책은 VIP가 10000원을 주문하든 20000원을 주문하든 항상 1000원을 할인했는데, 이번
ApplicationContext를 스프링 컨테이너라고함ApplicationContext는 인터페이스임 → 다형성 Onew AnnotationConfigApplicationContext(AppConfig.class); 이부분이 구현체스프링 컨테이너 생성new Annot
스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생대부분의 스프링 애플리케이션은 웹 애플리케이션웹 애플리케이션은 보통 여러 고객이 동시에 요청을 함고객들이 요청할때마다 객체가 계속 새로 생성됨테스트 실행시 다른 객체가 생성된 것을 확인할 수 있음스프링 없는
지금까지는 스프링 빈 등록할 때 @Bean이나 <bean'> 등을 통해서 등록했음→ 등록할게 수십, 수백개가되면 등록하기 귀찮고 설정정보도 커지고 누락 발생→ 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능 제공또 의존관계도 자동으로 주
의존관계 주입은 크게 4가지 방법이 있음생성자 주입수정자 주입(setter 주입)필드 주입일반 메서드 주입생성자 주입이름 그대로 생성자를 통해서 의존관계를 주입받는 방법지금까지 진행했던 방법컴포넌트 스캔시 → 스프링 빈 등록할때 생성자 호출 → 이때 @Autowired
데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요하다.ApplicationContext ac 대신Configurable
지금까지 우리는 스프링빈이 스프링 컨테이너의 시작과 함께 생성되어서 스프링이 종료될때까지 유지된다고 학습했다 → 이것은 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문→ 스코프 : 빈이 존재할 수 있는 범위스프링은 다음과 같은 다양한 스코프 지원싱글톤 : 기본 스
클라이언트에서 서버로 전달된 요청을 객체로 바인딩하기 위해 사용하는 방법들에 대해서 정리해보겠습니다. 먼저 클라이언트에서 서버로 요청 데이터를 전달할 때는 주로 다음 3가지 방법을 사용합니다. > GET - 쿼리 파라미터 /...?username=hello&a