[류한석의 스마트 모델링] 피터의 원리로 살펴본「무능력의 법칙」



사회 생활을 하다보면 우리는 '어떻게 저런 사람이 저 위치까지 올라갔을까?'라는 의문을 갖게 만드는 사람들을 종종 만나게 된다. 그것은 연줄일까? 행운일까? 지금 자신의 주변 사람들을 한번 생각해보자. 마침내 우리는 놀라운 사실을 발견하게 된다. 그런 사람들이 너무나 많은 것이다!

일부 객관적 판단이 결여되어 있는 부분이 있을지라도, 우리가 갖는 타인에 대한 무능력의 느낌이 전혀 근거가 없는 것은 아니다. 우리는 개인적으로 싫어하는 사람과 무능력한 사람을 구별할 정도의 분별력은 있기 때문이다.

연줄이나 행운만으로 그 많은 사람들이 높은 위치에 올라갈 수는 없을 것이다. 그 이유는 쉽게 풀리지 않는 의문이지만, 이렇게 한번 생각해 보자. 만일 그 사람들이 언젠가는 유능했었지만, 승진을 하고 새로운 역할을 부여 받으면서 더 이상 유능할 수 없는 단계에 도달하게 된 것이라면 어떠한가?

로렌스 피터(Laurence J. Peter, 1919-1990)는 1969년 자신의 저서 피터의 원리(The Peter Principle)를 통해 다음과 같은 내용을 주장하였다.

'피터의 원리: 조직 내에서 일하는 모든 사람들은 자신의 무능력 수준에 도달할 때까지 승진하려는 경향이 있다.'

그렇기 때문에 시간이 지남에 따라 조직의 많은 사람들이 임무를 제대로 수행하지 못하는 무능한 사람들로 채워지게 되고, 아직 무능력의 단계에 도달하지 않은 사람들을 통해 과업을 완수하게 된다는 것이다. 물론 현재의 유능한 사람은 성과를 바탕으로 승진하게 될 것이고, 언젠가는 더 이상 승진할 수 없는 마지막 단계인 무능력의 수준에 도달하게 될 것이다. 이러한 원리 또는 원칙을 싫어하는 사람들도 있겠지만(일명 원칙거부주의자), 필자는 인생 선배의 통찰력 있는 조언을 새겨들어야 한다고 생각한다.

위계 질서를 강조하는 조직, 즉 성과에 기반한 승진과 퇴출이 그다지 동적이지 않은 조직의 경우, 많은 사람들이 무능력의 단계에 도달해 있는 경우를 쉽게 발견할 수 있다. 물론 그것은 조직의 문제이므로 개인의 힘으로 조정할 수 있는 것이 아니라고 할 지라도, 이러한 원리를 통해 개인의 의지가 아닌 거시적으로 작용하는 거대한 힘의 정체를 어느 정도 이해할 수 있고, 그에 따라 스스로 각성하고 노력함으로써 현재 자신의 위치와 지향점을 되돌아 볼 수 있는 계기가 될 수 있을 것이다. 또한 그렇게 만드는 것이 중요하다고 생각한다.

처음에는 대부분의 사람들이 유능하거나 유능한 축에 속한다. 그러나 몇 차례의 승진을 통해 자신이 감당할 수 없는, 즉 자신의 능력을 벗어나는 지위에 올라가게 된다. 대부분의 사람들은 그때가 되어서야 비로소 자신이 무능력의 단계에 도달하였다는 것을 알아차리기 때문에(그렇다고 내색을 하지는 않을 것이다), 그것을 감추고 자신의 존재감을 드러내기 위해 이해하기 힘든 일들을 벌이게 된다.

필자의 지인 중 한 명은 대리 시절까지는 정말 괜찮은 엔지니어(개발자)였다. 자신의 맡은 바 임무를 무척 꼼꼼하게 해내었고, 회사의 원칙에도 잘 순응하는 사람이었다. 그에 따라 그는 조직에서 유능한 인력으로 인정받게 되었고, 더 나은 연봉을 받으며 과장으로 승진하였다.

과장으로 승진한 그는 생애 처음으로 소프트웨어 프로젝트 관리를 맡게 되었는데, 그러한 그에게 결국 피터의 원리가 작용하게 된다. 원래 개발 팀에는 능력과 생산성에 있어 격차가 나는 팀원들이 존재할 수 밖에 없다. 그리고 리더의 입장에서는, 능력이 부족해 보이는 사람들이 못마땅하게 느껴질 수도 있을 것이다. 하지만 그는 완벽주의적 성향을 갖고 있었고, 그로 인해 자신이 보기에 못 마땅한 부분들에 대해 일일이 간섭하기 시작했다.

그의 역할은 분명히 프로젝트 관리자였음에도, 심지어는 어느 개발자의 코드를 자신이 밤 새워 직접 수정함으로써 그 사실을 사전에 알지 못한 해당 개발자를 완전히 무력하게 만드는 정신적 공황 상태에 도달하게 했으며, 언젠가는 직접 공통 모듈에 손을 대었는데 오히려 문제가 발생하여 많은 개발자들에게 혼란을 주기도 하였다. 또한 개발 자체에만 너무 신경을 쓴 나머지, 프로젝트의 핵심 이해관계자들(스폰서, 사업부서, 고객 등)의 관리에 소홀함으로써, 이해관계자들의 불만 또한 증폭되었다. 이해관계자들의 불만은 개발자에게 곧바로 영향을 미치는 경우가 많다.

