본문 바로가기

Project

개념적 무결성 , 개념적 일관성?

맨먼스의 미신를 보며 떠오른 의문이다.

 개념적 무결성(일관성)을 위해서는 소수가 결정해야 한다:

프로젝트의 개념적 일관성을 유지하기 위해서는 단 한 명의 설계자(또는 소소의 아키텍처 팀)가 프로젝트를 실제 구현하는 팀과는 완전히 별개 차원에서 아키텍처의 통일성에 관한 결정을 내릴 수 있어야 한다는 것이다.

맨먼스의 미신(The mythical man-month)에서


라고 언급하며 그 뒷부분에는 매킨토시의 인터페이스의 일관성에 대해 언급을하는데,
이 둘은 같은 뜻이였던가?-_-

 먼저 맥의 인터페이스의 일관성과 프로젝트의 개념적 일관성은 예전에 일관성에 대해 쓴 글
에서 언급한 내적일관성 외적일관성과 같은 말인듯하다.
 아마 저 글을 쓴 당시에는 구분하진 않고 저렇게 대략 개념적으로만 같다고 생각한듯.

 무결성과 일관성에 대해 생각해보면 ,무결성은 보통 데이타 베이스에서 자주 사용되는 단어인데
그곳에서도 자주 둘사이를 동시에 언급한다.

하지만 조금미묘하게 틀린부분이 있는데 잠금 메커니즘에 대해 설명한 글을 인용하자면 ,
일관성(Consistency) : 사용자가 조회 또는 변경하는 데이터는 그 작업을 마칠 때까지 다른 사용자에 의해서 변경되지 못하게 한다.

무결성(Integrity) : 데이터베이스의 데이터와 구조는 변경된 순서대로 전체 데이터베이스에 적용된다.

 이것을 프로젝트의 개념적 일관성과 무결성으로 바꾸자면,
일관성(Consistency) : 시스템을 구현하는 기능의 의미는 처음 시스템의 목적이 바뀌기 전까지 다른 시스템의 각부에서도 같은 의미이어야 한다.

무결성(Integrity) : 시스템의 기능의 의미가 바뀐다면 그 바뀐 기능과 관련된 다른 부분에서도  똑같이 적용되어야한다.
라고 바꿀수 있지 않을까?

다시 생각해봐도 조금 애매한 문제다.