본문 바로가기

Dev.../소프트웨어 아키텍처

[SA강좌] Part 4-15 Identity Map 패턴

일치 맵(Identity Map) 패턴

일치 맵 패턴의 정의

일치 맵 패턴은 맵에 로드된 모든 개체의 유지에 의하여 개별 개체는 한번만 로드됨을 확신한다. 이러한 개체들을 참고 할 때 맵을 사용한 개체 검색을 하는 패턴이다.

그림 -18. 일치 맵 패턴의 구조

일치 맵 패턴의 설명

일치 맵 패턴은 단일 비즈니스 트랜잭션에 있는 데이터베이스에서 읽은 모든 개체의 패턴을 유지 시킨다. 객체를 원하는 경우에는 이미 가지고 있다면 일치 맵 패턴을 처음에 확인한다.

일치 맵 패턴의 사용

  • 비일치성을 막는다.
  • 수행성을 향상시킨다.

일반적으로 일치 맵 패턴은 데이터베이스에서 가져온 개체를 관리하기 위해 사용한다. 중요한 이유는 메모리 상에 두개의 개체가 하나의 데이터베이스 레코드에 대응 되기를 원하지 않기 때문이다. 만일 비 일관성적으로 두개 레코드를 수정한다면 데이터베이스 매핑은 혼란을 가져온다.

다른 이유는 데이터베이스를 읽기 위한 캐쉬와 같은 행동을 한다.

 

일치 맵 패턴의 예제

일치 맵을 위한 맵 필드와 접근자들은 다음과 같다.

 

private Map people = new HashMap();

public static void addPerson(Person arg) {

soleInstance.people(arg.getId(), arg);

}

 

public static void getPerson(Long key) {

return (Person) soleInstance.people.get(key);

}

 

public static void addPerson(Person arg) {

return getPerson(new Long(key));

}

자바(Java)의 애로사항 중에 하나는 long 이 객체가 아니라는 것이다. 이러한 이유로 맵을 위한 인덱스로 사용할 수 없다.