blo9.com

UML 작성에서 항상 헷갈리는 것

양주일 2006. 8. 4. 08:51
요즘엔 프로그램을 짜기 보다는 설계 중심으로 팀원과 대화하는 업무가 많은데, 이때 UML을 사용하곤 한다. 그것이 아주 표준화된 UML 방식이라기 보다는 스케치북에 내 마음대로 UML을 그린다. 뭐 결국 대화를 위해서만 사용하는 다이어그램이기에 표준에 맞지 않더라도 의미가 통해서 제대로 된 구현만 가능하면 되기 때문이다.



UML, 실전에서는 이것만 쓴다





로버트 C. 마틴 / 인사이트

[전문가 서평]또 UML 책인가? 이 책은 UML을 공부하려는 사람을 위한 책이 아니다. 이 책은 UML을 사용하려는 사람을 위한 책이다. 이 책의 철학에 그나마 가까운 UML 서적을 꼽는다면 마틴 파울러가 쓴 'UML Dis...



하지만 업무가 증가하면서 다른 부서의 개발자(우리팀이 사용하는 언어가 아닌)와 의사소통을 해야 하는 경우도 생기면서, 좀 더 표준화된 UML에 대한 공부가 필요했고 'UML 실전에서는 이것만 쓴다'라는 책을 구매했다. 전에 UML Distilled란 책을 보긴 했지만 너무 매뉴얼 같아서 그림 위주로만 외웠었다. 지금 앞부분만 봐서 아직은 모르겠는데, 내가 원하는 실무에 가까운 예제들이 이 책엔 들어있을까? 평소 '내가 생각하는 것을 다른 개발자에게 전달할 수 있으면 그걸로 족하다'는 생각을 갖고 있으나, 표준화된 UML 방식을 다시 고민하면서 내가 가장 헷갈리는 것 중에 하나는 바로 이것

inheritance diagram [그림 1] 제대로 된 상속관계

위 다이어그램은 Animal is Dog, 즉 '개는 동물이다'를 설명한다. 헌데 나는 항상 이 관계를 다음과 같이 그려왔다.

Uml2 [그림 2] 내가 생각하는 상속의 관계(틀린 표현)

관계를 역전해서 잘못 표현하는 대표적인 사례이다. 하지만 나는 상속의 관계에 있어서 부모클래스가 자식에게 나눠준다는 개념으로 그렸었다. 다시금 이 문제를 고민해보고 있는데, 이것은 동양적 사고와 서양적 사고의 차이에서 기인하는게 아닐까 싶다.

동양에서는 '우리'가 기본이 되고 큰 범주(상위 카테고리)를 중심으로 사고한다. 서양은 기본 단위가 '개인'인 것 같은데, '나'를 기본으로 생각이 시작된다. 이런 논리로 따지고 들면 UML 표기법에서의 상속 관계는 이해할 수 있다.

하지만 자꾸 반대로 쓰고 싶은 욕심은 쉽게 버릴 수가 없네...