토비의 스프링 보면서 공부하다가 다음과 같은 문장 하나 추가했을 뿐인데ApplicationContext context = new AnnotationConfigApplicationContext(DaoFactory.class);아래와 같은 오류 발생함.test.class
1. 클라이언트는 구체적인 팩토리 클래스를 알 필요가 없다. 오브젝트 팩토리가 아무리 많아져도 이를 알아야 하거나 직접 사용할 필요가 없다. 일괄된 방식으로 원하는 오브젝트 가져올 수 있다. 2. 애플리케이션 컨텍스트는 종합 IoC 서비스를 제공해준다. 단순히 다
스프링이 IoC 방식으로 관리하는 오브젝트.애플리케이션에서 만들어지는 오브젝트가 모두 빈은 아니며, 스프링이 직접 생성과 제어를 담당하는 오브젝트만 빈 이라고 함. 스프링의 IoC를 담당하는 핵심 컨테이너. 빈 등록, 생성, 조회 및 반환, 및 부가적인 빈을 관리하
실제로 하나의 오브젝트만 존재하며, 두 개의 오브젝트 레퍼런스 변수를 가지고 있다.두 개의 각기 다른 오브젝트가 메모리상에 존재하다.두 오브젝트의 동일성 비교동일한 오브젝트는 동등하다 = 참동등한 오브젝트는 동일하다 = 거짓
오브젝트 팩토리와 비슷한 동작을 하지만, 애플리케이션 컨텍스트는 싱글톤을 보장한다.하나의 오브젝트만 만들어주고, 사용자의 요청을 담당하는 여러 스레드에서 하나의 오브젝트를 동시에 공유해서 사용함을 보장한다.클래스 밖에서는 오브젝트 생성 못하도록 생성자는 private싱
B가 변하면 A에 영향을 미친다.의존관계에는 방향성이 있다. A가 B에 의존한다면, B는 A에 의존하지 않는다. 코드에서 클래스와 인터페이스 틀 통해 드러나는 의존관계런타임 시에 오브젝트 사이에서 만들어지는 의존관계 = 의존 오브젝트구체적인 의존 오브젝트와 그것을 사용
미리 정해놓은 이름을 검색해서 그 이름에 해당하는 오브젝트를 찾는 것일반적으로 의존관계 검색보다는, 주입 방식을 사용함하지만 스태틱 메소드인 main() 에서는 DI를 이용해 오브젝트를 주입받을 방법 없음의존관계 검색 방식에서는 검색하는 오브젝트 자신이 스프링의 빈일
생성자를 이용한 주입생성자에 파라미터를 만들어주고, DI 컨테이너가 의존할 오브젝트 레퍼런스 넘겨줌.한 번에 여러 개의 파라미터 받을 수 있음.수정자(Setter) 메소드를 이용한 주입파라미터로 전달된 값을 내부의 인스턴스 변수에 저장외부에서 오브젝트 내부의 애트리뷰트
.class 없이 value="com.mysql.cj.jdbc.Driver" 만 써도 되는 이유는, 다음과 같은 변환 작업이 일어나기 때문즉, 수정자 메소드의 파라미터 타입을 참고해서 적절한 형태로 변환해 줌. 스프링은 value에 지정한 텍스트 값을 적절한 자바 타입
1. 책임이 다른 코드를 분리하여 두 개의 클래스로 만든다. 2. 바뀔 수 있는 쪽의 클래스는 인터페이스로 구현. 다른 클래스에서 인터페이스를 통해서만 접근하도록 하게한다. (인터페이스를 정의한 쪽의 구현 방법이 달라져 클래스가 바뀌더라도, 그 기능을 사용하는 클래스의
테스트하고자 하는 대상이 명확하다면, 그 대상에만 집중하는 것이 바람직하다.즉 작은 단위의 테스트가 중요하다.단위는 작을수록 좋으며, 단위를 넘어서는 다른 코드들은 싱경쓰지 않고, 참여하지도 않고 테스트 할 수 있으면 더욱 좋다.테스트 과정에서 DB가 사용되더라도, D
모든 테스트는 성공과 실패의 결과를 가진다.실패는 테스트가 진행되는 동안에 에러가 발생해서 실패하는 경우와(=테스트 에러), 에러가 발생하진 않았지만 결과가 기대한 것과 다르게 나오는 경우(=테스트 실패)로 구분된다.기존 소스눈으로 일일이 확인하는 것이 아닌, 코드로
모든 테스트는 실행 순서와 상관없이 독립적으로 항상 동일한 결과를 낼 수 있어야 함(일관성).부정적인 케이스를 먼저 만드는 습관을 길러야 함.테스트 주도 개발(=테스트 우선 개발 TDD). 만들고자 하는 기능의 내용을 담고 있으면서, 만들어진 코드도 검증해 줄 수 있도
학습 테스트다른 사람이 만든 코드와 기능에 대한 테스트 작성자신이 사용할 API나 프레임워크의 기능을 테스트로 보면서 사용 방법 익히는 목적버그 테스트코드에 오류가 있을 때, 그 오류를 가장 잘 드러내줄 수 있는 테스트일단 실패하도록 만들고, 버그 테스트가 성공할 수
테스트는 자동화돼야 하고, 빠르게 실행할 수 있어야 한다.테스트 결과는 일관성이 있어야 한다. 환경이나 테스트 실행 순서에 따라 결과가 달라지면 안됨.충분한 검증을 하지 않은 테스트는 없는 것보다 나쁠 수 있다.테스트하기 쉬운 코드가 좋은 코드다.테스트 코드도 적절한
일정한 패턴으로 유지되는 특성을 가진 부분을, 자유롭게 변경되는 성질을 가진 부분으로부터 독립시켜서 효과적으로 활용할 수 있도록 하는 방법확장에는 자유롭게 열려 있고 변경에는 굳게 닫혀 있다는 개방 폐쇄 원칙(OCP)과 관련 있음일반적인 메소드 추출. 분리시킨 메소드의