의존관계(Dependency Relationship)의존대상이 변하면 함께 변하는 것의존관계에는 방향성이 있다 의존관계 주입(Dependency Injection)구체적인 의존 오브젝트와 그것을 사용할 주체, 클라이언트 오브젝트를 런타임 시에 연결해주는 작업클래스 모델이나 코드에는 런타임 시점의 의존관계가 드러나지 않는다. (인터페이스에만 의존)런타임 시점의 의존관계는 컨테이너나 팩토리 같은 제3의 존재가 결정한다.의존관계는 사용할 오브젝트에 대한 레퍼런스를 외부에서 제공(주입)해줌으로써 만들어진다. 의존관계 검색(Dependency Lookup)의존관계를 외부로부터 주입 받지 않고 스스로 검색결정과 생성은 IoC로 맡기지만, 이를 능동적으로 컨테이너에게 요청코드 안에 오브젝트 팩토리 클래스나 스프링 A..
싱글톤 패턴(Singleton Pattern)어떤 클래스를 애플리케이션 내에서 제한된 인스턴스 개수, 이름처럼 주로 하나만 존재하도록 강제하는 패턴이다.클래스 밖에서는 오브젝트를 생성하지 못하도록 생성자를 private으로 만든다. 생성된 싱글톤 오브젝트를 저장할 수 있는 자신과 같은 타입의 스태틱 필드를 정의한다.스태틱 팩토리 메소드인 getInstance()를 만들고 이 메소드가 최초로 호출되는 시점에서 한 번만 오브젝트가 만들어지게 한다. 생성된 오브젝트는 스태틱 필드에 저장된다. 또는 스태틱 필드의 초기값으로 오브젝트를 미리 만들어둘 수도 있다.한번 오브젝트(싱글톤)가 만들어지고 난 후에는 getInstance() 메소드를 통해 이미 만들어져 스태틱 필드에 저장해둔 오브젝트를 넘겨준다. 싱글톤 패..
첫 번째 문단,"전자는 동일성(identity) 비교라고 하고, 후자를 동등성(equality) 비교라고 한다. 동일성은 == 연산자로, 동등성은 equals() 메소드를 이용해 비교한다."세 번째 문단,"Object의 equals() 메소드는 두 오브젝트의 동일성을 비교해서 그 결과를 돌려준다. 따라서 이때는 동일한 오브젝트여야지만 동등한 오브젝트라고 여겨질 것이다.)이게 무슨 말일까? 첫 번째 문단에서는 equals() 메소드를 통해 동등성 비교를 한다는 것처럼 말하는데, 세 번째 문단에서는 동일성 비교를 한다고 말한다. --> 일단 뒷 부분 내용상 == 연산자가 동일성 비교, equals() 연산자가 동등성 비교가 맞는 것 같다.
빈(bean)스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트 스프링 컨테이너가 생성과 관계설정, 사용 등을 제어해주는 제어의 역전이 적용된 오브젝트 빈 팩토리(bean factory)빈의 생성과 관계설정 같은 제어를 담당하는 IoC 오브젝트 애플리케이션 컨텍스트(application context)애플리케이션 컨텍스트는 일종의 빈 팩토리(정확히는 빈 팩토리의 확장)로, 별도의 정보를 참고해서 빈의 생성, 관계설정 등의 제어 작업을 총괄한다. 그 자체로는 애플리케이션 로직을 담당하지는 않지만 IoC 방식을 이용해 애플리케이션 컴포넌트를 생성하고, 사용할 관계를 맺어주는 등의 책임을 담당한다.= 스프링 컨테이너, IoC 컨테이너
전략 패턴(Strategy Pattern)자신의 기능 맥락(context)에서, 필요에 따라 변경이 필요한 알고리즘을 인터페이스를 통해 통째로 외부로 분리시키고, 이를 구현한 구체적인 알고리즘 클래스를 필요에 따라 바꿔서 사용할 수 있게 하는 디자인 패턴. 컨텍스트를 사용하는 클라이언트는 컨텍스트가 사용할 전략을 컨텍스트의 생성자 등을 통해 제공해주는 게 일반적이다.UserDaoTest(클라이언트)-UserDao(컨텍스트)-ConnectionMaker(인터페이스)-DConnectionMaker(전략)
- Total
- Today
- Yesterday