기본 콘텐츠로 건너뛰기

5월, 2017의 게시물 표시

Event sourcing & CQRS

Event 특징 - Immutable - Append Only Event 구성 - 이벤트 식별자 (Aggregate Id) - 이벤트 타입 - 버전 EventStore는 RDBMS, NoSql, File 뭐든 상관없음 반드시 영구 저장소에 저장 이벤트 조회 (객체 로딩) 도메인 객체(Aggregate)의 이벤트 핸들러 메소드 Snapshot 구성 - 이벤트 식별자 (Aggregate Id) - 이벤트 version (replay된 마지막 Version) - Replay된 도메인 객체 Snapshot은 EventStore와 분리된 저장소에 저장 성능상 주로 in Memory 저장소를 사용 CQRS Command -> Writes Queries -> Read 상태변경을 처리하는 Command Model와 데이터 조회 Query Model을 분리 구현

Axon Framework

Command는 command handler를 실행하기 위한 모든 데이터를 포함 Command Bus는 command를 받아 Command Handler로 라우팅 해줌 Command Handler에서 유형에 관계 없이 logging, validation, authorization을 함 Command Handler는 도메인 오브젝트(Aggregates)를 리파지토리에서 검색하고 상태를 변경 시킵니다. Aggregates는 비즈니스 로직을 포함하고 있습니다. Aggregates의 상태 변경으로 도메인 이벤트가 발생합니다. 리파지토리는 Aggregates에 접근할수 있도록 제공합니다. 고유 식별자(Unique identifier)를 사용하여  Aggregates를 조회할수 있도록 되어 있습니다. Event들에 대한 상태 변경사항을 저장 할 수 있습니다. Event Bus는 관심있는 Event Listener에게 이벤트를 전달합니다. (동기/비동기) Event Listener에서는 이벤트를 받고 다룹니다. 몇몇의 핸들러는 쿼리에 사용되는 데이터 소스를 업데이트 하거나 외부 시스템에 메시지를 보냅니다. 이런 식으로 Event Listener를 추가하는 방식으로 컴포넌트 간 느슨하게 결합할 수 있으며 확장할 수 있습니다. 사용자 인터페이스와 data source 사이에 Thin data layer는 쿼리 구현에 대한 인터페이스를 제공합니다. 이 데이터 계층은 쿼리 결과가 포함된 읽기 전용 DTO를 반환합니다. UI에 따라 DTO가 결정되며 Thin data layer는 UI와 data source 사이에서 쿼리 구현에 대한 인터페이스를 제공합니다. 이 계층에서는 쿼리 결과가 포함된 읽기 전용 DTO를 반환합니다. Benefits Simplify CQRS based applications It has been built and tested against Java8 Support for Spring Boot AutoCo...

20170504 담양 순천여행

아침에 일어나 죽녹원을 가기 위해 담양으로 출발 죽녹원 가보고 싶었는데 그동안 못가봄 잘꾸며 놓았고 정자에 누워 커피를 마시며 휴식도 취함 바람도 너무 좋고 ~ 죽녹원 내려오면 기념품샵이 많이 있는데 거기서 착한감자를 하나 맛봤는데 맛있어서 구입 5000원   배가 고파 순천으로 이동  1시반을 기다려서 꼬막 정식 먹음  가격은 인당 18000원 정도 밥을 먹고 낙안읍성으로 이동하여 구경 유채꽃도 이쁘게 피워 있었고 볼게 많아서 아내가 좋아했엇음

jQuery keydown event - remove specific handler

The keydown event can be attached to any element but the event is only sent to form elements If you'd like to remove specific handler that registered keydown event you can use namespace such as ".myPlugin" let moveToPrevItem = (e) => { if(e.shiftKey && e.which === 37){ this._movePrev(); e.preventDefault(); return false; } }; let moveToNextItem = (e) => { if((e.ctrlKey || e.shiftKey) && e.which === 39){ this._moveNext(); e.preventDefault(); return false; } }; $(document).off('keydown.toPrevItem'); $(document).on('keydown.toPrevItem', keyDownToPrevItem); $(document).off('keydown.toNextItem'); $(document).on('keydown.toNextItem', keyDownToNextItem); - http://api.jquery.com/off

20170503 여수여행

새벽 5시에 일어나 부랴부랴 준비해서 5시 40분에 출발 10시 30분쯤 도착해서 백종원 3대천왕에 나왔던 여수 게장정식 맛집<맛나게장백반>에 왔지만 둘째주 수요일 휴무라 먹지 못하고 여수청정게장촌으로 바로 이동 11시 이른 시간이었지만 사람들이 많아 번호표를 뽑고 대기 갈치조림정식(인당16000) 2인 주문 난 양념게장이 맛있었고 아내는 간장게장이 맛있다며 배부르게 점심을 먹음 아내가 아쿠아플라넷 가보고 싶다고 해서 바로 밥먹고 이동 참고로 주차장은 유료 주차장 이용 (비용은 비싸지는 않았던거 같음) 이름은 기억이 안나지만 새로운 동물도 보고 공연도 봄. 공연은 어린이들을 위한 내용이지만 나름 볼만 했음. 슬슬 배가 고파와 간단히 요기 할겸 인터넷을 찾아보니 좌수영 바게트 버거가 유명하다고 하여 출발  피자 맛이라고 해야하나 하여튼 난 정말 맛있게 먹었음 추천! 그리고 슬슬 해가 지기 시작하여 오동도로 출발 대연 자전거가 모두 대여된 상태라 그냥 걷기 시작. 생각보다 한바퀴 도는데 힘들지 않았음. 일몰은 정말 이쁨 여수 밤거리를 걷다가 슬슬 다시 배고파지기 시작하여 여수 포차거리로 이동 아내가 웹서핑을 통해 11번이 괜찮다고 하여 11번으로 결정 아저씨가 산낙지로 똭 넣어줌 해물을 다 먹은 뒤 밥까지 비벼서 먹었음 #여수청정게장촌 #아쿠아플라넷 여수 #좌수영 바게트 버거 #오동도 #여수 포장마차거리