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