결국 그는 개발자들의 반발로 인해 프로젝트 관리자 임무를 더 이상 맡을 수 없게 되어, 강제로 중도 하차하게 되었다. 그가 몸 담은 조직은 과장 이상의 간부는 프로젝트 관리를 맡아야 한다는 원칙을 갖고 있었기 때문에, 그 후 그는 자신감 상실 상태에 빠져 이직을 고려하고 있다.

참고로 설명하면, 아주 소규모의 프로젝트에서는 프로젝트 관리자가 아키텍트 또는 수석 개발자의 역할을 겸할 수도 있겠지만, 일반적으로 프로젝트 관리의 사명과 개발의 사명은 다르다. 그것을 혼돈하는 사람들에게 소프트웨어 프로젝트는 재앙이 되곤 한다. 프로젝트 관리에 있어서는, 신뢰를 바탕으로 한 프로젝트 구성원 각자의 역할 존중만이 최선의 프로젝트 성과를 만들어 낸다. 유능한 개발자 출신이었던 그는 개발 자체에 너무 집착함으로써, 자신의 핵심 역할을 제대로 수행하지 못했고 결국 무능한 사람으로 평가 받게 된 것이다.

사람이란 자신이 잘 할 수 있는 일에 집중함으로써 높은 성과를 낼 수 있다. 자신이 감당할 수 없는 요소가 늘어나는 순간, 인생은 통제할 수 없는 혼란에 빠져들게 된다. 그것을 이해하고 행동에 반영하는 사람이 똑똑한 사람이겠지만, 양적 팽창을 추구하는 인간의 욕심을 버리는 것이 쉬운 일은 아니다.

그렇다고 그러한 사례가 없지는 않다. 필자의 지인 중 한 명은 부장의 자리에서 10년째 이사로의 승진을 거부하고 있기도 하다. 물론 그의 성과는 언제나 좋은 편이다. 그리고 높지 않는 지위에서 놀라운 성과를 내는 사람들을 종종 볼 수 있는데, 그것은 피터의 원리를 회피한 사람들의 결과라고 볼 수 있다. 

몇 년 전 일본의 일개 회사원(주임)인 다나카씨가 노벨상을 수상한 일은 피터의 원리를 회피한 사람의 사례 중 하나일 것이다. 실제로 다나카씨는 노벨상 수상 후에도 승진을 거부하였는데, 2년이 지난 작년에는 결국 회사의 요청을 받아들여 이사로 승진하였다고 한다. 그는 이사의 위치에서 어떠한 성과를 낼 수 있을까? 그 결과를 지켜보는 것도 흥미로운 일이다.

사실 피터의 원리는 모든 조직의 어디에서나 작용하고 있다. 적어도 타인의 사례라면 너무 많이 보아와서 지겨울 정도일 것이다. 하지만 피터의 원리가 자신의 미래에도 그대로 작용할 것이라고 생각하면 섬찟하지 않는가? 마지막 승진이 바로 유능한 단계에서 무능한 단계로의 이행인 것이다. 그리고 이것은 사람뿐만 아니라, 기업 그 자체에도 그대로 적용된다. 한때는 유능했지만 지금은 무능한 기업들을 쉽게 찾아볼 수 있다.

피터의 원리를 극복하는 방법은 자신의 능력과 감당할 수 있는 지위를 정확히 이해하고, 능력의 여유를 남겨두는 방법뿐이다. 마지막으로 로렌스 피터의 격언 중 하나를 소개하며, 글을 마친다. 해당 표현 중 일부를 필자가 의역하였음을 밝힌다.

'당신이 슬럼프에 빠지면, 온 세상의 나쁜 것들이 당신과 함께 할 것이다. 그러나 당신이 노력할 경우에는, 오직 혼자 해야 할 것이다' @




Global IT기업들의 M&A를 보는 또 다른 관전 포인트

  

   최근 Global IT기업들의 M&A를 상황을 살펴보면 실로 점입가경이라는 말이 절로 나올 정로 인수와 합병이 복잡하고 빠르게 진행되는 양상을 보이고 있다. 기술적인 측면에는 SOA라는 표준이 시장에서 점진적으로 확산되고 있어 기능을 중심으로 한 시스템의 차별성이 점진적으로 희석되어 가고 있고, 전략적인 측면에서는 IBM과 MS, Oracle 등 주요 S/W기업들이 운영시스템에서 DB, 비즈니스애플리케이션을 원스톱으로 제공하는 스택(STACK)전략을 표방하고 있기 때문에 이러한 변화에 대응하기 위하여 업계 전반적으로 발생되고 있는 변화양상으로 판단해 볼 수 있겠다.

  

   이러한 인수합병은 기업들의 상태나 시장상황에 따라 매우 다양한 형태로 나타나고 있는데 필자가 주목하게 된 것은 바로 주요업체인 IBM과 Oracle의 M&A 움직임이다. 각 사는 모두 S/W의 개별분야 또는 경쟁분야에서 이미 높은 시장성과 기술력을 인정받고 있는 업체들이다. 그러나 이들은 공히 “SOA”를 기술중심으로 하여 사업적으로는 “IT서비스영역”이나 “Application S/W영역”으로의 확장을 선포하고 이를 달성하기 위한 방향으로 기업전략이나 M&A의 방향을 운영하고 있다.

 

