본문 바로가기

분류 전체보기

복합어에 대한 상념(想念) 복합어를 사용하는 이유는 크게 두 가지입니다. 첫째, 관용화된 용어를 사용하기 위해서입니다. 대상이 많지는 않지만 단어와 단어가 합쳐져서 뉘앙스가 달라지는 경우가 있습니다. 용어에 민감한 사람들은 이를 관리하고 싶어 합니다. 여기서, ‘용어’란 주로 영문 단어를 의미할 것입니다. 한글 단어 조합의 의미를 따지기도 하지만 주로 영문 조합의 의미를 따집니다. 예를 들어, 부가가치세는 ‘부가+가치+세’이지만 영문은 ‘VAT’로 쓰는 게 명확하다는 것이죠. 복합어를 사용하는 둘째 이유는 영문(컬럼 명)의 길이가 길어지는 것을 막기 위해서입니다. ‘부가가치세’를 복합어로 만들지 않으면 영문이 ‘VL_AD_TX’ 정도가 됩니다. 단어별로 두 자리의 약어를 사용해도 8자리가 되죠. 이를 복합어로 만들어 ‘VAT’로 .. 더보기
외부에서 받은 코드 값만 관리할 때 외부에서 받은 코드를 관리할 때, 코드 값에 대한 명(名)을 알 필요가 없다면 통합코드 엔터티에서 관리하지 않고 속성에서 값만 관리하며 속성 명은 ‘~코드값’으로 정한다. 외부에서 데이터를 받을 때, ‘01’ 등의 코드가 포함됐지만 해당 값이 무엇을 의미하는지, 즉 코드명을 알 필요가 없을 때가 있다. 이때는 해당 코드를 통합코드 엔터티에 등록하지 않는다. 코드 형태라고 모두 통합코드 엔터티에서 관리하는 것은 아니다. [그림1] 교육과정 엔터티는 외부에서 받은 교육 과정 정보를 관리하는 엔터티다. [그림1] 교육 기관을 의미하는 교육기관코드에 대해서 ‘01’ 등의 값을 받지만 해당 값이 무엇을 의미하는지, 즉 ‘A기관’인지 ‘B기관’인지 알 수가 없다. 이는 해당 코드명이 사용되지 않는다는 것이다. 이렇.. 더보기
어제와 똑같이 살면서... 어제와 똑같이 살면서 다른 미래를 기대하는 것은 정신병 초기증세다.-아인슈타인 더보기
외부 코드를 내부 코드에 통합하는 방법 외부 코드를 내부 코드와 통합 관리할 때, 외부에서 받은 코드 값을 그대로 사용하지 않아도 된다면 외부 코드 값을 내부 코드 표준에 맞게 관리한다. 외부 기관과 데이터를 주고받을 때, 외부 기관에서 정한 코드 값이 데이터에 포함되는 경우가 많다. 이때 외부 코드 값이 많이 사용되지 않고 간혹 사용된다면 외부 코드를 내부 코드 표준에 맞게 통합 관리할 수 있다. [그림1] 모델은 코드를 관리하는 일반적인 모델에, 외부 코드를 관리할 수 있도록 설계한 모델이다. [그림1] 외부에서 받은 코드 값은 ‘KOR’이지만 내부에서는 ‘01’ 등 내부 표준을 정해 관리한다면, 통합코드 엔터티의 외부코드값 속성에는 ‘KOR’ 값으로 관리하고, 통합코드번호 속성에는 내부 표준에 맞춰서 ‘01’로 관리한다. 외부에서 받은 .. 더보기
내부 코드 통합 엔터티 내부에서 생성하는 일반 코드는 코드별 개별 코드 엔터티로 설계하지 않고 하나의 통합 코드 엔터티를 설계해서 통합 관리한다. 예를 들어 관리하려는 데이터가 개인, 법인 등의 고객 유형을 나타내면 이는 코드 성격의 데이터다. 이 코드 인스턴스를 관리하기 위해 엔터티를 설계할 때, 고객유형만을 관리하는 엔터티를 설계하는 것이 아니라 [그림1] 모델처럼 다른 유형의 코드까지 관리하는 엔터티를 설계해서 모든 내부 코드를 통합 관리하도록 한다. [그림1] 코드 성격의 데이터는 해당하는 인스턴스를 별도의 시스템에서 관리하는 게 일반적이다. 코드를 통합 관리하는 시스템에서 코드 인스턴스를 등록하고, 등록된 코드 인스턴스를 업무 시스템에서 사용하는데, 업무 시스템에서 사용할 엔터티가 [그림1] 모델과 같다. 코드유형 엔.. 더보기
뉴질랜드 남섬 여행 개략 뉴질랜드를 떠나기 전 마지막 방학이라 올 1월에 남섬 여행을 했습니다.언제 자세히 쓸지 모르겠지만, 늦기 전에 개략적으로 공유하겠습니다. 11살 14살이 있는 4인 가족이에요.21박 22일었고 총 이동 거리는 6500km 정도였어요.텐트에서 자고 비용이 드는 액티비티 하지 않았기 때문에 비교적 저렴하게 다녀왔습니다.그래도 남섬 여행의 최대 단점은 비용 같아요. 2주 계획이었던 여행이 예기치 않게 3주가 됐는데, 2주였으면 매우 짧을 뻔했습니다.차를 가지고 타우랑가를 출발해서 네이피어를 거처 웰링턴에서 픽턴행 배를 탔습니다. 해안을 달리면서 쉬고 싶을 때 편하게 시계 방향으로 돌 계획을 했습니다.하루에 300km 정도 이동하는 것으로 정했고요. 그런데 계획 중에 큰지진이 나서 카이코우라 가는 길이 폐쇄됐었.. 더보기
테이블 명을 정하는 방법 엔터티 명을 정하는 것은 사실 매우 어렵습니다. 상황에 맞는 수 많은 방법을 정해 놓고 따라야 해서 쉽지 않습니다. 그래서 논란이 많은 부분이기도 합니다. 엔터티 명만 정말 잘 정해도 좋은 모델러라고 할 수 있습니다. 반면에 테이블 명을 정하는 방법은 간단합니다. 대개 두 가지 방법 중에서 하나를 택해서 사용합니다. 방법을 결정하는 것은 대개 DBA가 합니다. 테이블 명은 DB 오브젝트에 포함되는데 전체 오브젝트를 감안해야 하기 때문에 DBA가 큰 틀을 정하는 것이죠. 차세대 프로젝트에서도 대개 DBA 쪽에서 테이블 명을 정하는 규칙을 정합니다. 이 과정에서 DA나 모델러에게 조언을 구하기도 하지만, 그렇지 않은 경우도 많죠. 테이블 명을 정하는 방법은 크게 두 가지입니다. 하나는 영역별 번호를 사용하는.. 더보기
개별 엔터티로 설계해야 하는 코드 엔터티의 하나의 인스턴스가 개별 개체를 의미하지 않고 개별 개체를 묶은 개념이더라도 명(名) 외의 다른 속성도 관리해야 한다면, 코드 속성으로 설계하지 않고 개별 엔터티로 설계한다. 즉 개별 개체를 묶은 개념이라도 고유 속성이 필요하다면 엔터티로 설계한다. 만약 종합카드/체크카드/신용카드/신탁통장 등 거래 매체의 유형을 관리한다면, 데이터가 개별 개체가 아니라 묶은 개념인 유형을 의미하므로 코드 속성으로 설계해야 한다. 하지만 재발급기간, 발급가능고객종류 등과 같이 매체 유형에 따라 관리해야 할 속성이 존재한다면 [그림 거래매체유형] 거래매체유형 엔터티처럼 별도의 엔터티로 설계한다. [그림 거래매체유형] 해당 매체 유형의 재발급 기간을 관리해야 한다면 속성이 필요한 것이어서 위와 같이 엔터티로 설계할 수.. 더보기
[서평] 이창호의 부득탐승/이창호/라이프맵/2011년 조훈현의 자서전을 읽으면서 궁금하지 않을 수 없는 게 이창호의 자서전이다. 이창호란 개인의 궁금함을 떠나 조훈현과의 관계에 대한 궁금증에서 읽게 된 책이다. 물론 이창호가 왜 돌부처가 됐는지도 궁금했다. 이창호의 부득탐승/이창호/라이프맵/2011년 이창호를 잘 안다고 생각한 나의 기대와 달리 프롤로그를 읽을 때의 기분은 묘했다. 어눌한 글이어야 하는데, 어정쩡하게 어눌했다. 첫인상은 좋지 않았다. 가볍게 읽을 생각이었는데, 다 읽고 난 후에 이렇게 서평을 쓰고 있다. 예상했던 대로 여러가지 면에서 나와 닮았다. 과묵, 조심, 책임감, 신중, 어눌, 무심, 단순, 두통 등등 유사한 류(流)다. 어떻게 민첩한 스승과 한 집에서 살 수 있었을까? 조훈현은 얼마나 답답했을까? 그래도 최고수끼리는 통하는 데가 있.. 더보기
코드로 설계 or 엔터티로 설계 엔터티의 인스턴스가 개별 개체를 의미하면 코드 속성으로 설계하지 않고 엔터티로 설계한다. 개별 개체를 의미한다는 것은 묶이기 전, 변형되기 전의 순수 데이터를 의미한다. 예를 들어 국가 집합에 속한 인스턴스가 대한민국, 호주, 일본 등이라면 각각은 개별 개체를 의미하기 때문에 엔터티로 설계한다. 만약 외국인 고객을 관리하는 엔터티에서 해당 고객의 국적을 관리한다면 [그림1] 모델처럼 국가 엔터티를 별도로 설계하여 외국인고객 엔터티와 관계선을 표현한다. [그림1] 위와 같이 개별 개체를 의미하는 국가를 엔터티로 설계해서 관리하지 않고, [그림2] 모델과 유사하게 국가 엔터티 없이 통합 코드 엔터티나 별도의 시스템에서 관리하는 국가코드 속성으로 설계하는 것은 바람직하지 않다. [그림2] 국가 데이터는 데이터.. 더보기