꿈꾸는자의 생각의 파편들... :: [SA강좌] Part 4-15 Identity Map 패턴

달력

10

« 2019/10 »

  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  

일치 맵(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 이 객체가 아니라는 것이다. 이러한 이유로 맵을 위한 인덱스로 사용할 수 없다.

Posted by 꿈꾸는자의 생각의파편들

댓글을 달아 주세요