우선 IBM는 90년대 후반부터 2000년대 초반까지 처절하기까지 했던 구조조정의 과정을 거쳐 H/W중심기업에서 서비스중심기업으로의 변화를 시도, 현재 성공적으로 사업을 전환한 것으로 평가받고 있다. IBM이 사업전환을 위해 벌린 대규모 M&A중 하나가 바로 컨설팅업체인 PWC의 인수였다. IBM은 PWC를 인수하여 단번에 PWC가 보유한 산업지식과 풍부한 컨설팅 경험을 흡수하여 현재의 IT서비스 기업으로서의 기반을 확실하게 다지게 되었고 최근 MRO소프트와 FileNet을 인수함으로써 지속적으로 서비스 기업으로서의 확장을 시도하고 있다. 두번째로 Oracle은 DB분야의 선도적 지위를 Application분야에서도 이어가기 위해서 e-Business Suite 제품을 발표하고 현재는 SAP에 이어 시장점유율 2위의 업체로 발돋움 했다. 그러나 시장에서의 일반적으로 Oracle eBS는 SAP에 비하여 소위”Best Practice”가 부족하다는 평가를 받아왔던 것이 사실이었다. 이를 극복하기 위해 Oracle은 풍부한 자금력을 바탕으로(주가유지 목적과 자금을 이용한 경쟁자 제거라는 비평도 있지만) Sieble, Hyperion, PeopleSoft(J.D Edwards), Retek 등 각분야의 선두업체들을 차례로 흡수하며 그들이 보유한 산업경험을 “Fusion”이라는 개념하에 하나씩 제품에 통합해 나가고 있다.

 

두 업체의 공통점을 살펴보면 M&A를 통한 인수기업의 역량을 내부로 통합하는 과정에 있어서 자체적인 개발이나 경험을 축적하기 보다는 외부에 축적된 산업적인 경험과 지식을 흡수하는 방향으로 진행되고 있다는 점이다. 물론 기업의 경쟁전략적인 측면과 비용대비 효과라는 측면에서의 효율도 결코 간과할 수 없겠으나 이는 IBM과 Oracle과 같은 초대형 기업들도 기술이 아닌 산업적인 지식과 경험은 쉽게 축적하거나 개발 하기 어렵다는 반증으로 풀이할 수도 있겠다.

 

티맥스소프트와 핸디소프트의 선전, 그리고 아쉬움

글로벌 M&A로 인해 니치플레이어들의 입지가 갈수록 줄어들고 있는 상황 속에서 선전하고 있는 국산 대표S/W업체들이 있다. 바로 WAS분야의 티맥스소프트와 BPM분야의 핸디소프트가 그 주인공들이다. 이 두업체는 각 분야에서 IBM, BEA, Filenet Ssavion 등 외산S/W와 당당하게 국내 시장시장에서 1위를 하고 있을뿐만 아니라 Gartner나 Forrester Reaserch와 같은 공신력있는 해외기관에서 제품의 우수성을 인정받고 있다.

 

이들의 제품이 탄생한 우리나라 S/W기업의 현실을 보자. 대부분 10여명에서 많아야 수 백여명에 달하는 인력으로 구성되어 있고, 이들 중 상당부분이 소위 “개발자”로 불리우는 S/W기술전문인력이지만 이들 중 제대로된 연구소에서 기술개발에 몰두하는 인력은 거의 없고 대부분은 프로젝트에 투입되어 이른바 “시스템 구축”이나 “통합”작업을 하고 있다. 개개인별로 우수한 기술능력을 보유하고 있다고 해도 고객의 요구나 프로젝트 일정 등에 쫓겨 체계적인 기술개발이나 표준화 등은 엄두를 내기 어렵고 더구나 개발된 기술을 제품화하는 것은 상상조차 힘든 것이 현실이다. 또한 과다한 출혈경쟁으로 이익을 보장받기 어려운 프로젝트로 기업의 생존조차 위협받고 있는 대부분의 S/W기업에게 “고객사의 돈도 벌어오지 못하면서 자리에 앉아 꼬박꼬박 월급을 받아챙기며 기술개발이나 하고 있는 연구인력”은 기업입장에서는 그야말로 사치이자 낭비일 수 밖에 없는 것이 현실이다. 이러한 척박한 현실 속에서 티맥소프트와 핸디소프트 같은 회사들이 해외에서도 인정받을 수 있는 제품을 만들어 냈다는 것은 실로 놀랍고 자랑스러운 일이 아닐 수 없다.

 

그러나 필자의 입장에서 한 가지 아쉽고, 우려스러운 점은 있다. WAS나 BPM도 물론 유망한 분야이며 고도의 기술력이 요구되는 제품이기는 하지만 앞서 서술한데로 Global IT기업들의 변화에 따라 니치플레이어들의 입지는 점차적으로 협소해지고 있고, 기술의 차별성이 퇴색해가고 있는 추세에 있기 때문에 “고차원적인 요소기술”로만은 중장기적으로 경쟁력의 영속성을 보장받기 힘들 것이라는 점이다. 우수하고 표준화된 기술을 바탕으로 그 위에 산업적인 지식과 경험을 부가하는 것이 궁극적으로 경쟁력을 보유할 수 있는 방안이라면 우리의 S/W기업들도 이제는 기술적인 향상에서 한 수준업그레이드 되어 산업적 지식이나 경험을 시스템적으로 Best Practice화 하려는 노력이 필요한 시점이라고 생각된다. 그러나 이를 위해서는 극복하거나 해결해야 할 과제들이 너무나 많다. 기업용 어플리케이션의 선두기업이 SAP가 지금과 같이 제품에 산업지식을 내장하는데 무려 30년 가까운 세월이 필요했고, IBM과 Oracle마저도 이것을 얻기 위해서는 자체적인 노력보다 M&A가 나은 대안이었다는 점을 감안한다면 상대적으로 대단히 영세한 국내 S/W기업들이 산업지식과 경험을 S/W제품화 하는 체계적인 R&D 수행은 대단히 어려운 일이라는 것은 쉽게 짐작이 가능하다. 과연 무엇이 국내 S/W기업들의 노력을 가로막는 것일까?

 

