이벤트

· JPA
모든 엔티티를 대상으로 언제 어떤 사용자가 삭제를 요청했는지 모두 로그를 남겨야 하는 요구사항이 있다고 가정하자. 이때 애플리케이션 삭제 로직을 하나씩 찾아서 로그를 남기는 것은 너무 비효율적이다. JPA 리스너 기능을 사용하면 엔티티의 생명주기에 따른 이벤트를 처리할 수 있다. 이벤트 종류 PostLoad 엔티티가 영속성 컨텍스트에 조회된 직후 또는 refresh를 호출한 후(2차 캐시에 저장되어 있어도 호출된다) PrePersist persist() 메소드를 호출해서 엔티티를 영속성 컨텍스트에 관리하기 직전에 호출된다. 식별자 생성 전략을 사용한 경우 엔티티에 식별자는 아직 존재하지 않는다. 새로운 인스턴스를 merge 할 때도 수행된다. PreUpdate flush나 commit을 호출해서 엔티티를..
· DDD
시스템 간 강결합의 문제 만약 외부 시스템과의 연동으로 서비스를 구축할 경우, 외부 시스템이 정상적으로 작동하지 않을때 트랜잭션 처리로 인한 롤백이 애매해지게 된다. 롤백 처리를 하지 않고 추후에 처리를 할 수 있겠지만 문제가 되는 외부시스템에서 응답 시간이 오래 걸리게 되면 내부 서비스에도 영향을 준다. 그리고 외부 시스템이 내부 시스템 코드에 영향을 주는 문제도 생길 수 있다. 이는 외부 시스템과의 문제뿐만 아니라 내부 시스템간에도 생길수 있는 문제들이다. 이러한 문제는 BOUNDED COUNTEXT 간에 강결합(high coupling) 때문이다. 이러한 문제를 해결하는 방법이 있는데 그것은 바로 이벤트를 사용하는 것이다. 이벤트 관련 구성요소 이벤트 핸들러(handler)는 이벤트 생성 주체가 발..
beekei
'이벤트' 태그의 글 목록