본문 바로가기

토비의 스프링3

1장 오브젝트와 의존관계(5) - XML 설정 1. XML 설정 -. Spring Application Context 는 XML에 담긴 DI정보를 활용할 수 있다. -. DI정보가 담긴 XML파일은 를 루트 엘리먼트로 사용. 하위로 을 다수 정의 가능 -. XML 설정은 @Configuration( ) 과 @Bean( ) 이 붙은 자바클래스로 만든 설정과 동일 -. 하나의 @Bean 메소드를 통해 얻을 수 있는 Bean의 DI 정보 ㄱ. 빈의 이름 : @Bean 메소드 이름이 빈의 이름이다. 이 이름은 getBean() 에서 사용된다. ㄴ. 빈의 클래스 : 빈 오브젝트를 어떤 클래스를 이용해서 만들지를 정의한다. ㄷ. 빈의 의존 오브젝트 : 빈의 생성자나 수정자 메소드를 통해 의존 오브젝트를 넣어준다. 의존 오브젝트는 하나 이상일 수도 있다. 클래스.. 더보기
1장 오브젝트와 의존관계(4) - 의존관계주입(Dependency Injection) 1. 의존관계 주입(DI) - Dependency Injection -. 객체를 생성하고 관계를 맺어주는 등의 작업을 담당하는 기능을 일반화한 것이 스프링의 IoC 컨테이너이다. -. 스프링 IoC 기능의 대표적인 동작원리는 주로 의존관계 주입이라고 불린다. -. DI 의 장점은 관심사의 분리를 통해 얻어지는 높은 응집도에서 나온다. 2. 의존관계 -. 의존관계란 두개의 클래스 또는 모듈이 의존관계에 있다고 말할 때는 항상 방향성을 부여해줘야 한다. UML모델에서의 클래스의 의존관계 다이어그램(A가 B에 의존하고 있음) B가 변경되었을 경우 A에 영향을 미치나, A가 변경되었을 경우에는 B에 영향을 미치지 않는다. UML모델에서의 인터페이스를 통한 느슨한 결합을 갖는 의존관계 B 클래스는 A 인터페이스에.. 더보기
1장 오브젝트와 의존관계(3) - 싱글톤 & 스코프 1. 싱글톤 레지스트리와 오브젝트 스코프 ※ 오브젝트의 동일성과 동등성 자바에서 두 개의 오브젝트가 완전히 같은 동일한(identical) 오브젝트라고 말하는 것과, 동일한 정보를 담고 있는(equivalent) 오브젝트라고 말하는 것은 분명한 차이가 있다. 전자는 동일성(identity) 비교라고 하고, 후자를 동등성(equality) 비교라고 한다. 동일성은 == 연산자로, 동등성은 equals()메소드를 이용해 비교한다. 두 개의 오브젝트가 동일하다면 사실은 하나의 오브젝트만 존재하는 것이고 두 개의 오브젝트 레퍼런스 변수를 갖고 있을 뿐이다. 두 개의 오브젝트가 동일하지는 않지만 동등한 경우에는 두 개의 각기 다른 오브젝트가 메모리상에 존재하는 것인데 오브젝트의 동동성 기준에 따라 두 오브젝트의 .. 더보기
Spring AOP(Aspect Oriented Programming) Spring AOP(Aspect Oriented Programming) 1. AOP의 목적 AOP 개념을 이해하기 전에 "횡단관심사" 라는 단어를 이해할 필요가 있다. 횡단관심사 란 보안, 로깅, 트랜젝션 등과 같은 기능들처럼 한 어플리케이션의 여러부분에 걸쳐있는 기능을 의미한다.즉, 횡단관심사는 한마디로 한 어플리케이션의 여러 부분에 영향을 주는 기능이라고 할 수 있다. 위 그림을 보면 한 어플리케이션이 여러 모듈로 분해된 모습을 보여준다.각 모듈들은 각자 자기가 맡은 서비스 제공을 위하여 사용되지만 이 모듈들은 모두 보안과 트랜젝션관리 같은 보조기능을 필요로 한다. 공통기능을 재사용하는 상속같은 개념도 있지만 상속은 객체의 정적구조에 의존하기 쉽기때문에 복잡하고 깨지기 쉬운 구조로 되어있다. 물론 A.. 더보기
1장 오브젝트와 의존관계(2) - IoC(Inversion Of Control) 1. 제어의 역전(IoC) - Inversion of Control a. 팩토리 -. 객체의 생성 방법을 결정하고 그렇게 만들어진 오브젝트를 돌려주는 오브젝트를 흔히 팩토리라 부른다. b. 설계도로서의 팩토리 -. 어떤 오브젝트가 어떤 오브젝트를 사용하는지를 정의해놓은 코드 2. 제어권의 이전을 통한 제어관계 역전 -. 제어의 역전이라는건, 간단히 프로그램의 제어 흐름 구조가 뒤바뀌는 것이라 설명할 수 있다. -. 모든종류의 작업을 사용하는쪽에서 제어하는구조다. -. 제어의 역전에서는 오브젝트가 자신이 사용할 오브젝트를 선택하지 않고, 생성하지도 않는다. 또 자신도 어떻게 만들어지고 어디서 사용되는지 알 수 없다 -. 제어의 역전에서는 프레임워크 또는 컨테이너와 같이 애플리케이션 컴포넌트의 생성과 관계설.. 더보기
1장 오브젝트와 의존관계(1) - 스프링 1장 오브젝트와 의존관계 1. 스프링의 핵심 -. 자바 기반 -> 자바는 객제지향 프로그래밍이 가능한 언어 -. 객체지향 프로그래밍이 제공하는 폭넓은 혜택을 누릴 수 있도록 기본으로 돌아가자는 것 -. 오브젝트의 효과적인 설계, 구현, 사용, 개선에 명쾌한 기준을 마련 1.1. 초난감 DAO -. DAO (Data Access Object)는 DBㄹ르 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 Object -. 자바빈(JavaBean) 은 원래 비주얼 툴에서 조작이 가능한 컴포넌트를 말하였으나, 사용성이 적어 그 의미가 사라짐 디폴트 생성자, 프로퍼티를 가리키는 Object 의 의미를 가짐. 간단히 빈 이라고 부르기도 함 디폴트 생성자 : 자바빈은 파라미터가 없는 디폴트 생성자를 갖고 있.. 더보기
스프링이란 무엇인가 스프링이란 무엇인가? -. 자바 엔터프라이즈 Application 개발에 사용되는 Application Framework -. Application Framework -. 빠르고 효율적으로 사용 -. Application 기본 틀 제공 -. 공통 프로그래밍 모델, 기술API 등을 제공 참고) http://wiki.javajigi.net/pages/viewpage.action?pageId=3664 참고 Spring 프레임워크 구성 Spring Core Spring 프레임워크의 근간이 되는 IoC(또는 DI) 기능을 지원하는 영역을 담당하고 있다. BeanFactory를 기반으로 Bean 클래스들을 제어할 수 있는 기능을 지원한다. Spring Context Spring Core 바로 위에 있으면서 Spri.. 더보기