체계적인 R&D과 산업지식의 축적이 불가능한 현실, 과연 무엇이 문제인가?

 체계적인 R&D와 제품화가 불가능한 상황에는 지면에서 모두 논하기 힘들만큼 복잡하고 다양한 문제가 얽혀있을 것이다. 하지만 이를 국내시장의 한계와 불합리한 업계의 관행, 그리고 S/W업계 내부의 문제, 마지막으로 대형SI 및 외국계 컨설팅 펌들의 사업행태 측면에서 한 번 살펴보도록 하겠다.

 

 첫째, 국내 시장의 한계

필자가 국내 굴지의 시스템통합업체인 S사 간부와 이야기를 나눌 때였다. 필자는 그 간부에게 “S사와 같은 대기업이 왜 ERP같은 패키지 소프트웨어를 적극적으로 개발하지 않는걸까요?”라는 우문을 던졌다. 당시 S사에서 SAP사업본부를 총괄하고 있던 그 간부의 대답은 간단했다. ”아마 우리 정도의 맨파워나 자원정도면 SAP수준까지는 못미치더라도 상당한 수준에 이르는 제품은 개발할 수가 있을겁니다. 그런데, 제품화 시켜서 몇군데 구축하고 나면 더 이상 볼 수 있는 시장이 없어요. 개발비용을 건질 수가 없다는 거죠. 차라리 외산 제품을 가져다가 라이센스비용 지불하고 인력 교육시켜서 인건비 같은 서비스비용을 가져 오는 것이 수익면에서 훨씬 나아요.” 사업을 하고 있는 입장에서는 너무나 상식적이고 당연한 대답이었다. 실제 S/W제품을 만들게 되면 우선적으로 국내 시장을 공략해야 하는데 규모상으로는 적게는 수 백억 많게는 수 천억으로 예측되는 시장이라고 하더라도 경쟁이 없는 독점제품이 아닌 이상 규모측면에서 크지 않은 국내시장은 금방 포화상태에 빠지게 되고 제품은 당초의 기대와 달리 개발비용을 회수하기도 전에 부가되는 가치가 급감하게 된다. 그렇다면 매출이나 수익의 확대를 위해서 해외 시장으로 눈을 돌려야 되는데, 해외 시장에서 공급하고 경쟁을 할 수 있는 수준의 제품화까지는 시간과 돈이 지속적으로 투자되어야 하지만 앞서 S사의 간부가 말했던 것처럼 사업적 측면에서 더 손쉬운 방법이 존재하기 때문에 이러한 시간과 돈을 계속 투자할 기업은 거의 없는 것이 현실이다. 이러한 상황이라면 S/W R&D를 위한 투자를 하는 것은 비즈니스 논리를 모르는 우매한 사람이 하는 일이거나 사업능력보다는 대단한 용기가 필요한 일이 되지 않을까?

 

둘째, 불합리한 업계의 관행

시스템 구축 프로젝트의 규모가 클수록, 범위가 넓을수록 사업을 단독으로 추진하는 것은 현실적으로 불가능하기 때문에 업계에서 소위 “마도구찌”라는 일본어로 불리우는 주관업체가 있고 여러업체가 분야별로 협력사 또는 컨소시엄의 형태로 참여하여 사업을 진행하게 된다. 최근엔 수주를 위한 경쟁이 갈수록 치열해지고 있고, 따라서 사업의 마진이 갈수록 감소하고 있기 때문에 사업수행원가 절감이 수주전 성공의 열쇠가 되는 경우가 흔하게 발생되고 있는데 문제는 바로 이 수행원가의 절감을 위해 업체들이 주로 선택하는 방법에 있다. 수주전이 막바지에 이르거나 우선협상대상자가 되어 기술 및 가격협상을 진행하게 되면 일반적으로 주관사들은 주로 협력업체에 가격인하를 요구하게 된다. 통상 S/W라이센스와 서비스인력으로 구성되어 있는 가격견적에서 고객이나 사업주관사 공히 사업에 투입되는 인력을 줄이는 것은 원하지 않는 경우가 많다. 때문에 가격인하의 네고포인트는 주로 S/W라이센스 가격에 집중되고 이러한 관행이 반복될수록 시장에서의 제품가격은 거의 수익율이 없는 수준까지 떨어지게 된다. 그나마 S/W라이센스 비용을 정당하게 받고 있는 외산업체들의 경우에도 사안에 따라 큰 폭의 할인율로 제안되는 경우가 많고, 외산업체들의 이러한 할인을 적용하는 경우에 국산S/W업체들은 울며 겨자먹는 식으로 별다른 저항없이 그 이상의 할인을 적용할 수 밖에 없는 것이 현실이기 때문에 힘들고 어려운 과정을 거쳐 만들어 놓은 제품의 가치는 거의 인정을 받지 못하게 된다. 이러한 현실 속에서 과연 누가 S/W제품을 만들기 위한 비용과 노력을 기울일 수 있을까?

 

