어떻게 하면 모델링을 잘할 수 있을까?
마침 지난 글무료 카지노 게임 '사용자 경험과 연결되는 도메인 이벤트 설계 품질'을 다뤘습니다. 도메인 이벤트 포착을 제대로 하면 사용자 경험을 높일 수 있다는 주장을 담은 것이죠. 물론, 반대로 잘못 포착하면 사용자 불편을 초래할 수 있습니다.
그런데, 글을 막 쓰고 나서 얼마 되지 않은 시점무료 카지노 게임 이벤트 통지와 관련한 소소한 불편을 겪어서 이를 도메인 이벤트 설계 맥락무료 카지노 게임 다뤄 보려고 합니다. 스타벅스무료 카지노 게임 사이렌 오더로 커피를 주문했습니다. 자주 가는 매장인데, 평소 나와야 할 시간이 지났는데 계속 '주문 확인' 상태였습니다. '이상하네' 하며 그저 기다리고 있는데 카톡무료 카지노 게임 픽업대무료 카지노 게임 기다리고 있다는 메시지가 전달되었습니다.
반면에 사이렌오더 화면은 그대로였습니다. 스타벅스는 보통 진동벨 대신 종업원이 구두로 호명해 주는데, 층이 달라서 들리지 않았습니다. 앱무료 카지노 게임 상태 변경을 알려 주거나 카톡 통지를 위해서는 종업원이 어떤 행위를 해 줘야 합니다. 앞선 사례의 주차장 정산 요청처럼 말이죠. 이벤트 기반으로 설계한다면 이는 하나의 도메인 이벤트가 될 것입니다.
<프로그래밍무료 카지노 게임 이벤트는 모듈화를 위해 도입한 개념을 쓰면서 이렇게 주장했습니다.
이벤트에 담긴 변화에 따르는 적절한 알고리듬 수행을 개별 옵서버가 책임진다는 점무료 카지노 게임 '느슨한 결합(loosely-coupled)'을 가능하게 합니다. 이 점이 바로 확장성과 유연성이라는 바람직한 특징의 키가 된다고 하겠습니다.
확장성과 유연성은 그에 부합하게 구현을 했을 때 주어지는 혜택입니다. 옵서버가 올바른 알고리듬을 수행해야 합니다. 제가 스타벅스 시스템 내부를 모르니 다음과 같은 질문들을 보편적인 점검표로 생각할 수 있습니다.
메뉴 준비 완료가 되면 모든 통지 수단에 같은 메시지를 전달하는가?
모든 사용자에게 앱과 동시에 카톡 메시지를 보내야 하는가?
사용자가 앱과 카톡을 혼용하는 상황은 개발팀의 가정(혹은 테스트 환경)과 일치하는가?
종업원이 같은 내용의 이벤트를 복수로 발행하게 되어 있지는 않는가?
앞서 <상태 관리에 대한 이해가 필요한 비대칭 분산 시스템무료 카지노 게임 이렇게 쓴 일이 있습니다.
아마 그 이유는 관계형 데이터베이스를 만들어 전 세계에 납품한 거대 기업이 상태 관리의 대부분을 지배했기 때문이 아닐까 싶습니다. 개발자들은 그저 트랜젝션 관리만 잘하면 될 뿐, 상태 관리는 굳이 신경 쓸 필요가 없던 것이었죠.
데이터베이스에 변경을 가하는 일, 소위 말하는 트랜젝션(Transaction) 기반으로 대부분의 상태 관리를 하는 경우에는 엔티티 변경 위주로 상태를 인식하기 쉽습니다. 시스템을 둘러싼 특정 사건 관점무료 카지노 게임 사고하는 방식과는 기준이 다른 사고법이라고 할 수 있습니다. 그래서, 이벤트를 활용한 설계를 할 때에는 비즈니스 흐름의 시작과 완결까지를 고려하는 사고 활동이 필요하다는 생각을 하게 됩니다.
글을 마무리하기 전에 약간 관점을 바꿔서 설명을 더해 보겠습니다. 다시 한번 <프로그래밍무료 카지노 게임 이벤트는 모듈화를 위해 도입한 개념을 보면, 동료의 메모무료 카지노 게임 사건을 마주하는 사람들의 인식이 중요하다고 강조하고 있었습니다.
그렇습니다. 이벤트의 발행 부분은 딱 그 책임에 충실(SRP 원칙과 연결할 수도 있습니다)하고 옵서버가 자신에게 주어진 책임을 수행하기 위한 부분이 제대로 할당되어야 합니다. 동료의 글은 사람의 인식을 다루지만, 프로그래밍무료 카지노 게임는 설계자(혹은 프로그래머)가 제대로 인식한 후에 컴포넌트(프로그래밍 덩어리)에 책임을 나누어 명료하게 배정해 주어야 하는 것이죠.
이 글을 쓸 즈음에 만났던 또 하나의 소소한 불편함도 방금 말한 사례와 연결할 수 있습니다. 공항무료 카지노 게임 비행기를 기다리는데 탑승구가 바뀌었다는 알림이 왔습니다. 그런데, 이미 열어 두었던 전자항공권의 탑승구는 그대로였습니다. 잘못 보았나 싶어서 알림을 열어 보니 10번으로 바뀌었다고 나옵니다. 혹시 새로 고침이 필요한가 싶어서 앱을 닫았다가 다시 열어서 항공권을 보았는데, 아직 바뀌지 않았습니다.
나중에 확인해 보니 상당한 시간이 소요되었습니다. 추측하건대 옵서버에 변경을 통지하는 방법의 정의와 구현에 개선의 여지가 있을 듯합니다.
(24회 이후 링크만 표시합니다.)
24. 관계(關係)라는 말과 연관(聯關)이라는 말의 차이
26. 모듈화: 다시 쓰는 동시에 유연성을 줄 수 있나?
28. UML 혹은 객체지향 관계 중 합성과 집합의 차이
29. 상태 관리에 대한 이해가 필요한 비대칭 분산 시스템
30. 복잡한 클래스를 엮어서 단순한 복합체를 만드는 OCP
31. 사건을 포착하여 객체로 만드는 이벤트에 대한 설명
32. UI 디자이너가 만든 기획서로 객체 지향 모델링하기
33. Domain-driven 업무 소통: 업무를 객체로
35. 온라인 카지노 게임 발생을 이벤트 정의와 발행으로
36. 사건이라는 개념을 프로그래밍 카지노 게임 사이트