Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Spring/토비의스프링3/오브젝트와의존관계: Difference between revisions

From ZeroWiki
imported>linflus
No edit summary
imported>linflus
No edit summary
Line 58: Line 58:
| Not Null
| Not Null
|}
|}
== UserDao ==
== UserDao ==
== Test Code ==
== Test Code ==
= DAO의 분리 =
= DAO의 분리 =

Revision as of 10:52, 25 February 2011

초난감 DAO

  • 사용자 정보를 JDBC API를 이용해 DB에 저장하고 조회할 수 있는 간단한 DAO 만들기.
  • DAO(Data Access Object)
    • DB를 사용하여 데이터를 조회, 조작하는 기능을 전담하도록 만든 오브젝트.

User

  • 사용자 정보를 저장할 때 자바빈 규약을 따르는 오브젝트를 이용하면 편리하다.
    • 자바빈(JavaBean)
    • 간단히 빈이라고도 한다.
    • 원래 의미는 비주얼 툴에서 조작 가능한 컴포넌트.
    • 요즘은
      • 파라미터가 없는 디폴트 생성자를 가지고 있고
      • getter와 setter를 통해 조회, 수정할 수 있는 프로퍼티를 가진 오브젝트를 의미한다.
  • User : 사용자 정보 저장용 자바빈 클래스
package springbook.user.domain;

public class User {
    String id;
    String name;
    String password;

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}
  • USER 테이블
필드명 타입 설정
UserId VARCHAR(10) Primary Key
Name VARCHAR(20) Not Null
Password VARCHAR(20) Not Null

UserDao

Test Code

DAO의 분리

DAO의 확장

  • 1.3.1 클래스의 분리
  • 1.3.2 인터페이스의 도입
  • 1.3.3 관계설정 책임의 분리
  • 1.3.4 윈칙과 패턴
    • 개방 폐쇄 원칙
    • 높은 응집도와 낮은 결합도
    • 전략 패턴

제어의 역전(IoC)

스프링의 IoC

5.1 오브젝트 팩토리를 이용한 스프링 IoC

   5.1.1 
   빈(bean) : 스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트. 자바빈에서 말하는 빈과 비슷한 오브젝트 단위의 애플리케이션 컴포넌트. 
   빈 팩토리(bean factory) : 빈의 생성과 관계설정 등의 제어를 담당하는 IoC오브젝트.
   애플리케이션 컨텍스트(application context) : IoC방식을 따라 만들어진 일종의 빈팩토리. 별도의 정보를 참고해서 빈의 생성, 관계설정 등의 제어 작업을 총괄한다. 설정 정보를 따로 받아와서 이를 활용하는 IoC엔진이라고 볼 수 있다.

싱글톤 레지스트리와 오브젝트 스코프

의존관계 주입(DI)

  • 의존관계 : 두 클래스 또는 모듈이 있을 때 한 쪽의 변화가 다른 쪽에 영향을 미치는 상황.
  • 의존관계 주입(DI)? : 의존관계 주입(Dependency Injection)이란 스프링에 사용된 제어의 역전(IoC) 방식을 조금 더 명확하게 나타내기 위해서 사용한 용어이다. '의존관계 주입이 사용되었다'는 말은 두 오브젝트가 있을 때 한 오브젝트가 다른 한 오브젝트를 외부에서 제공(주입) 받고, 이 제공받은 오브젝트를 통해서 다이나믹하게 의존관계가 형성되었음을 의미한다.
  • DI의 장점 : DI를 받았을 경우 주입된 오브젝트를 인터페이스로 받는데 이렇게 하면 코드에 런타임 클래스와의 관계가 직접 드러나지 않기 때문에 주입시 주입하는 오브젝트를 바꿔주는 것으로 코드의 변경, 확장에 쉽게 대응할 수 있다.

XML을 이용한 설정


Spring/토비의스프링3