반응형

혼자만의 잡다한 생각

META가 필요한 이유...?!

 

'프로젝트를 진행하며, 본인이 생각하는 개념을 정리한 글입니다.

                                                   사전적인 의미를 정의하고 있지는 않습니다.'

 

차세대 프로젝트를 하고있다.

그런데, 특이하게도 '모델'은 '비표준'이고, 인터페이스를 위한 '전문'만 '표준'을 지킨다고 한다.

※ 여기서 '표준'이라 하면 META표준용어를 의미한다.

 

차세대는 말그대로 다음 세대를 위해 시스템을 대대적으로 개편하는 프로젝트이다.

새로운 F/W과 Architecture를 도입하고, 관리의 효용성을 높이기 위한 여러가지 작업을을 진행한다.

나는... 개인적으로 그 중심에 'META표준'이 있다고 생각한다.

※ META표준은 META시스템에서 관리하는 여러가지 표준을 의미한다.

 

META시스템에서는 단어/용어 및 모델 등, 프로젝트에서 필요한 정보들을 관리한다.

여기서 '표준'이라 하면, 나는 '기준'이라고 말하고 싶다.

 

어떤 일을 함에 있어 기준점은 반드시 있어야 한다.

의사결정을 하기 위해서도 명확한 기준점이 필요하다.

이러한 '기준'을 정의하는 시스템이 META시스템이라고 생각한다.

 

예를들어, '직원'이 있다고 해보자.

이 '직원'을 표현하는 단어는 무수히 많이 있다. (업종에 따라 호칭이 달라질 수 있다.)

- 사원, 직원, 행원, 조합원, 계원 등등...

은행의 경우, '직원', '사원', '행원'등의 표현을 사용한다.

물론, 이런 단순한 단어는 쉽게 판별이 가능해서 혼선이 없지만...

"DTO, Bean, 파라미터, OMM, I/O" 이런 전문용어들이라면 어떨까.?

위 열거한 용어는 동일하진 않지만, 의미상 파라미터를 전달하는 객체와 관련된 용어들이다.서로 이해도가 다르기 때문에, 각자 생각한 느낌대로 용어를 사용한다면, 정확한 의사전달이 되지 않을 수 있다.이를 보완하기 위해 표준용어(기준이 되는 용어)를 정의하는 것이다.

 

※ META시스템에 자세한 내용은 다른 장을 통해 이야기해보도록 하겠습니다.

 

그런데, 비표준( 표준을 정의하지 않음 )으로 프로젝트를 한다면 어떨까?

A라는 사람은 '직원'으로 화면과 테이블을 설계/개발할 것이고,

B라는 사람은 '행원'으로 화면과 테이블을 설계/개발할 것이다.

테이블의 컬럼도 A는 10자리로 B는 20자리로 할 수도 있다.

왜? 기준이 없기 때문이다.

 

프로젝트가 끝났다고 가정하자!

그리고, 내가 인수받는 고객사의 운영담당 직원이다.

그러면, 당신은 인수 싸인을 할 것인가?

 

A가만든 테이블의 컬럼은 "직원(10)"이고 B가 만든 테이블의 컬럼은 "행원(20)"이다.

화면에 데이터를 보여주기 위해 조회하는데...

  1) 화면은 '사원'으로 되어 있고,

  2) 전문에는 '행원(20)'으로 되어 있고,

  3) 쿼리는 두 테이블을 Join하다보니 "직원 = 행원"으로 되어 있다.

     ( 자리수 등은 Varchar이면 문제없고, 무엇보다 예시이니 무시하자! )

 

'나'라면... 인수 싸인을 안 할것 같다.

그런데, 프로젝트 제안이 '비표준'으로 진행되었다면....?

 

 

최근 10년간 내가 경험했던 4~5번의 차세대는 모두 META표준을 도입했다.

그런데, 이번은 소위 '반'표준이다.

쿼리를 짤때, 파라미터를 정의 할때, I/F를 할때, 화면에 표현할 때... 계속 문제가 된다.

뭐가 맞는 용어인지도 모를때도 있다. ( As-Is도 당연히 비표준이다. )

 

고객사 입장에서는, 특히 운영담당자 입장에서는 말이 안된다.

As-Is보다 더 개판이 된다. As-Is는 그래도 다년간 운영하며 나름의 규칙을 가지고 담당자가 정제를 했다.

그런데, 신시스템은 ? 여러 개발자가 각자 '알아서' 만들다 보니 엉망진창인 것이다.(물론 기능은 잘 동작한다)

그러다보니 계속해서 규칙들을 쏟아낸다.

이것은 이렇게 맞춰주시고, 이건 당연히 이래야 되고, 저건 그렇게 하면 안되고...

결국, 하나하나 들어주다보면 '표준'을 지켜야 되는 결론이 나온다.

그럴꺼면 진즉 'META표준'을 도입했다면, 이런 문제도 최소화하고 리웤re-work도 줄어들지 않나...

 

이것저것 중간중간 튀어나오는 기준들을 익히고 맞추느라 퍼포먼스performace는 안나오고

리웤작업은 계속에서 늘어나고, 일정은 점점 다가오고... 결국 .. 헬hell이 된다.

 

'표준'이라는 놈이, 보는 사람마다, 생각하는 사람마다 기준이 달라진다.

그래서, 표준을 잘 잡아야 하는 건데... (사공이 많으면 배가 산으로 간다는 말이 있다)

너도 나도 한마디씩 하다보니, 의사결정은 안되고 표준도 제대로 안잡힌다.

 

더 재밌는 사실은... 루머rumor에 의하면, 제안단계에서 '프로젝트 단가'를 줄이기 위해 비표준으로 했다고 한다.

"단가, 즉 공수를 줄여 인건비를 아끼겠다." 라는 취지인데, 공수가 몇 배는 더 들고 있다. 그러면서 고객의 요구사항이니 거부하지 못한다고 한다. 

 

내 개인적인 생각으로...

정말 모든걸 비표준으로 개발해도 되는 소규모 시스템 구축이 아니라면,

META표준은 반드시 선행되어야 한다. 

단순히 개발할 때 사용할 '단어/용어'를 등록하는 것이 아니라, 시스템의 기준을 세우는 일이다.

( ※ 업무협의시 커뮤니케이션에도 지켜지는 것이 맞다. )

 

대부분 소탐대실이 될 확률이 높고, 실제 퍼포먼스는 더 안나온다고 생각한다.

이왕 수백억에서 수천억씩 들이며 진행하는 차세대급 프로젝트라면, 조금 더 써서 제대로 하는게 맞다고 생각한다.

 

반응형