본문 바로가기

데이터 Story/데이터 상념(想念)

액셀과 사례 데이터

이번 주에 기준 엔터티를 설계할 때의 일입니다.

 

보통은 머리 속에서 데이터 생성하면서 엔터티를 설계합니다.

설계한 후에 맞는지 머리 속에서 다시 데이터 생성해 보고요.

이상하면 엔터티 다시 설계하고, 또 데이터 생성해 봅니다.

이걸 저는 수읽기라고 합니다.

 

바둑을 아시면 금방 이해하실 거에요.

내가 여기에 두면 상대는 어디다 둘 거고, 그럼 나는 또 어디에 두고, 상대는 어디에 둘거다를 머리 속에서 둬보는 것이죠.

내가 둘 수 밖에 없는 곳, 또는 가장 유리한 곳을 찾은 후에 상대의 입장에서도 그 곳을 찾는 게 수읽기입니다.

프로기사는 50수 정도 수읽기를 한다고 해요.

보통 1분 내에 한 수를 둬야 하니까 엄청난 속도입니다.

 

여담이지만 알파고는 이 수읽기를 50수 정도 한 게 아니고 바둑 끝까지 한 것입니다.

쉽게 얘기하면 혼자 끝까지 둬보고 계가까지 한 후에 지지 않을 수를 선택하는 식이죠.

그래서 끝까지 둬보고 계산해보기 없기라는 규칙이 있어야 된다고 생각해요.

인간이야 그게 능력이지만, 기계는 성능일 뿐이죠.

일대일 대결도 아니었고, 알파고와의 대결은 불공정한 게임이었다는 게 저의 위안거리입니다.

 

어쨌든 이번에 기준 엔터티를 설계할 때, 머리 속에서 데이터가 생성이 안 됐습니다.

몇 발자국 못 가서 데이터가 없어지고 하는 식이어서 설계를 못했습니다.

최근에는 없었던 일인데, 이제 수읽기가 벅찬 게 아닌가 하는 생각이 들었어요.

 

바둑은 의외로 체력이 승부를 가르기도 합니다.

얼마 전 소개해 드렸던 조치훈의 교통사고 후 대국은, 전문가라면 말도 안 되는 일이라고 생각할 대국이었죠.

어쨌든 수읽기는 엄청난 체력을 소모해요.

 

그리고 나이와도 연관됩니다.

슬프지만 40~50대 기사가 정상에 오르는 경우는 없고요.

세계 1위 기사가 40대까지 정상을 유지하는 경우도 없습니다.

이창호가 30대를 지나면서 평범한 기사가 된 게, 어쩔 수 없는 슬픈 현실입니다.

 

바둑을 조금 아는 제가 느낀 게 이런 거였습니다.

체력을 소모할 정도의 수읽기가 필요한 것은 아니라서 체력과는 크게 상관이 없는데, 나이가 들면서 둔해진 거 같은 느낌이 들었어요.

그렇다고 제 나이가 그렇게 많지는 않습니다.

 

이번에 설계한 기준 엔터티는 조건이 포함돼 다소 까다롭긴 했지만, 수읽기는 완전 실패했고요.

대신 액셀에 사례 데이터를 만들면서 엔터티를 설계했습니다.

데이터를 먼저 설계하면서 엔터티를 확정하는 식인데, 사실상 액셀에서 설계하는 방식입니다.

 

저는 액셀에 사례 데이터를 만들어서 자주 사용하는데요.

설명이 쉽게 되진 않는데, 이번처럼 먼저 액셀에 사례 데이터를 생성하면서 설계를 하는 경우가 있습니다.

사실상 액셀에서 설계가 끝나는 것이고 ERD에는 엔터티를 그리는 것인데요.

바둑 때문에 수읽기가 정확한 편이라서 액셀에서 먼저 설계하는 경우는 드물고, 대개는 머리 속에서 사례 데이터 생성시키면서 엔터티 설계를 합니다.

 

대부분은 엔터티를 설계하고, 그 데이터를 보여주기 위해 액셀에 사례 데이터를 만듭니다.

기준 엔터티는 사례 데이터만 보여주는 끝이라서, 설명을 쉽게 하기 위해서 사례 데이터를 만드는 것이죠.

 

어쨌든 사례 데이터는 반드시 작성해 보는 게 좋습니다.

데이터를 머리 속에서만 생성해 보면 오류가 많습니다.

확신을 위해서라도 사례 데이터 작성을 추천합니다.

 

개인적으로 설계할 때 액셀을 많이 사용하는데요.

크게 두 가지인데, 위에서 설명한 기준 엔터티에 대한 사례 데이터를 작성할 때 액셀을 사용하고요.

더 자주 사용하는 것은 엔터티를 통합할 때입니다.

통합할 때는 ERD로 작업하지 않습니다.

 

여러 유사한 엔터티를 통합하는 일반화(Generalization) 작업이나, 한 엔터티에서 서브타입 엔터티를 도출하는 상세화(Specialization) 작업을 액셀로 합니다.

전체 속성을 대상으로 분석해야 실제적인 서브타입 개념과 서브타입 엔터티를 잘 반영한다고 생각해서 이렇게 작업합니다.

물론 상향식(Bottom-up) 방법이라 가능한 것입니다.

액셀을 사용하는 자세한 방법은 나중에 설명하겠습니다.

 

엔터티 통합 작업과 기준 엔터티 작업에서 액셀을 사용하니, 모델링할 때 액셀을 많이 사용하는 편입니다.

ERWin이나 DA#으로만 설계하는 것은 한계가 있으니 액셀도 많이 활용해 보세요.

 

중요한 것은 반드시 사례 데이터를 작성해 봐야 한다는 것입니다.

머리 속에서만 생각해 보면 오류도 많고, 잘못된 데이터를 찾아내기 힘듭니다.

특히 나는 죽어도 맞는 거 같은데 상대는 틀리다고 말할 때, 반드시 작성해 보세요.

전문 모델러일수록 사례 데이터 생성을 습관화해야 합니다.