본문 바로가기

분류 전체보기

이력 엔터티를 설계하는 10가지 방법 – 서론 이력 데이터에 대한 글을 계속 올리고 있는데요. 개요적인 내용은 소개했으니 다른 주제(식별자)로 넘어갈까를 좀 고민했습니다. 느끼신 분들이 있겠지만 엔터티나 관계 등과 같이요. 개인적으로 제가 책을 쓰면서 다른 책과 차별되도록 구성한 장이 정규화와 통합, 이력, 방법론 입니다. 얼마 전에 메일을 한통 받았는데 거의 정확하게 맞추신 분이 있습니다. 각 장의 특징을 조만간 올릴 생각입니다. 군더더기라 생각해서 책에는 생략을 했는데요. 이력 데이터 관리가 전략적인 장이라서 당분간 이력 엔터티 위주로 글을 올리겠습니다. 오늘은 이력 데이터를 관리할 수 있는 10가지 방법의 개략에 대해 쓰려고 합니다. 이 10가지 방법은 실무에서 자주 사용하는 방법을 제 나름대로 구분한 것인데요. 사실 내역 데이터 설계 방법까지.. 더보기
모델러의 주장(主張)과 커뮤니케이션 “그 모델은 내가 모델링한 게 아니야!” 제가 가끔 넋두리로 하는 말입니다. 누구나 다 제가 모델링한 것으로 알고 있는 A회사의 B영역 모델을 제가 모델링한 게 아니라고 말하면 어리둥절해합니다. 오늘은 ‘모델러의 주장(主張)’에 대한 얘기를 하려고 넋두리에 대한 일화를 꺼냈습니다. 본격적인 넋두리는 다음 기회에 하겠습니다. ㅎㅎ 저는 모델링을 하면 보통 제 주장의 70~80%를 관철하는 거 같습니다. 거의 100% 맞을 거 같은 사안 중에서요. 나머지 20~30%는 안타깝게도 상대방의 의견을 따릅니다. 위 문장은 많은 내용을 암시하고 있습니다. 어디서부터 설명해야 할지 모를 정도로 포괄적인 내용을요. 많은 암시 중에서 이 글에서는 '내가 생각하는 모델이 최선이 아닐 수 있다'는 것을 말하려고 합니다. 모.. 더보기
요구 사항에 대한 불편한 진실 요구 사항은 프로젝트의 근간이 되는 대단히 중요한 요소입니다. 그리고 모델링과 밀접하게 연관돼 있죠(요구 사항은 함수 종속과 밀접하게 연관돼 있습니다). 프로젝트는 보통 아래와 같이 진행됩니다. ① 단계에서 개념 모델 또는 초기 논리 모델이 나오고요. ② 단계에서 물리 모델이 나옵니다. 딱 떨어지진 않지만요… 요구 사항은 ①, ② 단계에서 대부분 도출돼야 하는데요. 실제로 ④ 단계에서 폭주합니다. 심리인 거 같아요. ㅎㅎ 홈쇼핑 마감 전에 주문이 폭주하는 거 같이… ④ 단계에서 요구 사항이 폭주하는 원인이 있습니다. 요구 사항은 일정 부분 도출하는 것인데요. 요구 사항을 도출할 수 있는 분석·설계자가 드문 게 현실입니다. 또한 분석·설계자가 도출하는 게 한계가 있습니다. 요구 사항은 근본적으로 사용자(U.. 더보기
[서평]명쾌한 이공계 글쓰기 명쾌한 이공계 글쓰기 김성우 | 제우미디어 | 20080325 평점 상세내용보기 | 리뷰 더 보기 | 관련 테마보기 개인적으로 제목이 마음에 안 들었지만 단지 두께가 얇아서 집어들었던 책이다. 서문과 목차를 보고 읽기를 결정하고 이틀 정도에 다 읽었다. 읽기 쉽다는 것이 가장 커다란 장점이다. 저자는 문장을 쉽게 쓴다. 읽으면서 계속 느낀 점이다. 화려하지 않은 쉬운 문장은 이공계뿐만이 아니라 누구나 본받을 만하다. 사실 제목이나 목차와는 달리(저자가 서문에서도 밝히긴 했지만) 글을 쓰는 요령이나 방법 자체보다는 주변적인 내용이 많다. 사고를 깊게 해야 한다는 점은 IT 종사자에게 중요한 점인 거 같다. 그래야 전문적인 내용을 쓸 수 있고, 쉽게 쓸 수 있다고 말한다. 쉬운 글을 쓰고 싶은 사람은 한번 .. 더보기
이력 엔터티 확정 절차 [그림1]은 이력 엔터티 확정 절차입니다. [그림1] 가장 먼저 해야 할 일은 이력 데이터를 관리해야 하는지를 분석하는 것입니다. 이력(지나간 과거) 데이터를 사용하는 업무가 없다면 이력 데이터 관리 요건은 없는 것입니다. 그냥 기존 데이터를 최신 데이터로 업데이트하면 끝입니다. 속 편하게 그냥 업데이트하고 싶지만 업무가 그렇게 간단하지 않습니다. 변경된 과거 데이터를 관리해야 하는지에 대해서는 현업의 의견이 가장 중요한 기준이 됩니다. 동종 업체의 업무를 참조할 수도 있고요. 현업의 판단이 이력 데이터는 필요 없다는 것이라도 모델러가 판단하기에 필요하다고 생각되면 이력 엔터티를 채택할 수도 있습니다. 당장에는 사용하지 않지만 이력 데이터를 쌓아 두면, 업데이트해서 이전 데이터를 없애는 대신 저장해서 새.. 더보기
이력 엔터티 판단 시점 2 이전 글에서 개념•논리•물리 모델링 단계의 구분 없이 엔터티를 정의하는 시점에 이력 데이터 관리도 같이 정의하는 것이 효율적이라 설명드렸는데요. 하지만 논리 모델링이 끝난 시점에 이력 관리를 한꺼번에 적용하는 것도 또 다른 방법입니다. 실무에서 자주 사용되는 편입니다. 이 방법의 장점은 본질 데이터를 먼저 완전하게 도출한 이후에 이력 데이터를 고려하므로 본질에 집중할 수 있다는 점입니다. 분리가 가져다주는 단순함은 또 다른 장점이고요. 초보 모델러에게 절차는 좋은 가이드가 되기도 합니다. 단점은 이전 글에서 설명했듯이 모델링 후반에 모델 구조가 변경될 수 있다는 점입니다. 또한 어떤 업무는 이력 엔터티를 설계하지 않고는 전체 모델에 대한 방향조차 잡기 힘들 수가 있습니다. 또 한가지 중요하게 고려할 점은.. 더보기
이력 엔터티 판단 시점 언제 이력 엔터티를 도출하는 것이 좋을까요? 개념 모델링 단계에서 시작해야 한다는 것이 제 생각입니다. 물론 핵심적이지 않은 엔터티는 논리 모델링 단계에 도출해도 됩니다. 본질 데이터를 먼저 확고히 해야 한다는 점만 주의하면, 개념 모델링 단계에서 이력 엔터티를 고려하는 것이 좋습니다. 실무에서는 일반적으로 이력 엔터티를 물리 모델링 단계에서 고려하는데요. 이력 데이터가 본질 데이터가 아니라서 뒷 단계에서 별도로 고려합니다. 하지만 이력 데이터 관리 방법에 따라 모델 구조가 바뀔 수 있어 후반에 별도의 타스크에서 고려하는 것은 바람직하지 않습니다. 핵심 엔터티의 구조가 후반에 바뀔수록 영향은 심각해집니다. 주요 엔터티는 본질이 정의되는 시점에 이력 데이터 관리 방안을 같이 논의하는 것이 현실적으로 효율적.. 더보기
어떤 데이터를 이력 데이터로 관리해야 하는가? 이력 데이터의 가장 커다란 특징은 변하는 데이터라는 것입니다. 따라서 이력 데이터를 관리하는 가장 중요한 기준은 어떤 데이터가 시간의 흐름에 따라 변할 수 있는지가 기본적인 기준이 됩니다. 시간이 흘러도 데이터가 변할 수 없다면 이력 관리 대상이 아닙니다. 그리고 특정 데이터의 과거 상태를 추적할 필요가 있으면 이력 데이터를 관리해야 하는 대상이 됩니다. 데이터가 변경됐지만 변경되기 전에 어떤 데이터였는지 관심이 없다면, 알아야 아무 도움이 되지 않는 데이터라면 이력 관리 대상이 아닙니다. 해당 데이터에 대해서 업데이트만 하면 되니까요. 물론 데이터의 과거 상태를 추적할 요건이 없더라도 시간이 흐름에 따라 데이터가 변할 수 있다면 이력을 관리할 수 있는 모델을 우선으로 고려하는 것이 좋습니다. 현업의 요.. 더보기
안나푸르나... 마차푸차레... 블로그에 이 글을 쓸까 고민하다 올립니다. 이거 재미 붙이면 블로그가 정체성을 잃어버릴 거 같은데요. ㅎㅎ 1995년. 호주와 뉴질랜드, 인도네시아, 태국, 인도, 네팔을 방랑했는데요. 그야말로 발길 가는 데로 갔죠. 국경을 함부로 넘나들다 다시 돌아가지 못해 생고생하던 때 우연히 안나푸르나를 가게 됐습니다. 그때 찍은 사진 몇장입니다. 오래전이라 선명도는 떨어집니다. 사진에서는 느낌이 안 사는데 발 밑 아래에 구름이 있습니다. 안개가 아니라 구름입니다. ㅎㅎ. 발 밑에서 올라와 나를 덮치고 산등성이로 올라가는 구름. 다시 느껴보고 싶네요. 멀리 산이 보입니다. 잘 안 보이는데 안나푸르나 같아요. 올라갈수록 잘 보입니다. 당연한가요? 저는 그때 신기했어요. 산에 올라갈수로 다가오는 게… 멀리 보이는 산이.. 더보기
선분 이력의 종료일자 이번 글에서는 종료일자에 대해 쓰려고 합니다. 선분 이력은 다 아실 것입니다. 자세한 내용은 제 책 등을 참고해 보시고요. 간단히 설명하면 선분 이력은 과거 특정 시점의 데이터를 조회하는 요건이 많을 때 채택하는 조회 성능을 고려한 방법입니다. 즉 성능 문제가 없다면 선분 이력을 채택하지 않아도 됩니다. 제 책에서 선분 이력을 설명한 목적이 두 가지가 있었습니다. 하나는 성능 이슈가 존재할 때 선분 이력을 정확하게 사용할 수 있도록 하는 것이고, 또 하나는 선분 이력의 남용을 방지하기 위해서입니다. 그런데 첫 번째 목적인 성능 문제에 대한 이슈가 최근에 있었는데요. 저 또한 Between 조회가 성능상 유리하다고 생각해 그렇게 썼는데요. Between 조회가 아니더라도 성능상 큰 문제가 없다고 주장한 블.. 더보기