본문 바로가기

전체 글196

Domain Driven Design(2) - Entity [Reference Object] 많은 객체들은 이들이 가진 속성이 아니라 일련의 지속성(continuity)과 식별자(identity)를 통해서 기본적으로 정의된다. 어떤 집주인이 자신의 재산에 중대한 손해를 입혔다고 주장하면서 나를 고소했다. 내가 받았던 고소장에는 아파트에 벽에 구멍이 나있으며, 카펫트에는 얼룩이 묻어 있고, 싱크대에 부엌 벽지가 벋겨지게 만든 부식성의 가스를 풍기는 유해한 용액을 있었다고 되어 있다. 법원 서류는 나를 이름과 그 당시의 주소를 근거로 손해를 입힌 세입자로 명기하고 있다. 이 사건은 나로 하여금 혼란으로 주었는데 왜냐하면 그러한 황폐한 장소에 가 본적이 결코 없었기 때문이다. 얼마 후, 나는 잘못된 식별인 경우임에 틀림없다고 생각이 들었다. 나는 고소인에게 전화해서 이러한 사실을 이야기했지만, 나를 .. 2008. 2. 26.
고지대 적응 훈련 에베레스트나 K2와 같이 높은 산들을 등반하기 위해서는 반드시 고지대 적응 훈련이라는 것이 필요하다. 이는 해발 약 4000 미터 정도 높이에서부터 고도를 서서히 높이면서 산소가 희박해지는 고지대 환경에 적응하는 것이다. 눈앞에 산 정상이 있다고 하더라도 바로 올라가면 산소부족으로 인한 고지대 환경에 몸이 견디지 못해서 등반은 커녕 목숨을 잃기 쉽상이다. 이 지점부터 등반가들은 멀리 돌아가지만, 서서히 고도를 높이면서 몸이 산소가 점점 희박해지는 환경에 적응할 수 있도록 계속해서 걷는다. 모든 일이 마찬가지겠지만, 절차라는 것이 있고, 그 절차는 반드시 고통이 따르기 마련이다. 고통은 곧 누구에게나 불쾌한 일(unpleasant thing)이다. 이러한 통과의례는 우리들의 성숙도(maturity)를 높여.. 2008. 2. 26.
Domain Driven Design(1) - Association 모델링과 구현간의 상호작용은 객체간의 연관(association)에서 특히 주의해야 한다. 모델에서 모든 연결된(traversable) 연관에 대해서 동일한 속성들을 가지는 소프트웨어 메커니즘이 있다. 고객과 판매 응대자 간의 연관을 나타내는 모델은 두가지에 대응된다. 하나는 개발자가 두개의 실제적인 사람들 간의 연관된 것이라고 생각하는 관계를 추상화하는 것이다. 다른 하나는 두개의 자바 객체 간의 객체 포인터나, 데이터베이스 검색에 대한 캡슐화, 혹은 어떤 대응되는 구현에 해당한다. 예를 들어, 일대다 연관은 인스턴스 변수의 collection으로 구현될 수 있다. 하지만 설계는 그처럼 직접적일 필요는 없다. collection이 없을 수 있다. 접근자 메소드는 적당한 레코드를 검색하기 위해서 데이터베.. 2008. 2. 25.
EJB3의 Entity Access Object 패턴 세션빈의 비즈니스 로직에서 EntityManager API를 직접적으로 사용하는 방법은 비즈니스 로직 내에 엔티티 접근 코드를 산재하게 한다는 문제가 발생되는데, 이는 유지보수 측면에서 고역이다. Entity Access Object (EAO) 패턴은 비즈니스 로직에서 엔티티 접근 로직을 결합력을 적게 하며 코드 유지보수를 향상시킨다. 이는 비즈니스 로직에 영향을 주지 않고 내부의 엔티티 접근 코드를 쉽게 변경 가능하게 해준다. 만일 어플리케이션에서 EAO 패턴을 도입하면, JDBC나 EJB2 CMP, 혹은 다른 저장 메커니즘에서 JPA로 저장 티어 메커니즘 변경을 훨씬 쉽게 해준다. 선의 blueprint 웹 사이트에서 데이터 접근 객체에 대해서 더 자세하게 배울 수 있다. DAO의 내용에서 DAO를 .. 2008. 2. 22.
반응형