1 국어사전 #
데이터 모델링을 잘 하려면 국어사전을 많이 보는 것이 도움이 된다. 왜냐하면 우리가 그냥 무심코 지나쳤던 단어들에 대한 깊은 생각을 할 수 있기 때문이다. 한참 모델링에 관심을 가졌을 때는 국어사전을 저녁에 국어사전을 펴 놓고 대화를 하거나 들으면서 그냥 지나쳤던 단어들을 찾아보았다. 생각보다 필자는 애매모호하게 알고 있는 것들이 많았다. 지금도 마찬가지지만.. 어쨌든 국어사전은 모델러에게는 큰 도움이 된다. 예전에 나의 팀장(이 팀장은 DB를 거의 몰랐다)이었던 사람은 시시콜콜하게 따지고 들어가면서 인터넷을 뒤지고 있는 나를 보고 '국어사전 하나 사라~'고 했고, 나는 '아하! 그러면 되지!' 하고 샀다. 그랬더니 팀장이란 사람은 이상한 눈으로 나를 보면서 '진짜 샀냐? 영어사전 사는 사람은 봐도 국어사전 사는 사람을 본 것은 너가 처음이다' 라고 했다. 그런가?
2 유저(User) #
예를 들어, 게임계에서 아주 잘 사용하는 ‘유저(user, 이용자)’라는 단어를 생각해보면 우리가 얼마나 그냥 지나쳤었는지 알 수 있다. 네이버 국어 사전에는 ‘이용자’의 뜻이 다음과 같이 나와 있다.
[명사]어떤 물건이나 시설, 서비스 따위를 이용하는 사람.
휴대폰 이용자
백화점 이용자
컴퓨터 통신의 이용자가 급격히 늘고 있다.
단어의 뜻을 잘 살펴보면 ‘이용한다’는 뜻과 ‘사람’이라는 뜻이 합쳐진 것을 볼 수 있다. ‘이용한다’는 동사이고, ‘사람’은 명사이다. 이것만 보아도 ‘이용자’는 개체집합이 아닌 관계라는 것을 알 수 있다. 만약 사람이 게임을 이용한다면 아마도 다음과 같이 ‘사람’은 ‘고객’이 될 것이고, ‘이용자’는 관계가 될 것이다. 게임 말고도 게시판 등의 제공되는 서비스를 이용하는 사람도 있다면 다음과 같은 모델이 될 것이다.
그럼 ‘이용자’는 관계라는 것을 알았다. 관계는 실제로 다음과 같이 나타낼 수 있다. (개체만 집합이 아니다. 관계도 집합이다.)
일반적으로 설계된 것을 보면 테이블의 이름이 ‘User’ 또는 ‘Member’라는 단어가 들어가 있는 것을 볼 수 있다. Member는 ‘어떤 단체를 구성하는 일원’이다. 즉, ‘Member’는 그 의미의 범위가 매우 좁다. 그러므로 ‘Member’라는 단어는 고객이 어떤 동호회에 가입되었을 때의 관계가 Member가 되어야 하는 것이 옳다고 볼 수 있다.
여기서 말하는 ‘회원’이 많은 곳에서 볼 수 있는 ‘가입자’라고 보아도 무관하다. 하지만 동호회의 ‘가입자’보다는 ‘회원’이 의미 전달이 더욱 좋다. (모델은 의사소통의 수단이다.) 우리가 알고 있던 ‘
UserID’와 ‘
MemberID’가 어떻게 해서 탄생되어야 한다는 것을 아는 것은 매우 중요하다. 왜냐하면 ‘고객’은 모델러에게는 가장 중요한 개체집합이고, 기업 경영의 의사결정에 있어서 가장 중심이 되는 중요한 요소이기 때문이다.