셋째, S/W업계 내부의 문제

 반복되는 이야기지만 S/W제품을 만드는 과정은 어렵다. 시간과 비용이 많이 들어간다. 그렇기 때문에 영세한 국내업체들이 쉽게 접근할 수가 없다. 이런 이유로 중소규모의 영세한 S/W기업들은 자원이 풍부한 대기업이나 외국계 기업에 비해서 훨씬 더 강한 사명감과 개발 및 운영전략이 요구되는 것이다. 그러나 사명감이나 전략에 많은 공을 들이고 있는 건전한 S/W기업들의 노력을 무너뜨리고 있는 또 하나의 문제가 있다. 바로 제품의 “품질”문제이다. 현실적으로 영세한 국내S/W기업에 비해 업력이나 자원측면에서 월등한 외산제품과 대등 또는 우수한 제품을 개발한다는 것은 결코 쉬운일이 아니다. 그러나 문제는 이”품질”의 문제가 업력이나 자원의 문제보다는 얄팍한 상혼이나 윤리의식의 부족에서 파생되는 경우가 더 많다는데 있다.

 

 국내에 소위 “S/W기업”의 간판을 내걸고 사업을 하는 업체의 홈페이지를 방문하면 업체의 규모에 비하여 정말 많은 제품을 보유하고 있는 것을 흔히 볼 수 있다. G/W나 KMS처럼 상대적으로 간단한 시스템부터 ERP나 SCM과 같이 복잡도가 대단히 높은 시스템까지 다채롭게 보유하고 있는 점을 보면 실로 놀라움을 금하지 않을 수 없다. 물론 실제로 제품화된 우수한 패키지S/W를 보유하고 있는 기업들은 상당히 많다. 그러나 일부 기업들은 조악한 형태의 프로토타입 수준으로 제품을 보유하고 있거나 심지어는 컴포넌트 수준의 개발, 부분적인 인력참여경험만으로 “OOO ERP”, “OOOSCM”과 같은 그럴 듯한 제품으로 포장하여 홍보하는 경우를 우리는 어렵지 않게 볼 수 있다. 물론 영업적으로 필수 불가결한 일이라는 것은 이해 못할바도 아니지만 이런 수준의 “S/W제품”을 시장에 저가로 공급하여 많은 고객들에게 “싸구려 국산 S/W 수준은 역시 어쩔 수 없어, 이러니까 외산제품을 쓰지”라는 인식을 확산시키고 결국엔 정상적인 R&D과정을 거친 우수한 S/W제품의 품질까지도 같은 “국산S/W”라는 이유만으로 시장에서 정당한 가치를 인정받지 못하게 하는 것은 크나큰 문제가 아닐 수 없다.

 

넷째, 대형SI 및 외국계 컨설팅 펌의 사업행태

얼마전 ERP를 S사 제품으로 선택한 K공사 간부에게 검토 과정에서 국산ERP제품을 소개하자 그 간부는 “국산S/W가 그렇게 훌륭하다면 컨설팅 펌들이 왜 하나도 추천을 안했겠는가?”며  자체적인 판단은 곤란하니 컨설팅 펌들과 이야기하라며 필자를 돌려보낸적이 있었다. 물론 이후 방문한 컨설팅 펌에서의 대답은 “고객이 국산S/W를 원하지 않는다”는 것이었다. 실제로 국내에서 소위 대기업군으로 분류되거나 규모가 큰 공사, 공공기관에서 기간계시스템을 국산시스템으로 구축했다는 이야기는 거의 들을 수 없다. 물론 국산S/W는 가격경쟁력만 있을뿐 품질에 대한 검증이 제대로 되지 않은 측면이 인식에 시장에 만연해 있다. 또 SAP나 Oracle과 같은 외산 제품과 비교하면 비즈니스어플리케이션의 기능 측면에서 다소간의 차이가 있는 것도 분명하다. 문제는 이러한 행태가 유지되면 국산S/W는 이른바 “Big Site”에 대한 경험을 축적할 기회가 없고 시스템은 향상되지 않으며 고객들은 여전히 경험과 지식, 기능에 대한 불신을 거두지 않는 악순환이 반복될 것이라는 점이다.

 

이러한 문제의 핵심에는 바로 대형사이트의 사업을 거의 과점하고 있는 대형SI업체와 외국계컨설팅 펌들의 사업운영 방식이 자리잡고 있다. 물론 Global한 비즈니스를 펼치거나 또는 외국자본의 영향으로 SAP나 Oracle과 같이 다국화된 기능과 표준화, 통합성이 필수적인 경우에는 외산 S/W외에는 선택의 여지가 별로 없을 것이다. 그러나 국산S/W의 수준으로도 충분히 구축할 수 있는 국내 사업이나 서비스를 펼치고 있는 기업과 공공영역에까지 이들 SI업체와 컨설팅 펌들은 기간계업무에 국산S/W는 아예 배제한 채, 2~3개 업체가 동시에 SAP를 제안하는 경우를 어렵지 않게 볼 수 있다.

 

외국에서의 선진기업 구축경험, 국산과 외산의 부분적인 기능 차이, 고객선호도, 국산S/W에 대한 불신 등도 이들 업체들이 외산S/W만을 제안하게 하는 원인이 되겠지만 무엇보다 문제가 되는 것은 바로 사업적인 논리에 의해 고객의 비용적인 희생을 강요하는 것이다. 대형 SI업체나 외국계 컨설팅펌들의 최근 제안전략은 외산S/W의 표준제품을 공급하고 이 제품을 고객의 요구에 맞도록 PI라는 이름으로 “대규모 커스터마이징”을 유도하는데 있다. 인력의 투입이 사업의 주요 수익원이 이들 SI업체와 컨설팅 펌은 가급적 많은 수의 인력을 투입하기를 원하고 또한 그 인력의 단가가 높을수록 수익성이 좋아지게 된다. 당연히 상대적으로 저가의 개발자 단가수준이 적용되는 국산S/W보다는 사업수행시 높은 단가가 보장되는 외산S/W 개발자 및 컨설턴트 투입을 선호하는 것은 너무나 당연한 일이다.

 

