본문 바로가기
모델링/논리 모델링

[논리모델링연습] DA 공모대회 2018년 학생부 대상작 ERD 분석

by 연습장이 2023. 8. 19.
728x90
반응형

  요구사항명세서를 보고 ERD를 직접 그려보는 것도 중요하지만, 잘하는 사람은 어떻게 했는지 분석하는 것 또한 중요하다고 생각한다. 그래서 직접 대상작을 한땀 한땀 그려가보면서 어떤 의도로 이렇게 그렸는지, 왜 이렇게 통합했는지 등을 분석하고자 그려봤다.

ERD 분석

  • 엔터티 정의
    • 정보시스템개체 엔터티에 대해 통합을 아주 잘했다. 로직에 가장 필요한 테이블, 컬럼을 제외하고 나머지 불필요하거나 비중이 덜한 부분은 한번에 통합해서 선택과 집중을 잘했다는 느낌이 든다.
    • 스크립트 엔터티 또한 통합을 아주 깔끔하게 잘했다. 자칫하면 더러워지거나 지저분할 수 있는 부분이었는데 과연 대상작이구나 싶었다.
    • 테이블매핑이나 컬럼매핑 또한 깔끔하다. 필자는 이 부분을 어떻게 했는지가 제일 궁금했는데 굉장히 확장성 있으면서도 유연성 있다고 느꼈다.
    • 필자가 개인 답안을 그리면서 로직을 명확히 이해할 수 없어 긴가민가 했던 부분이 코드셋 엔터티 선언 부분이었는데 대상작을 보니 이런 로직이었구나 하는 생각이 들었다.
    • 컬럼매핑 로직에서 코드와의 매핑 변환 로직을 어떻게 표현할지 궁금했는데 이 부분 또한 깔끔했다.
  • 속성 정의
    • 검증결과 엔터티의 검증유형 서브타입에 제시문에 나와 있지 않은 코드검증이나 유일성검증 부분도 추가한 것을 보고 실무에서 어느 정도 이상 경험하신 분이 작성하였구나 하는 생각이 들었다. 실제 마이그 작업할 때도 해당 검증은 필요했었다.
  • 관계 정의
    • 공통코드의 경우 대상작은 재귀로 풀어내지 않았을까 궁금했는데 나와 같이 따로 관계엔터티를 빼서 로직을 정의하였다. 근데 나보다 더 명확하고 확장성 있게 정의한 부분에서 한번 더 놀라웠다.
    • JOB상세 엔터티와 JOB실행 엔터티가 다대다 관계인데 주식별자를 보면 동일하다. 주식별자를 누락했거나 관계 정의가 1:1이 되는게 맞는거 같은데 샘플 데이터를 예상 해보거나 로직을 생각해보면 오타가 아닐까 싶다.
    • JOB, JOB상세, 스크립트 엔터티가 필수 관계로 엮였다. JOB이 생성되고 스크립트가 생성되면 반드시 JOB이 수행되어야 한다는건데, 만들었다가 아니다 안해야지 할 수도 있지 않을까? 즉, 모든 스크립트가 반드시 JOB수행으로 만들어졌어도, JOB수행은 하지 않았을 거란 생각이 드는데 이 부분은 좀 더 고민이 필요하다.
    • 테이블이나 컬럼매핑 부분에서도 필수관계가 자주 보였는데 매핑을 정의하였지만 모든 오브젝트(테이블, 컬럼)가 매핑대상이 아니지는 않을까? 아니면 테이블 엔터티와 컬럼 엔터티에는 무조건 매핑 대상만 관리하겠다는 뜻인걸까? 그러면 말이 된다. 그게 아니면 필수 관계가 아니라 선택관계가 맞지 않을까 생각한다.

총평

  이 대상작을 제대로 훑어보고 든 생각은 아래와 같았다.

 

과연 대상작은 아무나 하는게 아니구나!

 

정말 깔끔했고 정말 통합을 잘했지만 로직이 분명하고 무엇을 표현하고 싶은지도 알겠고 엔터티 정의도 컬럼 구성과 잘 매칭이 되어 깔끔하고 엔터티명 선정도 가시성이 좋았다. 덕분에 식견이 한 층 더 늘어난 기분이 들어 쓰는 동안에는 손가락 근육이 아팠지만 다 쓰고 나서 아주 만족스러웠다.

728x90
반응형