도메인 설계와 시뮬레이션

Jin·2022년 8월 3일

도메인 설계를 진행했다. 용어 정리를 하고, 사용자가 어떤 일을 겪을지 시뮬레이션해서 시나리오를 작성했다.

생각보다 진행이 잘 되진 않았다. 벌써 몇일째 겪는 어려움이었다. 시나리오 작성에서의 어려움은, 왜 하는지를 이해하지 못한 것이었다. 내가 설계한 것이 문제가 있다는 피드백을 받았지만, 뭔가 잘못되었다는 것을 알았을 뿐, 거시적인 목표와 정답을 알지 못하기에 답답함이 생겼다.

변화가 조금 생기기 시작한것은, 친구 초대를 생각하면서였다. 시뮬레이션을 해보니, 초대받은 친구가 추천인의 아이디를 받아야 할지 이메일을 받아야 할 지 부터 의문이 생겼다. 도메인 상의 지식은 초대한 사람과 초대받은 사람 모두 포인트를 얻는다였는데, 이 지식이 구현으로 어떻게 적용될지에 대한 시뮬레이션이 안됐던 것이다. 시뮬레이션을 통해서 구현에 앞서 발견하는 부분이 분명히 있다는 것을 알게 되었다.

시나리오 작성의 방향과 목적을 다시 한 번 상기하기 위해서, 도메인 주도 설계를 다시 읽었다. 1, 2, 3장을 다시 읽었다. PCB 예제, 운항 예제도 유심하게 살펴보았다. 핵심적인 내용으로 다가왔던것은 '학습'이었다.

예제에서 학습은 다양하게 일어났다. 도메인 모델에서 어떤 부분이 필요하지 않은 부분인지, 구현 하기 너무 복잡한 것은 무엇인지 등이 시간이 지나면서 분명해졌다.

나도 그렇게 해야한다. 도메인 지식을 구현을 위한 정도로 구체화하고 정제해가면서, 무엇이 중하고, 무엇이 모호한지를 학습해야 한다. 그리고 분명하게 만들어야 한다.

책에 나온 것처럼 코드는 지식을 옮겨 놓은 것에 지나지 않는다. 도메인 지식은 그대로는 너무 모호한 경우가 많기 때문에, 구현할 수 있을 정도로 자세하게 만들어야 한다. 그리고 우리에게 중요한 부분만을 선택해서 그렇게 해야한다. 도메인 모델이 그 결과물이다.

0개의 댓글