DATOR


숨어 있는 주요 엔터티 찾기1 - 뭔가 부족한 느낌에서 출발 실전모델링


실전 모델링에서는 완성된 모델이라도 모델러가 다시 한번 검토해서 무엇인가 개선 필요성을 느끼는 것이 중요하다고 하였는데, 그 사례로 단 한 줄이기는 하지만 아래의 업무 기술서 내용을 모델링한 결과를 살펴보자.


조직은 조직별 직무를 가지고 있으며, 개인이 조직 내의 어떤 직무를 맡는지를 관리한다.


위 업무 기술서의 한 줄로 정리된 내용을 기반으로 관계의 기수성, 필수여부 등 상세한 업무 요건은 인터뷰를 통해 아래와 같은 모델을 완성하엿다. 조직, 직무, 개인 이라는 엔터티 명칭보다는 더 나은 명칭이 있을 수도 있겠지만 설명을 위해 그대로 사용하였다.


허전함을 느껴보자 - 엔터티의 추가_1.png


모델에서 더 개선했으면 하는 부분이 있는가? 또는 추가로 검토해서 모델에 반영했으면 하는 하는 부분이 있는가? 그런 것이 없다면 다시 한번 위 모델에서 말하는 제약사항을 둘러보자.


위 모델에서 가장 중요한 제약사항은 조직의 직무정보를 알 수 없거나 개인의 담당직무를 모르면 개인과 조직을 연결할 수 없는데 있다. 물론 어떤 특정한 상황에서는 직무정보나 담당직무를 항상 알 수 있겠지만, 대부분의 조직에서 그리고 다양한 현실적인 요건을 감안하여 모델러는 개인과 조직의 직접 관계의 필요성에 대해 의심해야 한다. 모든 조직에 대해 직무 정보를 파악할 수 있는지, 파악을 하더라도 개인이 담당하는 직무정보를 조직 정보를 입력하는 시기에 파악할 수 있는지를 질문하여야 한다. 적절한 시기에 정보를 파악할 수 없다면 아래와 같이 개인과 조직을 직접 연결해 주는 엔터티의 생성이 가장 좋은 방법일 것이다.


허전함을 느껴보자 - 엔터티의 추가.png


위 모델에서는 개인과 담당직무 간의 관계가 고용 엔터티를 통한 간접관계로 변경되었다. 이 의미는 고용 엔터티가 없이는 담당직무를 입력할 수 없다는 뜻이며 아마도 이런 업무 규칙이 더 바람직할 것이다. 만약 이런 업무 규칙이 존재하지 않는다면 모델러는 업무 규칙을 만드는 것이 더 좋지 않느냐는 질문이 필요할 것이다.


업무기술서에는 '고용'이라는 단어는 없었지만 모델링을 진행하다보면 위와 같이 뭔가 부족함을 느껴서 추가 인터뷰를 통해 새로운 엔터티의 추가는 자연스러운 것이며 권장할 만한 것이다. 만약, 모델러가 아쉬움을 느끼지 못해서 고용 엔터티를 추가하지 못했다면 영영 추가하지 못하는 상황이 될 가능성도 있고, 나중에 정규화 단계에서 바로잡을 수도 있다.

고용 엔터티가 없는 상태에서 모델링을 진행하다가 '조직입사일'이나 '현재직급' 과 같은 속성이 도출되었다면 아마도 우선은 담당직무 엔터티에 해당 컬럼을 할당하게 될 것이다. 그런데, '조직입사일'이나 '현재직급'은 담당직무 엔터티에는 종속성이 없으므로 별도로 '개인ID'와 '조직ID'가 식별자인 엔터티를 필요로 할 것으로 고용 엔터티를 도출할 수 있을 것이다. 그런데, 이렇게 필요한 엔터티가 정규화 단계에서 추가된다면 별 문제가 없다고 생각될 수 있지만, 주요 엔터티가 나중에 발견될수록 적지 않은 이슈가 발생할 수 있다. 큰 이슈 중의 하나는 주요 엔터티가 없는 상황에서 발생되는 크고 작은 혼동이다. 발견된 속성의 일부는 엔터티를 찾을 수 없을 것이며, 중간에 발견된 자식 엔터티는 잘못된 부모 엔터티와 관계를 맺고 있을 수도 있다. 또한, 나중에 발견된 주요 엔터티로 인해 모델러와 개발자가 공유해 왔던 TOBE 모델의 구조를 변경하는 것은 좋지 못한 상황이다. 따라서 정규화 단계에서 엔터티가 도출되는 것에 모델러는 너무 기대하지 말고, 주요 엔터티를 가능한 초반에 도출하여 모델에 표현하여 두고 모델러와 개발자가 조금씩 발전시키는 형태의 모델링이 되도록 노력해야 한다.


다시 원래의 논의 포인트로 돌아가서 왜 필요한 엔터티가 처음 그림에는 빠져있는지 그리고 그것을 어떻게 하면 빨리 찾을 수 있는지를 검토해 보자. 처음 그림에서 빠진 이유는 간단히 생각하면 업무기술서에서 '고용'이라는 단어가 없었기 때문으로, 아마도 이 단어가 있었다면 모델러는 인터뷰 시에 적절한 질문을 하여 바로 두번째 그림처럼 모델링을 할 수 있을 것이다. 그런데, 실제 프로젝트에서도 이와 같은 현상이 많이 일어날 수 있기 때문에 모델러는 업무기술서에 충실하게 작성한 모델이라도 다시 한번 검토해 보려는 노력이 필요하다.


어떤 포인트로 작성한 모델을 검토해야 하는지 검토 결과 부족한 부분을 어떻게 채울 수 있는지는 앞으로 논의하도록 하겠다.


TAG

Leave Comments