고객들은 대형 SI업체와 외국계컨설팅 업체의 추천을 신뢰하고, 이들업체는 외산S/W만을 제안하는 상황에서 국산S/W들은 고객에게 검증받을 기회조차 박탈당하고 구축과 경험의 축적으로 얻어지는 S/W 경쟁력 향상이라는 과제는 달성하기 불가능 한 것이 현실이다.

 

이동통신 기술경쟁력의 확보지원과 국내 대표 S/W업체들…그리고 S/W기업들의 가능성

 필자는 신문이나 잡지의 뉴스를 보다가 수시로 터져나오는 우리나라의 이동통신 기술력의 선진화된 우수성이나 수출성과 등의 기사를 접하게 되면 한편으로는 크게 자랑스러운 마음이 들면서 한편으로는 같은 IT 계통산업이면서도 S/W산업이 이동통신과 같은 경쟁력을 갖고 있지 못한 점에 아쉬움을 동시에 갖게 된다. 세계최고수준에 이른 우리나라 이동통신의 극적인 발전은 기업들의 노력과 우리나라 시장환경의 특성 등 여러가지 요소가 복합적으로 맞아떨어진 개가지만 무엇보다 이동통신 초기부터 올바른 정책방향으로 수립하고 각종 지원을 아끼지 않은 정부와 정보통신부의 역할이 가장 컷다고 생각한다. 시장도 기술력도 전무하던 시절, 정부의 체계적인 전략수립과 지원이 없었다면 아마도 우리나라의 이동통신 기술도 지금처럼 큰 성공을 이루기는 어려웠을 것이다.

 

 티맥스소프트, 핸디소프트, 한글과 컴퓨터, 안철수연구소는 각 분야에서 외산S/W와 당당하게 경쟁하면서 국내 S/W를 대표하는 기업으로 성장했다. 앞서 언급한데로 티맥스소프트와 핸디소프트의 WAS와 BPM은 국내 시장점유율 1위일뿐만 아니라 Gartner의 Magic Quadrant에도 등재될 만큼 글로벌하게 우수성을 인정받고 있는 자랑스런 대한민국의 S/W제품이다. 이들 4개사의 공통점을 보면 제품경쟁력이 상대적으로 지금보다 낙후되었던 시기에 공공기관, 공사 등 공공영역에서 충분한 시장을 확보하면서 발생된 수익을 기반으로 한 R&D를 무기로 기술력을 확장하고 사업을 성장시킨 공통점을 가지고 있다. 이제는 이들 요소기술영역처럼 ERP나 CRM과 같이 고도의 산업지식이 요구되는 기간업무분야에서도 대표 S/W업체들이 탄생되어야 할 시점이라고 생각한다.

 

필자는 국산 S/W기업의 R&D 능력을 확보하고 장기적으로 국내에서도 세계적인 수준의 제품들이 쏟아져 나와 궁극적으로 S/W산업의 경쟁력을 강화시키기 위해서는 이동통신 분야에서 발휘되었던 정부의 적절하고 현명한 정책과 국내 대표S/W기업들이 그러했던 것처럼 자생력과 경쟁력을 갖출 때까지 공공분야에서의 합리적인 보호가 시행되기를 간절하게 희망하고 있다. 그러나 최근의 공공기관과 공사, 대학 등 공공영역에서의 시스템 구축사업을 살펴보면 SAP, Oracle 등 외산 S/W기업들이 거의 독점하다시피 하고 있는 모습을 보면서 실로 안타까움을 금할 길이 없다.

 

국내기업이기 때문에 국산S/W이기 때문에 이유를 불문하고 불공정하게 지원하거나 보호해달라고 주장하는 것은 결코 아니다. 국내에도 각 분야별로 우수한 S/W제품들이 다수 존재하고 있고 이러한 S/W들은 적절한 정책지원과 시장성만 확보된다면 ERP, CRM, SCM분야에서도 얼마든지 제2의 티맥스소프트, 제3의 핸디소프트가 될 수 있는 가능성을 가지고 있는 기업들도 얼마든지 있다. 그러나 S/W기업의 문제점을 아무리 정확하게 인지한다고 해도 규모가 작았던 시장이 갑자기 커지지도 않고, 수 십년간 이어온 관행과 업체들의 사업논리가 한꺼번에 사라지지도 않는다고 한다면 이를 혁파하고 S/W산업이 확대발전할 수 있는 기회는 정책이나 제도적인 차원에서 모색되어야 한다고 믿는다.

 

언젠가 대한민국의 ERP제품이 Gatner Magic Qaudrant에서 SAP보다 높은 곳에 등재 될 날을 기대해 본다.


NDK는 C나 C++같은 네이티브 코드 언어를 사용하여 응용 프로그램의 일부를 구현할 수 있도록 하고, 기존 코드를 재사용 할 수 있도록 제공하는 하나의 개발 툴 킷이다. C/C++의 좋은 어플리케이션을 활용할수도 있고 자바에서 처리하지 않고 C/C++에서 처리할 수 있는 장점을 가졌다. 


NDK란 무엇인가?

NDK (Native Development Kit) 의 약자다.

쉽게 말해 java보다 네이티브한 영역인 C 영역에서 프로그래밍을 하는것을 말한다.

기본적으로 C와 java를 JNI 라는 인터페이스를 통해서 연결을 하는것이다. 


