대부분의 스프링 애플리케이션은 웹!!웹 애플리케이션은 보통 여러 고객이 동시에 요청함 그런데 스프링 없이 순수한 DI 컨테이너로 객체 참조값을 비교해보면 두 참조값이 다른 것을 알 수 있음그런데 만약 고객이 요청할 때 마다 항상 새로운 객체를 생성한다면 메모리 낭비가 심할 것이다!!!! 이를 해결하기 위해 싱글톤 패턴을 사용한다객체를 하나 만든 뒤 해당 객체를 공유하는 것이다 싱글톤 패턴 - 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴 싱글톤 패턴을 사용하여 싱글톤 객체를 생성하고 테스트 실행 시 둘 모두 같은 객체를 참조하는 것을 볼 수 있다..신기하닷!!!!! 생성자를 private 처리해서 숨기다니 근데 스프링 컨테이너는 모든 Bean에 이 싱글톤 패턴을 적용해준다!!..
공부/Java
의존관계 주입이란?- 런타임 (실행 시점)에 외부에서 실제 구현 객체를 생성하고 클라이언트에 전달해서 클라이언트와 서버의 실제 의존관계가 연결되는 것-> 동적인 객체 인스턴스 의존관계를 쉽게 변경할 수 있음 IoC 컨테이너, DI 컨테이너- AppConfig와 같이 객체 생성과 관리를 관리, 의존관계 연결해주는 것- 의존관계 주입에 초점을 맞춤 스프링 컨테이너- ApplicationContext- 기존에는 AppConfig로 생성, 이제 스프링 컨테이너를 통해 객체 생성 + DI- @Configuration이 붙은 AppConfig를 설정 정보로 사용- @Bean이 적힌 메서드는 모두 호출하여 스프링 컨테이너에 반환된 객체 등록 -> 스프링 빈- applicationContext.getBean()를 통해..
예외(Exception) 처리 프로그램에서 발생하는 오류는 컴파일 오류와 런타임 오류 두 가지로 나눌 수 있다. 1. 컴파일 오류- 잘못된 문법을 사용하거나 변수 등을 정의하지 않은 상태에서 사용함으로써 컴파일 단계에서 발생하는 문법적인 오류 2. 런타임 오류- 프로그램을 실행하는 과정에서 발생하는 런타임 오류 런타임 오류는 두 가지로 나눌 수 있는데 시스템 이상에서 발생하는 시스템 오류(Error), 프로그램 실행 중 발생되는 비정상적인 상황을 의미하는 예외사항(Exception). Exception은 개발자가 고칠 수 있지만 Error는 고칠 수 없음 ! Exception 클래스 - 자바에서 예외는 하나의 객체- 프로그램 실행 중 오류가 발생할 경우, 메소드는 그 오류에 해당하는 예..