Sprint) DDD설계해보기

cch_chan·2022년 4월 7일
0

DevOps

목록 보기
12/19

코로나19 대응 지침을 따라, 각 팀의 업무 방식을 이해하고 도메인 주도로 환자 관리 정보시스템을 설계해야 합니다. 도메인 주도 설계 원칙을 기반으로 설계해보기

업무 개요

환자관리팀
재택치료제도를 통해 환자를 치료해야 합니다.
환자가 n일 이후에 격리해제 기준에 부합하는지 확인해야 합니다.
무증상이고, 호전되는 경우 격리 해제가 가능합니다.
유증상이고, 증상이 호전되지 않을 경우 PCR 검사를 다시 진행해야 합니다.

역학조사팀
전자출입명부 및 카드 승인 내역을 기반으로 확진자의 동선을 조사하고, 밀접 접촉자를 확인합니다.

격리관리팀
확진자에게 격리 및 격리 해제를 통지하고, 자가격리자가 격리 중에 있는지, 또는 격리 위반을 했는지 확인합니다.

진단검사운영팀
선별진료소를 운영하고 PCR 검사를 통해 확진 여부를 파악합니다.

<주요 용어>

1. 도메인 이벤트: 발생한 사건
2. 커맨드: 도메인 이벤트를 트리거하는 명령
3. 외부 시스템: 도메인 이벤트가 호출하거나 관계가 있는 레거시 또는 외부 시스템
4. 액터: 개인 또는 조직의 역할
5. 핫스팟: 의문사항, 결정하기 힘든 사항
6. 애그리거트: 도메인 이벤트와 커맨드가 처리하는 데이터, 상태가 변경되는 데이터
7. 정책: 이벤트 조건에 따라 진행되는 결정, “이벤트”가 발생할 때, “커맨드”를 실행한다
8. 정보: 액터에게 제공되는 데이터, 결정을 내리는데 영향을 주는 정보

<결과물>
바운디드 컨텍스트를 정의

context mapping

전체

후기)
DevOps 부트캠프에서 정해준 팀원들과 Miro를 사용하여 bounded context와 context mapping까지 짜보았다. 아무래도 처음 해보는 작업이고 사전 지식과 실제로 어떻게 도메인이 만들어지는지 실제로 어떤 방식으로 환자 관리 시스템이 돌아가는지 정확하게 아는게 없다보니 열심히 만들기는 했지만 논리적으로 안맞는 부분이 있을거라고 생각한다. 추가로 아직 느슨한 결합(비동기)에 중요성을 깨닫지 못해서 다 동기화 처리를 했었는데 지금 생각해보니 비동기로 돌려도 될만한게 보이는거 같다. 그럼에도 팀원들과 상의하면서 어떤 방식으로 도메인 주도적 설계(Domain-Driven Design)를 왜하는지 왜필요한지 생각해보며 어떤 방식으로 진행할지 고민도 해보고 서로의 의견을 말하며 재밌게 작성 했던거 같다.

profile
꾸준히 새로운 기술을 배워나가는중입니다.

0개의 댓글