흔히들 자바를 해보지 않은 개발자들은 이런 말을 한다.

"야. C만 가지고는 안드로이드 개발 못하냐?"

일단 결론부터 얘기하면 "가능하다" 이다.

바로 위에서 얘기했던 NDK를 가지고다.

하지만 몇가지 제약조건이 있다.

일단 안드로이드의 기본 Window인 activity를 만들기 위해서는 

#include <android/native_activity.h>

이 해더파일을 인클루드 해야 하는데 저 해더파일은 안드로이드 2.3부터 지원한다.

한마디로 완벽하게 C/C++을 가지고 안드로이드 프로그래밍을 하려면 2.3이상의 단말에서만 가능하다 ㅎㅎ;

참고로 opengl es 1.x는 1.6이상의 버전에서 2.x는 2.0 이상의 단말에서 지원을 한다.

한마디로 하위버전을 고려하지 않을거면 C로 짜세요. 가 맞을지도 ㅎㅎ;;


그리고 메모리에 대한 문제도 있다.

안드로이드의 메모리 영역은 쉽게 두가지로 나눌 수 있는다. 

자바의 allocation heap과 C에서 사용하는 native heap 이 이것이다.


안드로이드 개발자가 대부분 많이 격는 문제가 하나가 있는데 이미지를 불러오다 보면 OutofMemory를 많이 볼것이다.

그럼 기존 자바만 개발하던 개발자들은 하나같이 이런 말은 한다... "왜? 메모리가 이렇게 많은데? 왜?"


그건 바로 native heap이 부족해서이다. 안드로이드는 기본적으로 이미지같은 (Bitmap, Drawable 등) 걸 사용할때 native heap을 사용한다.

자바 영역에 heap이 아무리 남아 돌아도 native heap이 부족하면 바로 out of memory Exception이 난다. ;; 헐~


실제로 Drawable 안에는 Bitmap이 들어있고 Bitmap은 내부적으로 Skia 라는 라이브러리를 사용하고 이것은 native 영역으로 되어 있다.

