효율적인 정보기술 아키텍처를 위한 세 가지 口訣

전문가 칼럼입력 :2007/08/06 15:18

이정규(안랩코코넛 대표이사)

내가 아는 한 선배가 “어떤 사람이 특정분야에 대한 지식과 경험이 얼마나 심오한지 확인할 수 있는 방법은 내용을 얼마나 짧은 시간에 이해하기 쉽게 설명할 수 있는가에 있다”고 말한 적이 있다. 간혹 전문가로 자처하는 사람들이 “나는 이 전문 분야를 몇 일씩이라도 강의 할 수 있다”고 자랑하는 것을 보게 된다. 그런데 오랜 강의를 마친 후에 “지금까지 설명한 이야기를 초보자라도 이해할 수 있도록 5분 메시지로 요약해 달라”고 하면, 난감해 하는 이가 있곤 한다. 많은 지식이 있다고 하지만, 그 핵심을 5분만에 일반인도 이해할 수 있도록 설명하지 못하니, 정말 깨우치고 말한 것인지 의문이 들기도 했다. 만약 내게 수년 동안 학습한 컴퓨터 아키텍처의 키 메시지를 후학들에게 5분 안에 전달하라고 한다면, 다음의 세 가지를 전해주고 싶다. 나는 아래의 법칙을 업계 후배들이 제대로 익히고 응용한다면, IT 시스템을 도입하거나, 구축할 때 남다른 분별력과 식견을 가질 수 있으리라고 생각한다. 첫째는 삼정립의 법칙이다. 최인호의 소설 ‘상도’에서는 솥(정)의 세 다리를 재물, 권력, 명예의 개념으로 채용하였지만, 컴퓨터 아키텍처에서 세 다리는 하드웨어, 운영체제, DB를 포함한 애플리케이션으로 구성된다고 할 수 있다. 컴퓨터의 성능은 항시 이들 세 가지 요소가 함께 발전하여야 최적화될 수 있다. 그런데 특정 벤더들은 이중 하나의 기능만을 높여놓고 이에 맞는 벤치마크를 만들어 놓고 총체적 성능이 좋아졌다고 사용자를 현혹시키곤 한다. 혹자는 이러한 접근을 벤치마케팅(Bench-Marketing)이라고 부른다. 일례로 64비트 CPU가 시장에 처음 나왔을 때 최초에는 64비트 컴퓨터가 무엇인지 정의도 분명치 않았고, 나중에 메모리 어드레싱, 레지스터의 사이즈, 시스템 버스 등이 32비트에서 64비트로 확장된 것을 일반적으로 64비트 아키텍처라 정의하였다. 어떤 업체는 일부만이 64비트로 디자인 한 것을 전체적인 64비트 시스템처럼 소비자를 현혹하기도 한 적이 있었다. 시간이 지나 모두 64비트화된 컴퓨터가 나왔지만, 사용자의 애플리케이션 성능은 예전의 32비트와 마찬가지였다. 결국 64비트 컴퓨터는 운영체제, DB와 애플리케이션, 컴파일러 등이 64비트를 모두 지원할 때까지 성능이 혁신적으로 개선되지 못하였다. 식물학에 “최소양분률”이란 법칙이 있다. 식물의 성장은 가장 적은 필수 영양소에 종속된다는 이론을 말한다. 컴퓨터의 성능도 이 법칙에 적용해 볼 수 있다. 즉, 여러 컴퓨터 자원이 고도화 되었다고 하더라도, 어느 한 부분이 예전과 같다면 전체 성능의 개선은 허구일 수 있다는 것이다. 둘째는 복잡성 불변의 법칙이다. 물리학에서 에너지 불변의 법칙이 있듯이 IT의 경우도 사용자가 편해지면, 기계가 고생한다. 사용자 인터페이스도 좋아지고, 애플리케이션의 성능이 현격히 개선되었는데, 동일한 기계 사양으로도 가능하다는 벤더의 주장은 역시 거짓일 수 있다. 컴파일러가 최적화되어, 동일 사양의 기계가 갑자기 몇 십% 정도의 성능향상을 보여줄 수는 있겠지만 애플리케이션의 기능이 개선된 업그레이드 버전의 소프트웨어를 예전의 하드웨어에서도 동일한 성능으로 사용할 수 있다고 말하는 영업사원의 말은 의심하여야 한다. 사용자가 예전에 비해 월등한 기능과 효율을 도모한다면, 당연히 더 많은 컴퓨팅 자원을 투자해야 한다. 필자는 확장성이 선형, 수평, 수직, 가격대비, 단위, 범위, 한계확장성 등 일곱 가지로 구분된다고 생각한다. 기존의 하드웨어가 주변장치나 CPU에 있어서 불균형(Unbalanced)된 제품의 경우에는 주변장치의 추가(수평확장)나 CPU의 개수(수직확장)를 통하여 성능을 최적화 시킬 수 있고, 큰 부담 없이 업그레이된 애플리케이션을 운영할 수는 있을 것이다. 비용지불(희생)없는 효율은 IT의 세계에서도 있을 수 없다. 셋째는 복잡성 증대의 법칙이다. 컴퓨팅 자원이 많아지면 관리복잡도도 당연히 올라가는 것이 상식이지만, 이는 선형적 증가가 아니라 n(n-1)/2의 공식으로 복잡해 진다. IT업계에 종사하는 전문인 여러분께서 이 공식만은 반드시 기억하실 것을 권한다. 자원이 두 개일 경우의 연결점은 1이지만, 5개이면 10, 10개면 45개의 연결점이 필요하다. 관리할 포인트가 얼마 안될 때는 사람의 힘으로 처리가 가능하지만, 관리포인트가 수백, 수천이 되게 되면 아키텍처가 바뀌지 않으면 관리할 수가 없게 된다. 그러므로 한 기업의 애플리케이션의 복잡도가 증가하고 있음에도, 초기의 시스템 아키텍처로 모두 해결할 수 있다는 벤더의 주장은 순진한 생각이다. 이러한 복잡성 증대의 원칙은 IT에 국한되지 않으며, 일반적 사회현상에도 나타난다. 소기업이 번창하다가 이러한 복잡도를 잘 관리하지 못하여 쓰러지기도 한다. 많이 알려져 있는 몇몇 소프트웨어 패키지 기업도 초창기에 급격한 매출 증대로 즐거운 비명을 외치다가, 고객수가 많아 짐에 따라 발생하는 커뮤니케이션 비용, 인건비, 인프라 비용, 품질관리 비용 등과 같은 복잡도 비용을 관리하지 못하고 쓰러진 경우가 있다. 이들 기업은 고객들로부터 처음에는 “융통성 있게 고객의 요구를 잘 반영한다”라는 말을 듣지만 나중에는 “회사가 커지더니, 이제는 불러도 안 오는구만!”하면서 비난을 받게 된다. 이러한 경우는 경영에도 나쁜 영향을 미치게 된다. 이를 극복하려면 탁월한 관리역량, 효율적인 프로세스, 그리고 신기술 등 부단한 요소가 함께 작용해야 한다.@

*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.