(스키아가 궁금하면 받아서 확인해 볼것... git clone git://android.git.kernel.org/platform/external/skia.git)

한마디로 어디서 이미지를 사용하든지 간에 안드로이드에서 이미지를 사용하게 되면 native heap을 자신도 모르게 할당을 받아서 사용한다.

그래서 Bitmap 클레스에는 recycle() 이란 함수가 존재하는데 이 녀석에 역할은 native로 할당된 이미지 메모리 영역을 바로 free 시켜주는 역할을 한다.

한마디로 자바에서도 C처럼 메모리를 릴리즈 시켜줄수 있다는 얘기다. 


native heap 역시 자바의 vm heapsize 를 따르기때문에 heapsize 30m 라면 native heap도 30m까지밖에 할당을 하지 못한다. 

아까도 얘기했지만 30m를 vm의 heap과 나누어 쓰는것이 아니고 영역자체가 틀리기 때문에 각 각 30m 의 heap 생긴다고 생각하면 된다.


실제로 개발을 하면서 java의 heap이 부족해서 죽는 경우는 매우 드물다. 신경을 써야 할 부분은 바로 native heap이 중요하다.

아이폰에 경우에는 디바이스가 허용하는 범위라는 제약이 따르지만 안드로이드는 아이폰과 다르게 아무리 native라 하더라도 maxium heap 이 존재하기 때문에 큰 이미지를 불러온다던지, 이미지를 계속 불러오다보면 언젠가는 죽는다... 이런!!!

그래서 게임개발에 매우 취약하여 아이폰에 비해 게임이 많이 개발이 되지 않는 이유가 그래서이다. ㅠㅠ

 

기술이 발전하면서 안드로이드 단말의 heapsize도 계속 증가하지만. 그래도 아직까지는 개발자가 고심을 하면서 개발해야 하는 부분에 대해선 변함이 없다

[출처] [Android] 안드로이드에 완벽하지 않은 네이티브....|작성자 개발자


구글이 자체 개발한 새 프로그래밍 언어 '고(Go)'를 공개했다. 현재 리눅스, 프리BSD, 맥OS X, 윈도 환경에서 돌아가는 고 1.0 버전과 핵심 라이브러리와 이 언어용 앱엔진 SDK를 배포한다.

 

영미권 주요 외신들은 28일(현지시각) 구글이 지난 2007년부터 만들기 시작해 2009년 하반기 공식 소개한 언어를 이제 정식판과 앱엔진SDK를 함께 내놓으면서 진정한 잠재력을 발휘하기 시작했다고 보도했다.

 

구글에 따르면 고 1.0 버전은 그 언어와 실제 프로젝트, 제품, 출판이 가능한 수준으로 안정화된 기반을 제공하는 핵심 라이브러리 세트를 정의했다. 이 버전은 바이너리 배포를 지원하는 첫 릴리즈이기도 하다. 공식사이트(http://golang.org/)에서 내려받을 수 있다.

 

▲ 구글 고 언어 공식사이트. 브라우저 안에서 고 언어 코딩을 테스트해볼 수도 있다.

고 언어로 짠 프로그램은 몇년에 걸친 장기간동안 여러 환경에서 돌아가는 프로그램이 필요한 경우에도 그 내용을 변경하지 않고 계속 컴파일해 실행할 수 있다고 구글 측은 설명한다. 이는 고 언어에 대해 쓴 초기 개발자용 참고서 내용도 그 예제와 설명을 고치지 않고 계속 활용할 수 있다는 얘기다.

 

구글은 미래에 대한 호환성을 일종의 안정성이라고 표현한다. 소수의 예외를 빼놓고 본다면 고 언어로 컴파일한 코드는 앞으로 버그 수정과 버전 업데이트가 이뤄지더라도 계속 동일하게 컴파일, 실행될 것이라고도 예고했다. 이 회사는 '고1 호환성 문서'라는 호환성 지침을 통해 더 상세한 설명을 남겼다.

 

한편 함께 공개된 고 언어용 앱엔진SDK는 기존 구글 앱엔진 개발자들이 고 언어를 통해 앱엔진에서 돌아가는 애플리케이션을 만들 수 있게 해준다. 즉 고 언어가 지원하는 플랫폼은 리눅스, 프리BSD, 맥OS X와 윈도 환경에 더해 구글 클라우드도 포함한다는 얘기다. 

한 방송사는 지난 3월 20일 사이버 공격에 상당량의 음원을 잃었다. 몰래 침투한 악성코드가 방송사 내 음원 데이터를 파괴했다. 당시 방송사 기자들의 PC도 손상돼 그간의 취재 내용을 잃었다. PC도 멈춰 직접 손으로 기사를 작성하는 등 혼란이 일었다. 데이터의 사본을 만드는 `백업`은 그래서 중요하다. 예상치 못한 사고에 데이터를 보호하고 다시 정상적인 업무 복구를 가능토록 하는 안전 장치기 때문이다. 백업 전문업체인 아크로니스는 백업·복구 수준을 진단할 수 있는 시스템 안정성 자가 진단 항목 체크리스트를 발표했다. 각각의 질문에 해당되지 않는 경우가 많을 수록 안전 관리에 소홀하고 위험에 더 노출돼 있다는 뜻이다.

△자동화된 시스템 백업 계획 유무는.

테이프와 디스크로 일일이 시스템을 백업하는 기업이 많다. 수 천대의 워크스테이션(PC·노트북)과 서버가 혼재된 IT 환경은 효과적으로 관리할 수 있는 통합 툴이 필요하다. 효과적인 관리 툴이 하나라도 있으면 시스템 및 데이터를 자동 백업·복구하며 보존하기가 용이하다.

△파일이 아닌 시스템 전체 백업이 가능한가.

시스템 백업은 운용체계(OS), 애플리케이션 소프트웨어(SW), 사용자 설정 정보 등을 포함한 모든 데이터를 뜻한다. 이 백업 데이터 하나로 조직 내 다른 서버 및 워크스테이션을 복구할 수 있으며, 파일·폴더·디스크에 구애 받지 않고 빠른 시간에 전체를 한 번에 복구할 수 있기 때문이다.

△시스템 관리 솔루션을 하나로 통합해 사용하는가

가상 및 클라우드 환경이 혼재된 최근의 복잡한 IT 환경에서 물리적 서버 및 PC 관리만 철저해서는 부족하다. 재해 발생 시 이 모든 환경을 안전하게 지켜줄 통합 솔루션을 고민해야 한다. 물리적, 가상 및 클라우드 환경 내 서버 및 PC를 백업 관리하면서 각 서버나 PC의 다양한 OS 버전을 지원하는 통합 솔루션을 확보해두는 것이 좋다.

△정기적으로 시스템을 백업하는가

매번 확인하고 설정할 사항이 많다면 관리에 부담이 된다. 백업을 건너 뛰면, 갑작스런 시스템 중단에 속수무책일 수 있다. 자동으로 정기적인 백업할 수 있는 것이 좋다.

△부팅영역 손상에도 문제없는 시스템 관리 방안은?

3.20 사이버 테러의 악성 코드는 PC의 부팅영역(MBR)을 파괴해서 더욱 치명적이었다. 외부 공격으로 인한 부팅영역 손상에 대처할 수 있는 보호 기능이 필요하다. 네트워크망으로 침투하는 악성코드는 백신만으로 막을 수 없다. 일부 파일이 손상돼도 일단 부팅시켜 복구 작업을 진행할 수 있도록, 나아가 외부 공격에 안전한 보호 파티션에 중요 데이터를 보관할 수 있는 체계를 갖춰야 한다.

△사용하지 않는 응용 프로그램 수시 정리

컴퓨터로 인터넷을 접속하다 보면 각종 실행 파일 및 무료 백신, 보안 접속 프로그램 등을 다운받게 된다. 이렇게 설치된 많은 프로그램을 대부분 쓰지 않고 있다. 프로그램 추가·제거를 통해 정기적으로 사용하지 않는 프로그램을 정리하는 것이 좋다.

△파일명, 저장 위치 선정 기준은?

데이터 관리의 시작은 파일을 만들 때부터 시작된다. 문서를 열지 않고 파일 이름만으로 언제, 어떤 용도로 저장한 것인 지 알 수 있어야 한다. 날짜, 핵심어, 수정횟수, 최근 수정일 등을 이용해 나만의 규칙을 만드는 것이 좋다.

△폴더는 시간, 업무 별로 분류해 다단계로

파일 관리만큼 중요한 것이 파일을 담아두는 폴더다. 그러나 폴더의 생성, 분류, 구분은 업무 특성 및 파일 관리 습관에 따라 천차만별이다. 하나의 규칙을 세워두기란 쉽지 않다. 팁은 번호를 매기는 것이다. `대분류 100`, `중분류 10`, `소분류 1`과 같은 식으로 폴더 앞에 번호를 매겨두면 향후 폴더를 추가할 때마다 규칙을 고민해야 하는 수고를 덜 수 있다.

 

+ Recent posts