맥북에 mysql 설치

1. http://www.mysql.com/downloads에서 MySQL Community Server  다운로드

2. dmg 를 열고 mysql******.pkg  -> MySQLStartupItem.pkg -> MySQL.prefPane 순으로 설치

3. 시스템환경설정 윈도우에 기타란에서 mysql 실행 -> 서버 시작  및 자동시작설정

4. .profile editing

  •   export PATH=/opt/local/bin:/opt/local/sbin:/usr/local/mysql/bin:$PATH 추가
  •   .profile 실행

5. root 이외의 사용자 삭제

  • mysql> delete from mysql.user where not(host=”localhost” and user=”root”);
  • mysql> flush privileges;

6. root password set

  • mysql> set password for ‘root’@’localhost’=password(‘XXXXXXXX’);
  • mysql> flush privileges;

7. character set 설정(sudo vi /etc/my.cnf)

  • [mysqld]
  • character-set-server=utf8
  • collation-server=utf8_general_ci
  •  
  • init_connect=SET collation_connection=utf8_general_ci
  • init_connect=SET NAMES utf8
  • [client]
  • default-character-set=utf8
  • [mysql]
  • default-character-set=utf8

웹기술로 멀티플랫폼 앱개발을 한번에

스마트폰 시대. 이용자는 즐거운 비명을 지를 지 몰라도, 개발자들은 괴롭다. 평소 PC용 웹으로만 제공하면 되던 서비스를 모바일웹으로 확장해야 하니 전에없이 일이 늘어난 느낌이다. 스마트폰 종류는 또 왜 그리 많은지. 아이폰, 안드로이드폰, 블랙베리까지. 요즘엔 ‘태블릿’이란 게 나오더니 화면 크기도 제각각인 단말기가 또 사람을 괴롭힌다. 각 운영체제와 단말기 화면에 맞는 응용프로그램(앱)을 일일이 만들려니 보통 일이 아니다. 개발 환경도 다르고, 모르는 기술은 배워가며 적용해야 한다. 요즘엔 ‘이용자 천국, 개발자 지옥’이란 말이 예사로이 들리지 않는다.

 

개발자만 수렁에 빠졌나. 이동통신사나 제조사 사정도 크게 다르지 않다. 이통사는 iOS, 안드로이드OS, 블랙베리OS 등 다양한 모바일 OS를 탑재한 스마트폰을 유통한다. 제조사도 마찬가지다. 기계만 뿌려놓으면 뭐하나. 그 위에서 돌아갈 소프트웨어, 즉 앱을 확보해야 한다. 헌데 OS별로 일일이 앱을 만드는 개발자를 보고 있노라면 속이 탄다. 진열대가 찰 때까지 마냥 기다릴 수도 없는 노릇이다.

 

이런 고민들을 한꺼번에 해결할 수 없을까. 조만영 미래웹기술연구소 대표는 ‘표준 웹기술’에서 해답을 찾으라고 말한다. 웹 기술? 그건 웹개발자들에게나 해당되는 얘기 아닌가? 네이티브 앱이 아닌, 모바일웹 기반의 ‘웹 앱’을 만들라는 얘기처럼 들리는데….

 

“표준 웹기술을 활용해 네이티브 앱을 만들자는 흐름은 지난해부터 꾸준히 증가해왔습니다. 국내에선 아직 잘 알려지지 않았지만요. 요즘처럼 OS와 화면 크기가 제각각인 모바일 환경에서, 개발자가 일일이 그 환경에 맞는 네이티브 앱을 개발하기란 만만찮은 일이죠. 표준 웹기술을 활용하면 한 번 제작한 앱을 여러 OS나 기기로 한꺼번에 배포할 수 있습니다. 개발 비용도, 시간도 단축시키고 N스크린 환경에도 발빠르게 대응할 수 있는 것이죠.”

 

 

여기서 표준 웹기술이란 HTML, CSS, 자바스크립트를 일컫는다. 국제표준 제정기구인 월드와이드웹 컨소시엄(W3C)이 제정한 표준 기술들이다. 웹개발자에겐 친숙한 기술인데다 특정 기업에 종속되지 않은 열린 기술이다. 헌데, 이들을 이용해 어떻게 서로 다른 OS와 기기에 맞는 네이티브 앱을 만든다는 얘길까.

 

비결은 ‘폰갭‘이란 기술이다. 웹으로 만든 앱(웹 앱)을 스마트폰이나 태블릿용 네이티브 앱으로 변환해주는 오픈소스 프레임워크다. 화면 크기나 플랫폼에 구애받지도 않는다. 예컨대 표준 웹기술을 이용해 전자책 앱을 만든 다음, 이를 폰갭 기술을 이용해 아이폰·안드로이드폰·블랙베리용 앱이나 아이패드·갤럭시탭용 앱으로 한 번에 변환해 배포할 수 있다는 얘기다.

 

이같은 기술이 새로운 건 아니다. 2008년 폰갭을 시작으로 지난해 ‘타이태니엄 앱셀러레이터‘가 이같은 네이티브 앱 변환 프레임워크를 제공한다. 어도비시스템즈는 올해 ‘어도비CS5.5′를 내놓으며 ‘드림위버CS5.5′에 폰갭 프레임워크를 적용하기도 했다. 국내에선 올해 KTH가 ‘앱스프레소‘란 이름으로 비슷한 통합 개발환경을 공개한 바 있다. 현재 폰갭처럼 웹 앱을 네이티브 앱으로 변환해주는 기술은 20여종이 나와 있다.

 

“웹은 태어날 때부터 열린 기술이었습니다. 표준화된 기술은 웹브라우저만 지원되면 어떤 기기나 OS에서든 막힘 없이 이용할 수 있게 해주죠. 특허도 없고, 어떤 회사든 사용할 수 있습니다. 그래서 개선이 빨리 이뤄지죠. 기기를 제한한 적도 없습니다. 태생이 N스크린에 대응하는 기술이란 뜻입니다. 그런 웹 기술의 중립성이 지금 시대와 맞아떨어져 꽃을 피우는 것입니다.”

 

 

기술 원리는 이렇다. 웹개발자는 HTML이나 CSS, 자바스크립트 기술을 이용해 원하는 기능을 담은 웹 앱을 제작한다. 그런 다음 폰갭 같은 프레임워크로 이를 감싸준다. 이 과정은 마우스 클릭 한 번으로 끝난다. 폰갭 프레임워크를 적용한 앱은 말 그대로 스마트폰이 인식하는 네이티브 앱이 된다. 이제 개발자는 이 앱을 애플 앱스토어나 안드로이드마켓, 블랙베리 앱월드 등 원하는 모바일 앱스토어에 뿌리면 된다.

 

폰갭은 게다가 오픈소스 프레임워크다. 개발자가 일일이 이용자화면(UI)을 구현하기 위해 번거로운 코딩 과정을 거칠 필요도 없다. 2006년 W3C가 ‘위젯’ 스펙을 제정한 뒤 일이 쉬워졌다. 웹에 공개된 다양한 웹UI 프레임워크를 활용하면 UI 설계 고민도 줄어든다. jQ터치센차터치 같은 웹사이트를 방문하면 다양한 자바스크립트 라이브러리와 예제들을 보고 내려받을 수 있다.

 

 

이같은 기술들을 활용하면 개발자는 어떤 이익을 얻을 수 있을까. 무엇보다 훨씬 큰 시장에 자기 앱을 인정받을 기회를 갖게 된다. 아이폰이나 안드로이드폰 시장별로 앱을 따로 제작하지 않아도, 한 번 제작한 앱을 여러 시장에 동시에 선보일 수 있기 때문이다. 자연스레 수익 창출 기회도 올라간다.

 

이런 움직임은 이미 해외에서 시작됐다. 2010년 2월 열린 ‘모바일 월드 콩그레스 2010′에선 전세계 24개 이통사가 참여한 ‘홀세일 앱 커뮤니티’(WAC)가 공식 출범했다. 국내 KT와 SK텔레콤을 포함해 AT&T, 버라이즌, 보다폰, 도이치텔레콤 등 유명 이통사가 ‘열린 앱 장터’를 만들자는 데 뜻을 모은 셈이다. 삼성전자와 LG전자, 소니에릭슨 같은 제조업체도 힘을 보탰다. 국내에서도 이통 3사를 중심으로 오는 8월을 목표로 한국형 통합 앱스토어 KWAC 구축을 추진중이다.

 

“폰갭 같은 기술은 한마디로 웹 앱을 감싸는 기술에 불과합니다. 실제 앱 성능은 HTML과 CSS, 자바스크립트로 만든 앱의 구동 능력에 따라 좌우되죠. 이렇게 만든 네이티브 앱은 웹브라우저 엔진을 기반으로 동작합니다. 다만, 현재 스마트폰에 내장된 웹브라우저가 제대로 지원하지 않는 웹GL 기반 앱들은 아직까지 사각지대로 남아 있습니다.”

 

미래웹기술연구소가 도입한 폰갭은 올해 4월28일 ‘폰갭0.9.5′를 내놓으며 국내 삼성전자가 선보인 ‘바다OS’도 공식 지원하기 시작했다. 웹 앱으로 만들어 바다OS 앱스토어인 ‘삼성 웹 앱스’로도 제공할 수 있게 된 셈이다. 미래웹기술연구소는 폰갭보다 앞선 2월부터 바다OS용 앱 프레임워크 연구를 진행해왔다. 연구소는 최근 이 결과를 담은 보고서를 무료로 내려받을 수 있도록 PDF 파일로 공개했다. PDF로 만든 전자책을 간단한 변환 과정을 거쳐 여러 앱스토어에 손쉽게 적용할 수 있는 전자책 앱 변환 솔루션도 제공한다.

 

“지금은 스마트폰 뿐 아니라 가전 영역도 N스크린, N디바이스 환경으로 변화하고 있습니다. 스마트폰 앱 개발 트렌드도 웹기술을 활용하는 쪽으로 선회하고 있고요. 앞으로는 웹기술이 앱 개발 분야에서 더욱 각광받게 될 겁니다. 폰갭 같은 기술은 최근 적용된 바다OS까지 모두 7종류 모바일 운영체제를 지원합니다. 국내 개발자들도 이런 흐름에 빨리 올라타고, 표준 웹기술을 활용해 N스크린 환경에 효과적으로 대응했으면 하는 바람입니다.”

 

조만영 미래웹기술연구소 대표는 2006년 8월부터 4년6개월여 동안 오페라소프트웨어에서 일하며 국내외 주요 스마트폰과 TV, 셋톱박스 등에 모바일 웹브라우저를 적용하도록 지원하는 일을 도맡았다. 삼성전자 옴니아1·2에 들어간 ‘오페라 모바일’이나 삼성전자·보다폰 전략폰인 ‘보다폰360′에 들어간 웹브라우저가 모두 그의 작품이다. 최근에는 휴맥스 셋톱박스에 웹브라우저를 탑재해 스마트TV 경험을 확장하는 작업을 진행하기도 했다. W3C 대한민국 사무국에서 ‘비즈니스 앤 테크놀로지 스페셜리스트’를 맡아 웹 기술의 중요성을 알리고 강연하는 웹표준 전도사이기도 하다.

ArcXML Programmer’s Reference Guide for ArcIMS 9.2_Using GET_FEATURES and FEATURES

ArcXML Programmer’s Reference Guide for ArcIMS 9.2
Using GET_FEATURES and FEATURES

Introduction

GET_FEATURES is a versatile request that can be used to access geometric information about selected items, the attribute results of a query, or both. The information is returned in a FEATURES response.

GET_FEATURES requests can be made on Image, ArcMap Image, and Feature Services. The following map configuration file is used for the GET_FEATURES examples in this document. The file consists of five layers from the ESRIDATA data set. The following table summarizes the layer names, shapefile names, and layer ID numbers.

Layer Name Shapefile Name Layer ID
Ocean WORLD30 0
Countries CNTRY94 1
States STATES 2
Provinces PROVINCE 3
Cities CITIES 4

Map configuration file used with the GET_FEATURES requests that follow

<?xml version=”1.0″ encoding=”UTF-8″?>
<ARCXML version=”1.1″>
<CONFIG>
<ENVIRONMENT>
<LOCALE country=”US” language=”en” variant=”” />
<UIFONT color=”0,0,0″ name=”Arial” size=”12″ style=”regular” />
</ENVIRONMENT>
<MAP dynamicfeature=”true” >
<PROPERTIES>
<ENVELOPE minx=”-180″ miny=”-90″ maxx=”180″ maxy=”90″ name=”Initial_Extent” />
<MAPUNITS units=”decimal_degrees” />
<FILTERCOORDSYS id=”4326″ />
<FEATURECOORDSYS id=”4326″/>
</PROPERTIES>
<WORKSPACES>
<SHAPEWORKSPACE name=”shp_ws-0″ directory=”C:\ESRIDATA\WORLD” />
<SHAPEWORKSPACE name=”shp_ws-2″ directory=”C:\ESRIDATA\USA” />
<SHAPEWORKSPACE name=”shp_ws-3″ directory=”C:\ESRIDATA\CANADA” />
</WORKSPACES>
<LAYER type=”featureclass” name=”Ocean” visible=”true” id=”0″>
<DATASET name=”WORLD30″ type=”polygon” workspace=”shp_ws-0″ />
<SIMPLERENDERER>
<SIMPLEPOLYGONSYMBOL filltype=”solid” fillcolor=”0,153,255″ />
</SIMPLERENDERER>
</LAYER>
<LAYER type=”featureclass” name=”Countries” visible=”true” id=”1″>
<DATASET name=”CNTRY94″ type=”polygon” workspace=”shp_ws-0″ />
<SIMPLERENDERER>
<SIMPLEPOLYGONSYMBOL filltype=”solid” fillcolor=”255,255,153″/>
</SIMPLERENDERER>
</LAYER>
<LAYER type=”featureclass” name=”States” visible=”true” id=”2″>
<DATASET name=”STATES” type=”polygon” workspace=”shp_ws-2″ />
<SIMPLERENDERER>
<SIMPLEPOLYGONSYMBOL filltype=”solid” fillcolor=”255,0,0″ />
</SIMPLERENDERER>
</LAYER>
<LAYER type=”featureclass” name=”Provinces” visible=”true” id=”3″>
<DATASET name=”province” type=”polygon” workspace=”shp_ws-3″ />
<SIMPLERENDERER>
<SIMPLEPOLYGONSYMBOL filltype=”solid” fillcolor=”0,153,0″ />
</SIMPLERENDERER>
</LAYER>
<LAYER type=”featureclass” name=”Cities” visible=”true” id=”4″>
<DATASET name=”CITIES” type=”point” workspace=”shp_ws-0″ />
<SIMPLERENDERER>
<SIMPLEMARKERSYMBOL color=”102,0,102″ width=”8.0″ />
</SIMPLERENDERER>
</LAYER>
</MAP>
</CONFIG>
</ARCXML>

GET_FEATURES can query only one layer of an ArcIMS service at a time. The request must include either the SPATIALQUERY or QUERY element. The query can be made on attributes, a spatial filter, or a combination of the two. SPATIALQUERY is recommended for all queries since it can handle both attribute and spatial queries.

The following example is a typical GET_FEATURES request. The LAYER has been identified by its ID, which must match the layer ID in the map configuration file. In this example, id=”4″ refers to the Cities layer. The SPATIALQUERY includes both an attribute query and a spatial filter. The attribute query is for cities with more than 10 million people. The spatial query limits the extent to an area that covers North America.

GET_FEATURES request with LAYER and SPATIALQUERY

<?xml version=”1.0″ encoding=”UTF-8″ ?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES featurelimit=”25″ beginrecord=”0″ outputmode=”xml” geometry=”false” envelope=”true” globalenvelope=”true”>
<LAYER id=”4″ />
<SPATIALQUERY subfields=”NAME POPULATION #SHAPE#” where=”POPULATION > 10000000″ >
<SPATIALFILTER relation=”area_intersection”>
<ENVELOPE minx=”-129″ miny=”16″ maxx=”-50″ maxy=”62″/>
</SPATIALFILTER>
</SPATIALQUERY>
</GET_FEATURES>
</REQUEST>
</ARCXML>

The information returned in the FEATURES response varies depending on the attributes selected in GET_FEATURES. Each of the attributes is discussed in more detail later in this document.

The following example is the response to the above request. Two cities, Mexico City and New York City, meet the criteria set forth in the SPATIALQUERY. The response includes the location of each city using ENVELOPE. The requested subfields NAME, POPULATION, and #SHAPE# are also included. The response also contains the total number of features returned in FEATURECOUNT and a global extent that encompasses both cities in the last ENVELOPE listed.

FEATURES response

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<RESPONSE>
<FEATURES>
<FEATURE>
<ENVELOPE minx=”-99.127571105957″ miny=”19.4270458221436″ maxx=”-99.127571105957″ maxy=”19.4270458221436″/>
<FIELDS NAME=”Mexico City” POPULATION=”14100000″ #SHAPE#=”[Geometry]” />
</FEATURE>
<FEATURE>
<ENVELOPE minx=”-74.0999984741211″ miny=”40.75″ maxx=”-74.0999984741211″ maxy=”40.75″/>
<FIELDS NAME=”New York” POPULATION=”16472000″ #SHAPE#=”[Geometry]” />
</FEATURE>
<FEATURECOUNT count=”2″ hasmore=”false” />
<ENVELOPE minx=”-99.127571105957″ miny=”19.4270458221436″ maxx=”-74.0999984741211″ maxy=”40.75″/>
</FEATURES>
</RESPONSE>
</ARCXML>

Accessing an ArcIMS Service using GET_FEATURES

Based on attribute settings in a GET_FEATURES request, the FEATURES response returns data in a feature stream or in ArcXML format. Requests to Feature Services are sent to the Feature Server and use the feature streaming format. The stream is a compressed binary format that can be interpreted by only the ArcIMS Java Viewers or ArcExplorer-Java Edition. The binary stream that is returned includes both feature and attribute data.

GET_FEATURES requests to Image and ArcIMS Image Services are limited to data in ArcXML format. When querying an Image or ArcMap Image Service, two requests must be made to get both a map and attribute data. Requests for a map use GET_IMAGE. Requests for attributes use GET_FEATURES. In order to send a GET_FEATURES request to and Image Service, the request must be “rerouted”. The routing is done in the URL when the request is sent. An example URL is (all one line):

http://mycomputer.domain.com/servlet/com.esri.esrimap.Esrimap
&ServiceName=MyService
&CustomService=Query
&Form=True&Encode=True

When using ArcMap Image Services, both GET_IMAGE and GET_FEATURES requests are sent to the ArcMap Server. No rerouting is needed for GET_FEATURES requests.

The table below summarizes the differences when using GET_FEATURES on Feature and Image Services:

Feature Services Image Services ArcMap Image Services
GET_FEATURES request uses: Feature Streaming ArcXML ArcXML
FEATURES response uses: Feature Streaming ArcXML ArcXML
GET_FEATURES request for attribute data sent to: Feature Server Query Server ArcMap Server
Request to draw map sent to: Feature Server using GET_FEATURES Image Server using GET_IMAGE ArcMap Server using GET_IMAGE

GET_FEATURES has a series of attributes that are used to format the FEATURES response. The formatting attributes are outputmode, compact, geometry, skipfeatures, envelope, attributes, checkesc, and globalenvelope. Other attributes are used to keep track of the number of features in the request and response: beginrecord, featurelimit, count, and hasmore. These attributes are discussed in detail below.

In the following examples and explanations, all requests and responses are in ArcXML format. The requests are made to the map configuration file in the Introduction section, which is assumed to be an Image Service.

Outputmode

The outputmode attribute defines whether the data is streamed to the client or sent to the client in ArcXML format.

Outputmodecan have one of three values:

  • binary
  • xml
  • newxml

If outputmode is binary, then the request is sent to the Feature Server and the response are in a compressed binary stream. This is the default.

If outputmode=”xml”, then all features are returned in a short ArcXML format inside the FIELDS element of the FEATURES response.

In the next example, the request is made on the States layer (id=”2″). The SPATIALQUERY asks for the subfields STATE_NAME and SUB_REGION for the State of Washington.

GET_FEATURES request when outputmode=”xml”

<?xml version=”1.0″ encoding=”UTF-8″?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES outputmode=”xml”>
<LAYER id=”2″ />
<SPATIALQUERY subfields=”state_name sub_region”
where=”STATE_NAME=’Washington'” />
</GET_FEATURES>
</REQUEST>
</ARCXML>

The response returns the requested information on Washington. The attributes are returned on one line inside the FIELDS element. The attribute names are the same as the field names in the database.

FEATURES response

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<RESPONSE>
<FEATURES>
<FEATURE>
<FIELDS STATE_NAME=”Washington” SUB_REGION=”Pacific” />
</FEATURE>
<FEATURECOUNT count=”1″ hasmore=”false” />
</FEATURES>
</RESPONSE>
</ARCXML>

The “xml” outputmode can be used only when no XML parser is used since the attribute names in FIELD are always changing. When using an XML parser, outputmode should be set to “newxml”, which returns data in a valid XML format. If outputmode=”newxml”, then all fields are returned using the FIELD element. The next request asks for the same information on Washington as the previous request.

GET_FEATURES request when outputmode=”newxml”

<?xml version=”1.0″ encoding=”UTF-8″?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES outputmode=”newxml”>
<LAYER id=”2″ />
<SPATIALQUERY subfields=”state_name sub_region” where=”STATE_NAME=’Washington'” />
</GET_FEATURES>
</REQUEST>
</ARCXML>

The response returns the same information on Washington but each attribute is included inside a separate FIELD element. With this format, the attribute names are standardized in FIELD and do not change.

FEATURES response

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<RESPONSE>
<FEATURES>
<FEATURE>
<FIELDS>
<FIELD name=”STATE_NAME” value=”Washington” />
<FIELD name=”SUB_REGION” value=”Pacific” />
</FIELDS>

</FEATURE>
<FEATURECOUNT count=”1″ hasmore=”false” />
</FEATURES>
</RESPONSE>
</ARCXML>

Geometry and Compact

The attribute geometry is used to determine whether feature geometry is returned. The attribute compact is a toggle that can be used to return the geometry in a long or short format in the FEATURES response. By default, the geometry is returned in a longer format using POINT. Note that geometry is returned only if “#SHAPE#” or “#ALL#” is included in subfields in the SPATIALQUERY.

In the next request, geometry is set to “true”, and compact is set to “false”. The “#SHAPE#” field has been added to the list of subfields in SPATIALQUERY.

GET_FEATURES request when outputmode=”xml”, geometry=”true”, and compact=”false”

<?xml version=”1.0″ encoding=”UTF-8″?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES outputmode=”xml” geometry=”true” compact=”false”>
<LAYER id=”2″ />
<SPATIALQUERY subfields=”#SHAPE# state_name sub_region”
where=”STATE_NAME=’Washington'” />
</GET_FEATURES>
</REQUEST>
</ARCXML>

In the response, the geometry for Washington is returned in a longer format. Each point in the polygon is recorded inside the POINT element.

FEATURES response

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<RESPONSE>
<FEATURES>
<FEATURE>
<FIELDS STATE_NAME=”Washington” SUB_REGION=”Pacific” #SHAPE#=”[Geometry]” />
<POLYGON>
<RING>
<POINT x=”-122.400749″ y=”48.2253952″ />
<POINT x=”-122.461585″ y=”48.2285423″ />
<POINT x=”-122.453155″ y=”48.1286735″ />
.  .  .  .  .
<POINT x=”-122.400749″ y=”48.2253952″ />

</RING>
</POLYGON>
</FEATURE>
<FEATURECOUNT count=”1″ hasmore=”false” />
</FEATURES>
</RESPONSE>
</ARCXML>

When compact=”true”, the response uses COORDS to return the geometry data in a compact format. In the next request, geometry and compact are set to “true”.

GET_FEATURES request when outputmode=”xml”, geometry=”true”, and compact=”true”

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES outputmode=”xml” geometry=”true” compact=”true”>
<LAYER id=”2″ />
<SPATIALQUERY subfields=”#SHAPE# state_name sub_region”
where=”STATE_NAME=’Washington'” />
</GET_FEATURES>
</REQUEST>
</ARCXML>

In the response, the coordinates are all grouped together inside the COORDS element. Note that this response uses the default separators between the coordinates and coordinate pairs, which are a space and semicolon, respectively. These separators can be changed by using SEPARATORS in the map configuration file or request.

FEATURES response

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<RESPONSE>
<FEATURES>
<FEATURE>
<FIELDS STATE_NAME=”Washington” SUB_REGION=”Pacific” #SHAPE#=”[Geometry]” />
<POLYGON>
<RING>
<COORDS>-122.400749 48.2253952;-122.461585
48.2285423;-122.453155 48.1286735; . . . . .;-122.400749 48.2253952;-122.461585 48.2285423</COORDS>

</RING>
</POLYGON>
</FEATURE>
<FEATURECOUNT count=”1″ hasmore=”false” />
</FEATURES>
</RESPONSE>
</ARCXML>

Beginrecord, Featurelimit, Count, Hasmore

The attributes beginrecord and featurelimit are used together in GET_FEATURES to limit the number of features returned in the FEATURES response. If too many features are returned, the processing time in the client may become unacceptable.

Featurelimit is used to set the maximum number of features to return. Beginrecord is used to start the retrieval at a specified record. For example, if a maximum of seven features should be returned, featurelimit is set to “7”. For the first retrieval, beginrecord starts at “1” (the default). The following example uses featurelimit and beginrecord.

GET_FEATURES request when featurelimit=”7″ and beginrecord=”1″

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES featurelimit=”7″ beginrecord=”1″ outputmode=”xml” geometry=”false”>
<LAYER id=”2″ />
<SPATIALQUERY subfields=”#SHAPE# state_name sub_region”
where=”SUB_REGION=’Mtn'” />
</GET_FEATURES>
</REQUEST>
</ARCXML>

The attributes count and hasmore in FEATURECOUNT in the FEATURES response contain information on the number of features returned and whether more features are available to extract. To determine whether more features are available to extract, hasmore is set to “true” for more records or “false” for no more records. In this example, the number of features returned in count is “7”, and hasmore is set to “true”.

FEATURES response

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<RESPONSE>
<FEATURES>
<FEATURE>
. . . First 6 Records Returned . . .
</FEATURE>
<FEATURE>
<FIELDS STATE_NAME=”Arizona” SUB_REGION=”Mtn” #SHAPE#=”[Geometry]” />
</FEATURE>
<FEATURECOUNT count=”7″ hasmore=”true” />
</FEATURES>
</RESPONSE>
</ARCXML>

If more features are still available, another GET_FEATURES request should be sent, this time with beginrecord set to “8”. The developer is responsible for handling additional requests programmatically.

GET_FEATURES request when featurelimit=”7″ and beginrecord=”8″

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES featurelimit=”7″ beginrecord=”8″ outputmode=”xml” geometry=”false”>
<LAYER id=”2″ />
<SPATIALQUERY subfields=”#SHAPE# state_name sub_region”
where=”SUB_REGION=’Mtn'” />
</GET_FEATURES>
</REQUEST>
</ARCXML>

In the response, count is set to “1”, and hasmore is set to “false”, indicating that no more records need to be extracted.

FEATURES response

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<RESPONSE>
<FEATURES>
<FEATURE>
<FIELDS STATE_NAME=”New Mexico” SUB_REGION=”Mtn” #SHAPE#=”[Geometry]” />
</FEATURE>
<FEATURECOUNT count=”1″ hasmore=”false” />
</FEATURES>
</RESPONSE>
</ARCXML>

Skipfeatures

When the attribute skipfeatures is used, no features are returned; only the feature count is returned. Skipfeatures is valid only if outputmode is “xml” or “newxml”. In the following request, a query is made on the Cities layer (id=”4″) for cities with a population greater than 10 million.

GET_FEATURES request using skipfeatures

<?xml version=”1.0″ encoding=”UTF-8″?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES skipfeatures=”true” outputmode=”newxml”>
<LAYER id=”4″ />
<SPATIALQUERY subfields=”#ALL#” where=”POPULATION &gt; 10000000″ />
</GET_FEATURES>
</REQUEST>
</ARCXML>

The response includes only the FEATURECOUNT. In this example, 11 cities have a population greater than 10 million.

FEATURES response

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<RESPONSE>
<FEATURES>
<FEATURECOUNT count=”11″ hasmore=”false” />
</FEATURES>
</RESPONSE>
</ARCXML>

<!— The number of features returned depends on beginrecord and featurelimit. If featurelimit has a value, the feature count will never be larger than that value. In the next example, featurelimit is set to “5” on the same request.

GET_FEATURES request using skipfeatures and featurelimit





<?xml version=”1.0″ encoding=”UTF-8″?>
<ARCXML version="1.1">
  <REQUEST>
    <GET_FEATURES skipfeatures=”true” outputmode="newxml" featurelimit=”5″ beginrecord=”1″>
      <LAYER id="4" />
      <SPATIALQUERY subfields="#ALL#" where="POPULATION &gt; 10000000" />
    </GET_FEATURES>
  </REQUEST>
</ARCXML>

In the response, FEATURECOUNT is “5”, but hasmore is set to “true”, indicating that there are more features to extract.

FEATURES response





<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
  <RESPONSE>
    <FEATURES>
      <FEATURECOUNT count=”5″ hasmore=”true” />
    </FEATURES>
  </RESPONSE>
</ARCXML>

—>To get the total number of features in a layer, a SPATIALQUERY can be specified with an empty where clause. Note that even when skipfeatures is set to “true”, the query is executed and features are actually processed before they are counted.

GET_FEATURES request using skipfeatures and empty where clause

<?xml version=”1.0″ encoding=”UTF-8″?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES skipfeatures=”true” outputmode=”newxml” >
<LAYER id=”4″ />
<SPATIALQUERY subfields=”#ALL#” where=”” />
</GET_FEATURES>
</REQUEST>
</ARCXML>

In the response, the total number of features for the layer is included.

FEATURES response

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<RESPONSE>
<FEATURES>
<FEATURECOUNT count=”606″ hasmore=”false” />
</FEATURES>
</RESPONSE>
</ARCXML>

Envelope, Attributes, and Checkesc

The attribute envelope is used to request the bounding envelope of each returned feature.

The attribute attributes is used to determine whether the attribute data should be returned. If only geometry is needed, then attributes can be set to “false”.

The attribute checkesc is used if the returned data should include escaped characters for ampersand, single quote, double quote, less than, and greater than. For example, if the value for SUB_REGION in the States layer were “P&NW”, then:

  • If checkesc=”false”, in the response the value of SUB_REGION is “P&NW”.
  • If checkesc=”true”, the value of SUB_REGION is “P&amp;NW”.

In the next request, attributes, envelope, and checkesc are set to “true”.

GET_FEATURES request when attributes=”true”, envelope=”true”, and checkesc=”true”

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES outputmode=”xml” geometry=”false” attributes=”true” envelope=”true” checkesc=”true”>
<LAYER id=”2″ />
<SPATIALQUERY subfields=”#SHAPE# state_name sub_region” where=”STATE_NAME=’Washington'” />
</GET_FEATURES>
</REQUEST>
</ARCXML>

In the response, ENVELOPE contains the bounding extent of Washington. FIELDS contains the attribute information. The value for SUB_REGION has been escaped to “P&amp;NW”.

FEATURES response

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<RESPONSE>
<FEATURES>
<FEATURE>
<ENVELOPE minx=”-124.731422″ miny=”45.5432510″ maxx=”-116.918151″ maxy=”49.0000038″/>
<FIELDS STATE_NAME=”Washington” SUB_REGION=”P&amp;NW” #SHAPE#=”[Geometry]” />
</FEATURE>
<FEATURECOUNT count=”1″ hasmore=”false” />
</FEATURES>
</RESPONSE>
</ARCXML>

Globalenvelope

The attribute globalenvelope is used to request the bounding envelope of all features returned in the response. Since the number of features returned depends on beginrecord and featurelimit, only the actual records extracted based on featurelimit are included in the overall envelope. Note that in order for the global envelope to be returned, subfields in the SPATIALQUERY must include either “#SHAPE#” or “#ALL#”.

In the next example, attributes is set to “false” and envelope and globalenvelope are set to “true”. A query is made on the States layer for states in the Pacific region.

GET_FEATURES request when attributes=”false”, envelope=”true”, and gloabalenvelope=”true”

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES outputmode=”xml” geometry=”false” attributes=”false” envelope=”true” globalenvelope=”true”>
<LAYER id=”2″ />
<SPATIALQUERY subfields=”#SHAPE#” where=”SUB_REGION=’Pacific'” />
</GET_FEATURES>
</REQUEST>
</ARCXML>

In the response, an ENVELOPE is included for each FEATURE but no attributes are included for the FEATURE. At the end of the response, the overall bounding ENVELOPE is included.

FEATURES response

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<RESPONSE>
<FEATURES>
<FEATURE>
<ENVELOPE minx=”-124.731422424316″ miny=”45.5432510375977″ maxx=”-116.918151855469″ maxy=”49.0000038146973″/>
</FEATURE>
<FEATURE>
<ENVELOPE minx=”-124.558395385742″ miny=”41.9877891540527″ maxx=”-116.469444274902″ maxy=”46.2362594604492″/>
</FEATURE>
<FEATURE>
<ENVELOPE minx=”-124.391471862793″ miny=”32.5357246398926″ maxx=”-114.124450683594″ maxy=”42.0023460388184″/>
</FEATURE>
<FEATURE>
<ENVELOPE minx=”-160.245178222656″ miny=”18.9247817993164″ maxx=”-154.793869018555″ maxy=”22.2324924468994″/>
</FEATURE>
<FEATURE>
<ENVELOPE minx=”-178.215026855469″ miny=”51.5844345092773″ maxx=”-129.990539550781″ maxy=”71.4066467285156″/>
</FEATURE>
<FEATURECOUNT count=”5″ hasmore=”false” />
<ENVELOPE minx=”-178.215026855469″ miny=”18.9247817993164″ maxx=”-114.124450683594″ maxy=”71.4066467285156″/>
</FEATURES>
</RESPONSE>
</ARCXML>

Transforming Geometry

Both FILTERCOORDSYS and FEATURECOORDSYS can be used with GET_FEATURES to transform data. Data that can be transformed includes the ENVELOPE and coordinates listed under either POINT or COORDS.

FILTERCOORDSYS is used to specify the coordinate system of the requesting client. FEATURECOORDSYS is used to specify the coordinate system to which the service should be transformed. For more information on these elements, see Using Projection Elements.

In this first example, the client is in Robinson, so FILTERCOORDSYS id=”54030″. In the request, the coordinates in the SPATIALFILTER are in Robinson. FEATURECOORDSYS also has an id=”54030″, which means that the requested data should be returned in Robinson. The request is made on the Cities layer (id=”4″).

The service, by default, is in geographic coordinates. This means that the ArcIMS Spatial Server receives the request and first transforms the Robinson coordinates into geographic coordinates. After the extraction has been made, the coordinates are transformed back into Robinson coordinates. Depending on the complexity of the data and the amount of features extracted, the processing time can be considerable when data transformations are involved.

Using FILTERCOORDSYS and FEATURECOORDSYS in a GET_FEATURES request

<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES featurelimit=”25″ beginrecord=”0″ outputmode=”xml” geometry=”true” envelope=”true” compact=”true”>
<LAYER id=”4″ />
<SPATIALQUERY subfields=”#ALL#” where=”POPULATION > 10000000″ >
<FILTERCOORDSYS id=”54030″ />
<FEATURECOORDSYS id=”54030″ />

<SPATIALFILTER relation=”area_intersection”>
<ENVELOPE minx=”-11395772″ miny=”930558″ maxx=”-3878142″ maxy=”6419621″/>
</SPATIALFILTER>
</SPATIALQUERY>
</GET_FEATURES>
</REQUEST>
</ARCXML>

In the response, the coordinates inside the ENVELOPE and COORDS elements are returned in Robinson.

FEATURES response with FILTERCOORDSYS and FEATURECOORDSYS set to Robinson (“54030”)

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<RESPONSE>
<FEATURES>
<FEATURE>
<ENVELOPE minx=”-9197766.55659269″ miny=”2075483.92733491″ maxx=”-9197766.55659269″ maxy=”2075483.92733491″/>
<FIELDS NAME=”Mexico City” COUNTRY=”Mexico” POPULATION=”14100000″ CAPITAL=”Y” #SHAPE#=”[Geometry]” #ID#=”221″ />
<MULTIPOINT>
<COORDS>-9197766.55659269 2075483.92733491</COORDS>
</MULTIPOINT>
</FEATURE>
<FEATURE>
<ENVELOPE minx=”-6419931.44911452″ miny=”4351163.61842219″ maxx=”-6419931.44911452″ maxy=”4351163.61842219″/>
<FIELDS NAME=”New York” COUNTRY=”US” POPULATION=”16472000″ CAPITAL=”N” #SHAPE#=”[Geometry]” #ID#=”549″ />
<MULTIPOINT>
<COORDS>-6419931.44911452 4351163.61842219</COORDS>
</MULTIPOINT>
</FEATURE>
<FEATURECOUNT count=”2″ hasmore=”false” />
</FEATURES>
</RESPONSE>
</ARCXML>

In the next example, the client is once again in Robinson, and FILTERCOORDSYS id=”54030″. However, the data to be returned is requested in geographic coordinates. Therefore, FEATURECOORDSYS is set to id=”4326″. This request should process faster than the previous one. When the ArcIMS Spatial Server receives the request, the Robinson coordinates must still be transformed to geographic coordinates. However, since the data is requested back in geographic coordinates, no further transformation is needed on the data.

Using FILTERCOORDSYS in Robinson (“54030”) and FEATURECOORDSYS in geographic coordinates (“4326”) in a GET_FEATURES request

<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES featurelimit=”25″ beginrecord=”0″ outputmode=”xml” geometry=”true” envelope=”true” compact=”true”>
<LAYER id=”4″ />
<SPATIALQUERY subfields=”#ALL#” where=”POPULATION > 10000000″ >
<FILTERCOORDSYS id=”54030″ />
<FEATURECOORDSYS id=”4326″ />

<SPATIALFILTER relation=”area_intersection”>
<ENVELOPE minx=”-11395772″ miny=”930558″ maxx=”-3878142″ maxy=”6419621″/>
</SPATIALFILTER>
</SPATIALQUERY>
</GET_FEATURES>
</REQUEST>
</ARCXML>

In the response, the coordinate data in the ENVELOPE and COORDS elements is in geographic coordinates.

FEATURES response with FILTERCOORDSYS set to Robinson (54030) and FEATURECOORDSYS set to geographic coordinates (4326)

<?xml version=”1.0″ encoding=”UTF8″?>
<ARCXML version=”1.1″>
<RESPONSE>
<FEATURES>
<FEATURE>
<ENVELOPE minx=”-99.127571105957″ miny=”19.4270458221436″ maxx=”-99.127571105957″ maxy=”19.4270458221436″/>
<FIELDS NAME=”Mexico City” COUNTRY=”Mexico” POPULATION=”14100000″ CAPITAL=”Y” #SHAPE#=”[Geometry]” #ID#=”221″ />
<MULTIPOINT>
<COORDS>-99.127571105957 19.4270458221436</COORDS>
</MULTIPOINT>
</FEATURE>
<FEATURE>
<ENVELOPE minx=”-74.0999984741211″ miny=”40.75″ maxx=”-74.0999984741211″ maxy=”40.75″/>
<FIELDS NAME=”New York” COUNTRY=”US” POPULATION=”16472000″ CAPITAL=”N” #SHAPE#=”[Geometry]” #ID#=”549″ />
<MULTIPOINT>
<COORDS>-74.0999984741211 40.75</COORDS>
</MULTIPOINT>
</FEATURE>
<FEATURECOUNT count=”2″ hasmore=”false” />
</FEATURES>
</RESPONSE>
</ARCXML>

Querying dynamic layers

Starting with ArcIMS 9.1, dynamic layers can be queried in a GET_FEATURES request. “Dynamic” means adding a layer to the request that is not listed in the map configuration file. This functionality is valid with Image Services only. It is not valid with ArcMap Image or Feature Services.

Before queries can be made on dynamic layers, the dynamic query functionality must be enabled in the map configuration file. The attribute dynamicfeature must be included in the MAP element and set to “true”.

<MAP dynamic=”true” dynamicfeature=”true” >

In the following request, instead of using an existing layer in the map configuration file, a new layer is added.

Querying a dynamic layer

<!–?xml version="1.0" encoding="UTF-8" ?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES featurelimit=”5″ beginrecord=”0″ outputmode=”xml” geometry=”false” envelope=”true” compact=”true”>
      <LAYER id=”40″ type=”featureclass” >
<DATASET name=”country” type=”polygon” workspace=”shp_ws-0″ />
</LAYER>

<SPATIALQUERY subfields=”#ALL#” where=”POP_CNTRY &gt; 100000000″ />
</GET_FEATURES>
</REQUEST>
</ARCXML>

Adding a dynamic layer requires adding more information to LAYER and including DATASET. LAYER requires two attributes: id and type. The id value should be a unique ID not already used in the map configuration file. The type value should always be set to “featureclass”. The DATASET workspace must reference an existing workspace defined in the map configuration file or in the request. Whenever possible, workspaces should be referenced in the map configuration file rather than the request. This provides a level of security since WORKSPACES requires a path name or ArcSDE reference to the data.

In the next request, subfields are referenced in the query.

Using subfields in a dynamic query

<?xml version=”1.0″ encoding=”UTF-8″ ?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES featurelimit=”5″ beginrecord=”0″ outputmode=”xml” geometry=”false” envelope=”true” compact=”true”>
<LAYER id=”40″ type=”featureclass” >
<DATASET name=”country” type=”polygon” workspace=”shp_ws-0″ />
</LAYER>
<SPATIALQUERY subfields=”CNTRY_NAME POP_CNTRY” where=”POP_CNTRY &gt; 100000000″ />
</GET_FEATURES>
</REQUEST>
</ARCXML>

Since the layer is dynamic, no GET_SERVICE_INFO request can be made against the layer to return a list of field names. Thus, the developer is responsible for knowing ahead of time what the field names are. To get around this problem, leave subfields out of the request, or use “#ALL#” for the value.

In some cases, you may need to add WORKSPACES in the request. In a GET_FEATURES request, only shapefile and ArcSDE workspaces are valid. The following example reference shapefiles.

Adding WORKSPACES to the request

<?xml version=”1.0″ encoding=”UTF-8″ ?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES featurelimit=”5″ beginrecord=”0″ outputmode=”xml” geometry=”false” envelope=”true” compact=”true”>
      <WORKSPACES>
<SHAPEWORKSPACE name=”shp_ws-5″ directory=”<path to EUROPE ESRIDATA>” />
</WORKSPACES>
      <LAYER type=”featureclass” id=”40″> <!– cities in Europe directory –>
<DATASET name=”cities” type=”point” workspace=”shp_ws-5″ />
</LAYER>
<SPATIALQUERY subfields=”#ALL#” where=”CNTRY_NAME = ‘Finland'” />
</GET_FEATURES>
</REQUEST>
</ARCXML>

Using a buffer layer and target layer in a GET_FEATURES request is common among ArcIMS users. The buffer layer, target layer, or both can be dynamic. The following example uses a dynamic target layer. The syntax is the same as for other dynamic layers. TARGETLAYER requires the id and type attributes, and DATASET must also be included.

Using a target layer

<?xml version=”1.0″ encoding=”UTF-8″ ?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES featurelimit=”25″ beginrecord=”1″ outputmode=”xml” geometry=”false” envelope=”false” checkesc=”true”>       <LAYER id=”4″ />
<!–from the map configuration file–>
<SPATIALQUERY>
<BUFFER distance=”500″ bufferunits=”miles”>
<TARGETLAYER id=”40″ type=”featureclass” >
<DATASET name=”country” type=”polygon” workspace=”shp_ws-0″ />
</TARGETLAYER>

</BUFFER>
<SPATIALFILTER relation=”area_intersection” >
<ENVELOPE minx=”94.261119081779″ miny=”42.8694404591104″ maxx=”100.459110473457″ maxy=”51.1334289813486″ />
</SPATIALFILTER>
</SPATIALQUERY>
</GET_FEATURES>
</REQUEST>
</ARCXML>

When WORKSPACES is included, separate workspaces can be used for the buffer and target layers.

Including multiple workspaces in a request

<?xml version=”1.0″ encoding=”UTF-8″ ?>
<ARCXML version=”1.1″>
<REQUEST>
<GET_FEATURES featurelimit=”25″ beginrecord=”1″ outputmode=”xml” geometry=”false” envelope=”false” checkesc=”true”>
<WORKSPACES>
<SHAPEWORKSPACE name=”shp_ws-5″ directory=”<path to EUROPE ESRIDATA>” />
<SHAPEWORKSPACE name=”shp_ws-6″ directory=”<path to WORLD ESRIDATA>” />
</WORKSPACES>

<LAYER type=”featureclass” id=”40″> <!– cities in Europe directory –>
<DATASET name=”cities” type=”point” workspace=”shp_ws-5″ />
</LAYER>
<SPATIALQUERY>
<BUFFER distance=”800″ bufferunits=”miles”>
<TARGETLAYER id=”41″ type=”featureclass” >
<DATASET name=”country” type=”polygon” workspace=”shp_ws-6″ />
</TARGETLAYER>
</BUFFER>
<SPATIALFILTER relation=”area_intersection” >
<ENVELOPE minx=”24.239598278335″ miny=”61.1549497847919″ maxx=”26.492109038737″ maxy=”63.3859397417503″ />
</SPATIALFILTER>
</SPATIALQUERY>
</GET_FEATURES>
</REQUEST>
</ARCXML>

<!—
ShowFeedback();
—>

폴리곤 중심점 및 면적 구하는 c++소스

for (i = 0; i < points; i++)

{

           j = (i + 1) % points;

           pt1 = pPoly->GetPointAt(i);

           pt2 = pPoly->GetPointAt(j);

           x1 = pt1.x;

           x2 = pt2.x;

           y1 = pt1.y;

           y2 = pt2.y;

           area += x1 * y2;

           area -= y1 * x2;

           centerx += ((x1 + x2) * ((x1 * y2) – (x2 * y1)));

           centery += ((y1 + y2) * ((x1 * y2) – (x2 * y1)));

}

area /= 2.0;

area = fabs(area);   //double형 변수에 대한 절대값

centerx = centerx / (6.0 * area);   

centery = centery / (6.0 * area);

④공개SW없는 최신동향 대응은 모순

엄연한 소프트웨어(SW)인데도 공공 시장에서 쉽게 차별받는 대상이 있다. 정부는 이번 SW생태계 구축전략과 SW산업진흥법 개정법률안에서 이를 제대로 다루지 않았다. 이 분야는 특히 정부가 나서서 주요 전략산업이자 글로벌 경쟁력을 갖출 필요성이 높다고 강조한 주요 기술영역과 관련성이 높다. 흔히 공짜로 오해받곤 하는 오픈소스 라이선스 기반 SW, 바로 ‘공개SW’다.

글로벌 IT 세계에서 공개SW 기술의 영향력은 막강하다. 스마트플랫폼, 클라우드컴퓨팅, 빅데이터, 융합IT 등 온갖 분야에 핵심 부문을 맡고 있는 것이다. 서버 운영체제(OS)인 리눅스는 물론이고 모바일OS 구글 안드로이드, 개방형 클라우드 솔루션 오픈스택, 빅데이터 대응을 위한 분산처리기술 하둡 등을 예로 들 수 있다.

정부는 이렇게 클라우드 컴퓨팅, 빅데이터, 융합IT 등 공개SW를 중심으로 시장이 형성된 기술 분야 중요성을 역설하면서도 정작 국내서 공개SW 활용과 이를 위한 시장 기반 조성에는 무책임한 모습을 보였다. 단기 연구과제를 발주해 공개SW 결과물을 숱하게 내놓으면서 이를 꾸준히 활용하고 국내 인재들이 기술력을 쌓아올리도록 돕는 일에 인색했다는 얘기다. 이번 편을 통해 공개SW에 대한 정부의 이중적 태도를 짚어 본다.

[연재 순서]
①SW생태계 전략, 이대로 괜찮은가
②SI 전문 엔지니어 구제는 관심 밖
③독립SW개발자와 벤처CEO의 고민
④공개SW없는 최신동향 대응은 모순

■지경부, 클라우드-빅데이터 정조준

올초 지식경제부는 클라우드, 빅데이터 등 시장에 진출해 시장을 선점한다는 취지로 전체 연구개발예산 1천400억원가운데 355억원을 할당한 22개 신규과제를 확정했다.

▲ 미국 연방정부가 2억달러를 투입해 빅데이터 연구개발 이니셔티브를 추진한다. 각 정부기관이 발벗고 나서 기반 기술 및 시스템을 개발하고, 데이터 과학자를 육성하는 한편, 민간의 활용을 독려할 계획이라고 밝힌 바 있다.

빅데이터는 기존 데이터 처리기술로는 그 용량과 다양성을 적절한 속도로 대응, 처리할 수 없었던 정보를 가리킨다. 빅데이터기술은 ‘걸러낸 데이터’가 아닌 새로운 관점의 데이터를 받아들여 활용케 해주는 기술을 말하는 것이다. 이를 위해 해외서는 공개SW계열 분산처리기술 ‘하둡’과 ‘NoSQL’로 불리는 일군의 공개SW계열 비정형데이터 저장기술에 대한 도입과 연구가 활발히 이뤄지고 있다. 기존 상용SW로 불가능한 데이터 환경을 감당하기 위해 공개SW 기술을 통한 돌파구를 찾고 있다는 얘기다.

지식경제부 빅데이터 기술개발 선정과제는 ‘빅데이터 분석, 관리SW 원천기술’. ‘웹을 통한 기기간 연동 및 최적제어, 모니터링 SW’ 등 핵심 미들웨어와 응용SW 과제 3개를 기획, 연내 73억원 가량, 4~5년간 349억원을 투입할 계획이다. 트위터 등 소셜네트워크서비스(SNS) 이용 활성화와 모바일기기 보급으로 급증한 자연어 정보와 이미지, 위치정보 등 센서 데이터로 쌓이는 자료를 분석해 마케팅에 활용한다는 목적을 제시했지만 공개SW 기술을 쓴다는 얘기는 없다.

이와 별개로 클라우드는 하드웨어와 소프트웨어 등 IT 자원을 유연하고 규모가 변적이며 관리가 자동화된 환경에서 즉시 빌려 쓸 수 있는 인프라를 상징한다. 전체 시스템이 아니라 사용한 만큼의 자원에 대한 대가만 지불해 쓸 수 있는 서비스 환경을 함의한다. 이를 위한 국내외 상용SW 기술들이 역시 각광을 받고 있기도 하지만, 주요 구축사례에 빠지지 않는 화두가 오픈소스다. 이를테면 ‘오픈스택’이라는 구축솔루션과 오픈소스 가상화, 서버OS 등을 통해 광범위한 인프라를 묶어 활용한다는 시나리오다.

지식경제부 클라우드 기술개발 선정과제는 에너지 절감OS 원천기술만 5년짜리고 나머지는 3년짜리 과제로, 전체 8개 과제에 올해 116억원가량, 전체 378억원 예산이 투입을 예고했다. 내용은 ‘대규모 사용자가 동시접속 했을 때의 부하를 경감시키는 파일시스템’, 에너지 30%이상 절감 가능한 범용 운용체계(OS) 핵심 원천기술 개발 등 8개 과제인데 역시 공개SW 관련 언급은 전혀 안 나온다.

그나마 IT융합 분야 가운데 웰빙형 정보기기, 스마트TV, 모바일 솔루션, 3개 영역을 주제로 국내 대학에 문을 연 SW플랫폼 연구센터 사업이 공개SW를 언급하고 있다. 그런데 그 내용을 보면 통상적인 공개SW를 활용하겠다는 계획으로 보이지 않는다. 초기 3년간 개발하고 나서 소스코드를 공개해 생태계 조성을 위한 공개SW 플랫폼으로 만들겠다는 계획이다. 밑바닥부터 새로 만들어 대체 3년 뒤 어느 누구를 생태계로 끌어들이겠다는 것인지 의문이다.

▲ 정부통합전산센터 2012년 공공사업 발주계획

오히려 행정안전부의 정부통합전산센터는 중앙부처 정보시스템을 통합 관리하며 공공분야 공개SW 활성화 측면에서 지식경제부보다 앞서 있다. 정부통합전산센터는 오는 2016년까지 그 구성 SW가운데 40%를 공개SW 기반으로 만들 계획이다. 지난해말 기준으로 적용된 공개SW 비율은 23% 수준이다. 올초 기존 통합센터 웹사이트 기반 기술도 상용SW였던 운영체제, 웹서버, 웹애플리케이션서버, 데이터베이스를 모두 공개SW로 대체했다. 그러나 업계는 이같은 행정안전부 추진계획도 전혀 원활하거나 적극성을 띤 모습이라 보기 어렵다는 평가다.

■공개SW 시장 형성은 수수방관

한 오픈소스 솔루션업체 대표는 “우리나라는 공개SW 사용자로서의 역할만 있었지 생산자로서 역할은 거의 미비한 실정”이라며 “산업 관점에서 공개SW 중요성이 날로 커가는 추세에 발을 맞추려면 시장 형성이 중요한데 특히 공공부문 역할이 필요하다”고 지적했다.

이전부터 공공기관과 정부 시스템 구축에 비용 절감을 화두로 활용도와 제도 정비와 예산 지원이 시급한 영역이었는데 공개SW는 이런 가운데 비용절감을 위한 선택사항의 하나일 뿐이었다. 앞서 지식경제부와 행정안전부의 엇박자 행보로 알 수 있는 점은 역시 정부가 공개SW에 대한 마스터플랜을 갖추지 못했다는 사실이다. NIPA 연례행사 공개SW개발자대회가 점차 규모를 늘려 개최될 상황이지만 그 지원 예산의 안정성이 떨어지는 것이 단적인 예다.

공공정보화사업 경험이 많은 국내 대기업계열 SI의 소속 엔지니어는 “주요 시스템 구축 프로젝트 사례를 훑어보면 외국계 상용SW 솔루션 업체와 대기업SI가 참여하는 경우가 대부분”이라며 허울뿐인 정부의 공개SW 활용 의지에 일침을 가했다.

▲ 백악관은 지난2009년 하반기 웹사이트운영을 오픈소스SW업체에게 맡기는 등 오바마 정부의 개방성을 과시했다.

즉 정부가 한쪽에선 공개SW 생태계 활성화와 기반 중요성을 역설하면서도 실제 그 결과물을 활용하는 쪽에는 인색하다는 평가를 극복해야 할 것으로 보인다.

또 그간 정부에서 선진적인 사업 수주, 발주 체계에 공개SW 도입 이후 유지관리를 위한 대가 산정기준 관련 문제를 거의 언급한 적이 없었다. 공개SW를 활용하는 발주기관은 제품 공급가 없이 구축 서비스 비용을 100%로, 사후 유지관리를 그 10% 수준으로 책정해왔다. 상용SW 위주로 구성된 대가산정 체계에 별도 분류지침이 없는 공개SW 관련 내용을 끼워맞춘 결과다.

그나마 정부가 이를 개선하기위해 제도 정비에 나선 점은 다행스러운 일로 비친다. 일례로 정부는 공공정보화사업시 수요가 발생하는 공개SW 서비스 개념을 상용SW 유지보수와 혼동되지 않게 별도 용어로 대체하고 예산편성지침을 고쳐 공개SW서비스 이용을 제도화하는 방안을 검토중인 것으로 알려졌다. 상반기 의견수렴을 거쳐 연내 제도 개선과 내년 적용을 목표로 진행중이란 소식이다.

③독립SW개발자와 벤처CEO의 고민

이제까지 소프트웨어(SW)산업 발전을 꾀하는 정부 정책이 보이는 여러 빈틈을 지적했다. SW산업진흥법 일부개정법률안 처리에 발목을 잡은 정치권의 파행이 업계 실망을 던진 모습을 묘사했고 대기업과 중소기업 대결구도의 적정성 문제와 SW융합 분야에 우려되는 대응 불균형을 지적했다. 또 정부 인식상의 문제로 시스템통합(SI) 업계와 독립SW개발 영역의 경계가 불분명함과 더불어 관행적 병폐인 SI업계 종사자들의 당면 문제가 개선되지 못해왔음을 다뤘다.

 

논외로 했던 현업 독립SW개발 업계에 속하는 이들은 정부 정책 구상에서 거의 고려조차 되지 않았다. 어찌 보면 정부의 공생발전형 SW생태계 안에서 ‘깍두기’로 간주된 셈이다. 당사자들은 어떤 생각을 하고 있을까.

 

독립SW개발 분야에서 활동하는 이들은 흔히 말하는 서비스 또는 애플리케이션을 만드는 벤처SW회사 구성원, 또는 본업이나 향후 목표 진로를 따로 두고 있으면서 이를 달성하기 위한 기반으로 SW를 만드는 개인이나 팀 또는 커뮤니티 등이다. 국내서 1인 SW개발 기업으로 활동하는 현직 개발자와 소규모 벤처로 시작해 중소기업 수준으로 성장한 회사의 CEO들의 입장을 정리했다.

 

[연재 순서]
①SW생태계 전략, 이대로 괜찮은가
②SI 전문 엔지니어 구제는 관심 밖
③독립SW개발자와 벤처CEO의 고민
④공개SW없는 최신동향 대응은 모순

 

적어도 확인한 바로는 정부의 SW산업진흥 정책을 반기는 경우가 없었다. 이들의 고민은 정부의 시장 개입이라는 단순한 방법으로 접근하기 어려운 측면이 컸다. 자신과는 아무런 관계가 없다거나, 도움이 될 것이라 기대하지 않는다는 입장이었다.

 

극단적으로는 제발 방해나 하지 말아달라는 경우도 있었다. 또 자신이 내는 세금이 아깝지만 정부 지원을 요긴하게 활용해 연명하는 민간 기업도 있으니 눈감아준다는 게 가장 우호적인 입장일 정도다. 대체로 정부란 존재 자체를 못미더워 한다는 얘기다.

 

■1인창조기업, 커뮤니티 기반 SW벤처 고민은

 

일단 소규모 팀이나 1인 기업 형태로 운영되는 독립SW개발 업체 대부분은 기업 활동에 발목만 안 잡으면 정부 활동에 관심을 두지 않았다. 현재 중고등학교, 대학교나 대학원에 속한 학생개발자들은 모바일 앱 개발이나 자체 솔루션을 만드는 활동을 하며 정부의 창업지원을 받거나 현상 공모전에 나가는 것과 대조적이다.

 

창업자들은 자체 이름을 내걸고 윈도, 맥, 리눅스같은 데스크톱 운영체제(OS)나 iOS, 안드로이드같은 모바일 앱을 만들고 자신들의 이름을 붙여 판매하는 ‘SW소매업체’ 또는 아이디어 중심의 신규 ‘서비스 운영사’를 꿈꾼다. 정부 지원 사업이나 공모전 등에는 관심이 전혀 없는 대신, 벤처캐피탈이나 엔젤 투자사들의 손길을 원하는 경우가 많다. 그런데 최근 IT벤처 분야에서 투자를 받을 기회나 조건은 시원치 않다는 보고가 있다.

 

지난달 만난 한 웹기반 스마트폰 관련 벤처 서비스 업체의 재무책임자는 “최근 자금 압박에 시달리면서 잠깐 투자사들에게 제안서를 돌리며 도움을 구했는데 터무니없이 불리한 요구에 (투자받기를) 포기했다”며 “그들 속내는 투자에 따른 위험부담을 전혀 감수하지 않겠다는 것이라, 회사 입장에서 관심을 끊고 트래픽과 회원수 늘리기에만 집중하기로 했다”고 털어놨다.

 

해당 업체는 정부의 창업지원 수혜를 받아 일어섰는데 서비스 운영은 정상적으로 돌아가고 있었지만 단지 지원이 끊긴 이후 수익성에 위기가 있었을 뿐이었다. 원칙적으로 정부 지원은 중복해 돌아가지 않는 것으로 알려져 있다. 이런식으로 정부 지원이 실제 창업으로 이어졌더라도 미흡한 사후 관리로 지속성을 잃는 경우가 없지 않다. 정부의 관심은 그러나 이미 창업된 이들에게 돌아갈 여유 없이 또 다른 창업지원에만 초점이 맞춰진다.

 

소규모 독립SW 개발 또는 서비스 운영 업체로 남아 유료 앱 판매 수익을 내거나 무료 앱에 광고를 붙이는 비즈니스 모델로 생존하는 경우는 드물다. 지난 2~3년간 성황이었던 독립 모바일 앱 개발자나 팀들은 현재 대부분 소멸했다.

 

또 다른 웹기반 서비스 벤처업체의 개발자 출신 대표는 “경영 실적이 현상유지 또는 미약한 성장세를 보이는데 이를 끌어올릴만한 뾰족한 서비스모델을 만들어내지 못해 고민중”이라며 “요새 창업이 붐을 일으키고 있긴 한데 신규 서비스 하나 성공시키기도 굉장히 어렵다”고 말했다.

 

이런 측면에서 지난달말 방송통신위원회가 발표한 ‘중소벤처 생태계 활성화 전략’을 눈여겨볼만하다. 중소기업들이 겪는 성장단계별 자금난과 기업간 거래관계의 투명성을 보장하고 R&D 기회를 주는 내용으로 요약된다. 다만 방송통신위원회가 내놓은 산업대책인 만큼, SW기업 대상이 아닌 모바일 앱과 콘텐츠 등 ‘방송통신’ 분야 벤처들을 대상으로 한다는 점이 아쉽다.

 

▲ IT벤처에 대한 벤처캐피탈 투자요인 고려요소들. (출처: 이동희, ‘국내 벤처캐피탈의 IT벤처기업에 대한 투자결정 요인에 관한 연구’)

이는 R&D역량이 취약한 중소기업들에게 아이디어를 사업화할 기회를 주고, 기업간 인수합병 촉진을 위한 세제 혜택과 절차 간소화, 불공정거래 관행 개선 등을 돕는 내용이다. 또 중소기업들을 창업기, 성장기, 정체기, 재도약기로 구분해 기업 성장 단계별 특성을 고려한 지원과 중소벤처들에게 코리아IT펀드(KIF) 투자를 확대하는 방안도 포함한다.

 

■규모가 다르면 고민도 다르다

 

현재 이 회사를 포함해 거의 개발자, 디자이너, 기획자가 시스템을 갖춰 움직이는 전문 개발업체만 남았다. SI 형태로 수익성을 갖춘 동시에 자체 서비스나 비즈니스모델 개발을 병행하는 회사가 현실적인 형태로 자리잡았다.

 

정부는 이들을 돕는 대신 때때로 그 창업자를 불러다 놓고 차기 정책연구를 위한 조언가로 활용하는 경향이 있다. 상황이 이러니 당초 정부 지원을 통해 1인창조기업이나 벤처업체의 궤도에 올랐더라도, 이후 정부 정책에 관심을 끊는 건 필연적인 듯하다.

 

▲ 벤처기업들이 꼽은 경영애로요인(출처: 2011.12월 벤처기업협회)

사업모델이 안정권에 들어서는 동안 규모는 자연스럽게 늘어난다. 의외로 규모가 늘어난 것 때문에 곤란함을 느끼는 벤처 창립자 겸 대표들이 많다. 초기 소수 인원으로 집중해온 환경에서 분산된 인력, 사무실을 옮겼다면 더 넓은 공간, 늘어난 공유 자산, 지켜야 할 사내 규칙 등 관리 요소가 훨씬 늘어난 데 따른 부담이다.

 

한 유통 관련 웹서비스 업체를 세운 개발자 출신 대표는 초기 창업 동료들과 자체 개발한 서비스플랫폼을 유지하고 사업을 지속하기 위해 운영 1년 반만에 직원 수를 3배쯤 늘렸다. 대표는 회사 경영과 병행해 이들을 팀으로 구분하고 각 팀장을 통해 간접적인 인력 관리를 하면서 아예 개발에서 손을 놓았다.

 

그도 창업 초기 정부의 기술기업 지원 대상자였다. 당시 고민은 정부가 요구하는 지원금 명목이 집기, 임대공간, 인건비 등으로 쪼개져 있어 원하는대로 쓰기 어려웠다는 부분이다.

 

현재 고민을 묻자 “수익성 개선과 개발자 영입”이라며 “또 벤처 회사 경영하는 입장이라, 입사하면 여기가 기술적으로 세련된 곳이라 배울 게 많을 것이란 기대감을 심어줄만한 브랜드 전략을 생각중이다”고 답했다.

②SI 전문 엔지니어 구제는 관심 밖

정부가 주도하는 소프트웨어(SW) 생태계 구축전략은 SW산업진흥법 개정법률안이라는 암초를 만났다. 다만 스마트기기 등 SW플랫폼 기반 융합IT 산업을 다지는 준비 과정이라는 산학연계 프로젝트는 추진되고 있다. 초기 실행전략이 인재육성과 로드맵 수립으로 투입된 예산을 활용하는 시점이기 때문이다.

 

인재육성과 신규분야 산업 활성화에 따라 해당 분야 성과는 시시각각 발굴, 홍보될 것을 어렵지 않게 짐작할 수 있다. 같은 시기에 주목되지 못할 수 있는 기존 SW업계의 실상에 대해 짚어 보기로 한다.

 

최근 정부는 현행 등급분류체계를 기반으로 업계 종사자 비율을 볼 때 초급 인력에 비해 부족하다고 여겨지는 중고급 인력을 늘리겠다는 방침과 함께 현재 종사자들의 임금에 직결되는 ‘SW기술자 등급제’와 ‘SW사업 대가기준’을 폐지하는 쪽으로 가닥을 잡았다. 비현실적으로 낮은 임금 수준을 격상시키고 체계적인 경력 관리를 지원해 고급인재를 양성한다는 게 주된 목표였다.

 

여기서 임금 수준을 높여 줄 대상은 시스템 통합(SI) 전문 개발자고, 정부가 원하는 고급인재는 자체 솔루션이나 서비스 개발 목표를 가진 SW개발자에 가깝다는 게 ‘함정’이다. 본 편에서는 정부나 민간업체의 SI프로젝트에 동원되는 정규직 엔지니어 또는 프리랜서, 즉 SI 전문 개발자들의 고질적인 어려움을 다뤘다.

 

[연재 순서]
①SW생태계 전략, 이대로 괜찮은가
②SI 전문 엔지니어 구제는 관심 밖
③독립SW개발자와 벤처CEO의 고민
④공개SW없는 최신동향 대응은 모순

 

■SI업무와 SW개발은 다르다

 

사실 SI 전문 개발과 SW개발은 서로 다르다. SI업무는 프로젝트 발주사 또는 기관이 원하는 것을 만들면 된다. SW개발은 직접 참여하는 엔지니어 팀이나 기업의 이상을 추구하는 활동이다. 건축에 비유하자면 SI업무는 돈을 받아 남의 집이나 사무실을 지어주는 일이고, 독립SW개발은 돈을 들여 내가 원하는 건물을 만드는 일이다. 즉 차이는 SW를 만드는 활동이 누구의 의도를 따르느냐다.

 

그런데 정부는 SI 전문 개발자를 명목상 ‘SW개발자’라 부른다. SW개발자를 대상으로 했다는 정부 규정도 SI 전문 개발자들을 얽는다. 공공정보화 사업 예산 집행에 필요한 임금과 경력 산정 방식에 대한 규정을 예로 들 수 있다. 이렇게 SW산업진흥법에서부터 SW개발과 SI업무를 가려 쓰지 않은 탓일까. 그 활동에 대한 노동의 성격도 엄밀히 구분되진 않는 모양새다.

 

그 결과 SW개발자에 대한 제도적 장치가 영향을 미치는 대상은 대개 SI전문 개발자에 한정된다. 독립SW개발사(ISV)처럼 직접 제품화된 SW를 만들거나, 자체 사업 또는 비즈니스모델을 위한 시스템을 구축한 이들은 거의 논외다. 이는 아무래도 나머지 SW개발자들에게 축복이다.

 

실제로 여러 SW개발자에게 정부의 SW관련 정책에 대해 어떻게 생각하느냐 묻자 “거의 신경 쓰지 않는다”며 “내 세금을 좀 낭비한다 해도 평소에 방해만 안 하면 봐 주겠다”는 취지의 답변을 내놨다. 물론 더러는 “쓸데 없는 짓 좀 하지 말고 가만히 있으면 좋겠다”고도 했다.

 

이런 반응을 보이는 이유는 그간 정부가 SW관련 정책이나 사업에 대한 계획만으로 숱한 헛발질을 자초했을뿐 아니라 그 손길이 미치는 SI전문 개발자들이 SW산업 관련 제도로 입은 피해를 구제를 받은 사례가 거의 없어서다. 오히려 정부 지원 정책에 일선 독립SW개발자를 위한 비중이 미미한 게 다행이라는 평가다.

 

따지고 보면 SI종사자들에 해당하지 않는 미미한 SW개발자 대상 정책도, 현직 개발자를 위한 것이라기보다는 향후 SW개발자를 지망하는 학생이나 기술 기반 서비스 사업을 운영해보려는 예비창업자들을 위한 것이다. 이제 막 발을 들이는 이들에게 기회를 줄 수는 있어도 한창 활동중인 사람들과는 관계가 없는 게 당연하다.

 

■깎고 쥐어짜고…제때 주기라도 하면 다행

 

SI 전문 개발자들의 어려움은 노동문제와 맞물린다. 임금체불이나 저임금노동, 부족한 성장 기회와 이에 따라 심화되는 경쟁상황 등이다. 별도 수당 없이 자동화된 주말 출근이나 무한 야근 등 열악한 근무환경도 단골 소재다.

 

어떤 민간, 공공발주자들은 정부 정책에 따른 사업대가기준에 포함하는 노임단가제를 근거로 경력에 대한 급여 상한치를 적용해왔다. 기존 제도가 현실을 반영치 못하고 불합리함이 많다는 지적에 따라 정부는 종전 기준들을 없애고 시장에 가격결정권을 넘기기로 했다. 그러자 일부 기업들은 기존 경력기준보다 엄격한 잣대를 적용해 이전보다 같은 경력자들에 더 낮은 임금을 지불하려 드는 부작용이 나타날 기세다.

 

또 전문SI 업체에 단기 계약 또는 임시직으로 채용된 피고용자 신분의 SI종사자들은 ‘단가후려치기’로 상징되는 하도급 계약관계의 말단에서 만성적인 저임금체제에 시달린다고 하소연한다. 항상 빠듯한 일정과 모자라는 투입인원은 익숙한 풍경이다. 단순 저임금이 아니라 별도 수당을 보장받지 못하는 야근과 주말출근, 일부 악덕 고용주의 횡포에 따른 건강악화 등 열악한 노동환경이 문제로 꼽힌다.

 

혹자는 SI바닥에서 깎더라도 제때 주는 게 양반이라 했다. 현재도 개별 발주되는 프로젝트에 직접 지원하거나 인력 풀에 등록돼 사용자와 연결되는 프리랜서들은 임금체불 문제로 사용자측과의 소송을 경험한 비중이 높은 편이다. ‘지루한 싸움’이라 표현되는 법정싸움이든 소액소송이든 활동에 제약을 받는 시간이 수입과 직결되는 프리랜서들에게 불리하고 가능하면 피해야 할 일이지만 여의치 않은 게 현실이다.

 

■오갈 데 없는 고급 SI엔지니어

 

연차가 늘어갈수록 숙련된 SI엔지니어들의 설자리가 좁아지는 추세도 문제다. ‘나이 많은 SI 엔지니어들이 살아남는 방법’류 제목으로 다양한 내용이 공유되는 현실이 이를 방증한다. 국내서 SI 전문 개발자는 우선 나이 제한에 걸리지 않아야 하고, 이차적으로 등급이 높더라도 그에 못 미치는 상한선 계약가에 합의해야 프로젝트에 참여할 수 있다.

 

또 프리랜서 인력 풀을 관리하는 한 업계 관계자는 “원청 대기업이 프로젝트에서 젊고 경험이 부족한 프로젝트 매니저(PM)들을 지정하는 경우가 많다”며 “밑에 들어올 SI인력들은 또 PM이 일을 시키기 편하도록 어리면서도 화려한 경력과 뛰어난 스킬을 갖춘 ‘천재’를 찾는 억지 요구가 흔하다”고 설명했다.

 

실력이 중요하지만 그만큼 비싼 인력을 데려오긴 싫다는 얘기로 들린다. 물론 프리랜서가 아니더라도 SI 하청사 직원들의 임금 수준이 이미 상한가 압박의 산물이란 점은 잘 알려져 있다. 이런 풍토에 결국 숙련 SI엔지니어들은 다수는 커리어를 발전시킬 의욕을 꺾고 이직이나 전업을 하게 된다. 이는 전체 산업계의 손실로 이어진다.

 

SI 전문인력이 개인 이력을 한국소프트웨어산업협회(KOSA)에 등록해 등급을 인정받는 방식도 부작용이 적지 않다는 지적이 있다. 오래전 다니던 회사가 문을 닫아 해당 기간 기술 경력을 증명할 수 없다거나, 실제 전문분야와 무관한 내용으로 오래 일한 사람이 진짜 숙련도가 높은 개발자보다 더 좋은 등급으로 인정받는 사례도 나왔던 것이다.

 

■SI 노동시장 ‘저가경쟁’ 이유는

 

사실 시장 원리에 따르면, 숙련도 높은 SI 전문 개발자가 한때 이직이나 전업으로 줄어들 수는 있어도 결국 찾는 사용자가 있다면 몸값이 높아져야 한다. 이에 자극받아 다른 개발자들도 전문성을 강화해 경쟁하면서 적정 소득수준이 형성되는 게 상식이다.

 

그런데 상황이 당장 잘 돌아갈 형편은 아닌 듯하다. 이유는 SW업계 경쟁력 높이기에 나선 정부가 고급 엔지니어가 왜 여태 늘지 않았는가에 대한 처방 없이 인위적으로 고급 엔지니어를 늘리겠다고 나섰기 때문이다.

 

앞서 지적한대로 숙련된 SI엔지니어들은 나오지 않고 있는 게 아니라 업계에서 이탈하거나 일선 개발현장에서 물러나 PM 또는 컨설턴트 등으로 활동하고 있다. 이탈을 막으려면 기존 개발자 직종에 유리한 대우를 해 주면 된다. 특히 정부의 공공정보화 발주자가 시장에 모범을 보여야 한다. 업무상 여건이 때때로 혹독할 순 있지만 그에 상응한 보상이 주어진다면 문제되지 않을 것이다. 그러나 공공정보화사업이 그간 보여온 구매행태를 보면 이는 요원하다.

 

오히려 정부는 단기 기술인 양성과정으로 새로 SI업계에 유입되는 신입 종사자들이 쏟아져나오는 상황을 조장하고 있다. 이는 중급 이상 개발자들에게 실력에 따른 차등적 대우를 해주기 보다는 값싼 노동력을 대량 공급해 전체 시장가격을 떨어뜨리는 효과를 초래하는 모양새다. 시장에서 해당 직종의 전문성을 제대로 알아보지 못하기 때문에 가능한 시나리오다.

 

더불어 기존 고급개발자들의 빈자리를 빠르게 메울 수 있도록 중급 인력들을 대상으로 하는 전문기관 교육과정 활용 기회가 제한적이란 점이 어려움을 더한다. 일부 대기업이 일반 개발자들의 성장 기회로 제공하는 전문교육과정을 대기업이 자사 프로젝트에 투입 역량을 확보하기 위해 선점하는 행태를 보이는 경우도 있다는 게 한 관계자 증언이다.

①SW생태계 전략, 이대로 좋은가

소프트웨어(SW)산업 경쟁력 높이기에 나선 정부 행보가 당초 기대와 달리 업계의 실망을 키우고 있다. 지난해 하반기부터 추진된 ‘공생발전형 SW생태계 구축전략’의 이행이 원활하지 못하다는 비판과 그에 포함조차 안 된 다른 분야 문제도 크다는 지적이 함께 자리하는 것이다. 방대한 정부 계획들이 그 내용과 실효성 차원에서 포괄적으로 검토되지 않았다는 분석이다.

 

정부의 전략 대부분은 대기업과 중견기업, 향후 일선 현장에 진입할 학생개발자에 대한 제도 정비와 지원 방안이 차지한다. 특히 여러 시장 주체들 가운데 공공부문 정보시스템 구축에 참여해온 대기업계열 시스템통합(SI) 사업자와 중견SI 업체간 대립구도가 부각됐다. 나머지 정책들은 그간 공개SW진영이나 제도의 불합리함에 노출되기 쉬운 프리랜서 또는 군소업체 엔지니어 등 개발자 개인들은 정부의 ‘SW생태계’에 소외됐다는 평가다. 결국 누구와 얼마만큼 공생할 것인가에 대한 고민이 부족하지 않았느냔 지적이다.

 

지디넷코리아는 최근 정부의 SW산업진흥정책 내용과 흐름, SI와 SW를 구별하지 않는 접근방식의 한계, 최신 시장 동향을 좇으면서 선진 기술 트렌드에 취약한 정부 행태의 모순, 현업 개발자와 벤처 경영자의 고민, 국내 취약한 공개SW 시장과 관심을 4회에 걸쳐 다뤄 본다.

 

[연재 순서]
①SW생태계 전략, 이대로 괜찮은가
②SI 전문 엔지니어 구제는 관심 밖
③독립SW개발자와 벤처CEO의 고민
④공개SW없는 최신동향 대응은 모순

 

■SW생태계 구축전략과 SW산업진흥법 개정

 

지식경제부의 공생발전형 SW생태계 구축전략은 지난해 10월말 제102차 비상경제대책회의를 통해 취약한 국내 SW산업의 자생력을 단련시킬 종합대책으로 제시됐다. 대부분 부처간 합의와 예산 마련 등을 수반하는 계획이라 관련법 개정을 필수로 전제한 내용이었다. 일부 파격적인 내용이 통과여부에 대한 업계 관심을 모았으나 결국 이달초 국회에서 처리되지 않았다.

 

SW산업진흥법 일부개정법률안이 지금 분위기대로 자동 폐기되든, 예상을 뒤엎고 총선이후 남은 18대국회 기간중 처리되든, 후속조치를 통해 기존 안에 배제된 업계 당사자들의 목소리를 담아야 할 과제를 안고 있다.

 

정부는 ▲전문, 중소기업 참여를 늘리고 시장 감시기능을 강화하고 선진 수발주체계를 만들고 SW대가를 시장 자율로 적용한다는 ‘SW 공정거래질서 확립’ ▲SW고급인재를 키우고 기업내 SW자산 활용을 촉진할 SW뱅크를 세우고 SW특성에 맞는 정부R&D체계를 도입한다는 ‘SW기초체력 강화’ ▲임베디드시스템과 스마트콘텐츠를 경쟁력을 키운다는 ‘SW융합 활성화’ ▲주파수할당 수입을 SW에 집중 지원하고 부처간 SW정책 협의체를 운영하고 산하기관내 SW정책 연구센터를 세운다는 ‘지속적 추진체계 확보’ 등 4개부문별 정책과제를 제시했다.

 

이를 위한 선행조치로 제18대국회서 이달 초까지 논의된 게 ‘SW산업진흥법 일부개정법률안’이다. 이 법률안은 앞서 국회의원 김혜성, 박민식, 배은희, 정태근, 4명이 각각 대표발의한 내용과 정부발의한 내용을 통합, 조정해 지난달초 지식경제위원회에서 합의된 상태로 입법을 예고했다. 그러나 다음달 총선을 앞둔 여야가 선거구 합의를 이유로 당시 계류중인 주요 법안을 제때 처리하지 못했고, 이달 중순까지 연장됐던 임시국회가 만료되면서 사실상 불발에 그친 걸로 평가된다.

 

18대국회의 물리적 시한은 총선 이후 오는 5월까지 남았다. 그러나 몇 번씩이나 정족수 미달로 늦어졌던 법제사법위원회와 본회의가 다시 열려 통과될 가능성은 낮다는 게 업계 중론이다. 회기를 넘긴 법안들은 자동 폐기되며 제19대국회 이후 다시 입법 과정을 거쳐야 한다.

 

SW산업진흥법 일부개정법률안 통과에 발목이 잡히면서 그에 법적 설치 근거나 예산 책정이 포함된 ▲대기업계열사 공공SI 참여 제한 ▲공공발주시 명확한 제안요청서(RFP) 작성 ▲지식경제부에 모든 공공발주 사업내역 제출 ▲SW기술자 노임단가제 폐지 ▲산하기관 SW정책 연구센터 설립 등 주요계획 실행에도 차질을 빚게 됐다.

 

■대기업-중견기업 대립구도, 적절성 논란

 

당초 정부 의지는 다음해부터 대기업 공공SI 참여를 원칙적으로 제한하고 그 사업 수주 기회를 중견 이하 기업들에게 보장하는 것이었다. 과거 불합리한 SW기술자 노임단가제를 없애고 전문성이 부족한 공공부문 기준보다 합리적인 시장가격을 형성시키는 취지도 있었다.

 

대기업에 편중된 시장 기회를 중견사업자에게 돌려준다는 방안에 중견급 SI와 관련 협회 등이 직접 환영의 뜻을 밝혔을 뿐, 상용SW업체나 공개SW관련 사업자와 현업 종사자들은 그 내용에 관심이 없거나 정부 방침에 별 기대를 걸지 않는 경우가 더 많았다. 이들에게 정부는 현업보다 신규 SW인력 육성과 신생 벤처 지원에 관심을 기울이는 모습으로 다가왔다.

 

사실 개정법률안 내용이 틀을 갖춘 이후 시점에도 그 내용이 전체 SW산업의 발전을 도모할 수 있는지에 대한 의문이 뒤따랐다. SW공생발전을 위한 정부 정책은 실제 독립SW개발사(ISV)가 많은 중견중소 기술업체들과 중견급 이상부터 대기업에 많은 ‘IT서비스’업계 이해를 충돌시킨다는 비판도 제기됐다.

 

SW관련 일부 인사들이 개인적 입장이라며 현 개정 내용에 간접적인 반대의 뜻을 내비쳐 논란을 키웠다. 일각에선 해당 ‘사견’을 대기업계열 SI업체 논리에 의존한 반대로 치부한다. 행정안전부 박종호 국가정보화전략위원장과 카이스트 김진형 SW정책연구센터 소장 등이 이해당사자간 합의가 충분치 못했다거나 법 개정에 따른 시장 혼란과 실효성 부족 등에 우려를 표한 것이 그런 사례다.

 

■차세대 먹거리, SW융합 활성화 챙기기

 

정부가 실용화에 중점을 두고 추진하려는 융합IT 영역 계획은 분야별로 차이를 보이나 전반적으로 기초 인프라 연구개발 단계다. 정부 계획이 주로 예산을 투입해 전략과제를 실행하는 내용으로 구성된 덕분에 법 개정 여부와 무관하게 일단 추진되는 모습이다.

 

정부는 일단 몇 년간 고급인력을 육성하고 그 체계를 마련하는 쪽으로 가닥을 잡은 모습이다. 이미 모바일용 공통SW플랫폼, 건물 에너지 관리 기술, 스마트가전 원격 유지보수 기술, 자동차 장애물 고속 인식 기술 등 융합기술을 전수 조사했다고 밝혔다. 이를 기반으로 주력산업의 임베디드SW와 시스템반도체 기술을 분석해 융합 로드맵을 세울 방침이다. 정부가 제조부문에 기반한 수출주도형 경제성장에 관심이 높은 만큼, 단말기 생산으로 이어지는 분야 지원은 자연스럽다.

 

이에 따라 지난달 말부터 정부가 선정한 국내 대학에 SW플랫폼 연구센터 웰빙형 정보기기(경북대), 스마트TV(성균관대), 모바일(KAIST), 3개 분야별로 열어 기본 3년에서 최대 5년까지 해마다 20억원씩을 투입한다는 계획이 추진되고 있다.

 

반면 완성차 시장에서 해외 제조사와 SW업체들은 ‘커넥티드 카’라 불리는 스마트자동차 프로젝트 결과물을 내놓고 있다. 그런데 이 시장을 겨냥한 국내 완성차 업체와 부품 제조사들이 수출 시장에서 요구되는 국제 기능안정성 표준과 융합IT를 위한 SW인력이 부족함을 느끼는 상황에 보완이 필요해 보인다.

 

최근 만난 IT교육사업체 관계자는 “임베디드SW 교육과정을 구성하더라도 시장 초기인 완성차 융합SW 관련 전문가가 부족해 이 분야 과목을 신설하기 어려운 실정”이라며 “가르칠 사람도 충분치 않은 상황에 민간사업자가 자체 연구개발 목적으로 직접 인력을 키우면서 추가 채용 규모도 상당한 만큼 갈 길이 멀다”고 지적했다.

LG경제연구원 ‘독한 리더십 : 독한 리더가 조직을 성공시킨다’

LG경제연구원 ‘독한 리더십 : 독한 리더가 조직을 성공시킨다’
K모바일  LG경제연구원  

 
‘독한 리더십’의 대표는 얼마 전 타계한 애플의 스티브 잡스다. 그는 강력한 카리스마로 조직을 이끌었고 때론 거만하고 고집불통이었다. 괴팍하고 직설적인 성격으로 직원들을 혹독하게 다루기도 했다. 그러나 그의 독한 리더십을 외형적 스타일로 이해해서는 곤란하다. 그가 보여준 최고의 완벽주의 추구, 신념과 원칙에 대한 단호함, 목표에 대한 집요함, 더 중요한 것에 대한 집중과 몰입, 한 발 전진과 발전이 주는 가치 중시와 같은 내면적 독함이야 말로 그의 외형적 독함마저 빛나게하는 요소다. 더불어 사물의 본질을 꿰뚫는 통찰력, 개인의 이익보다 조직, 고객, 사회, 인류를 바라보는 한 차원 높은 시야는 그의 독한 리더십이 성공할 수 있었던 핵심이었다.

잭 웰치, 앤드루 그로브, 제프 베조스, 나가모리 시게노부 등 강한 개성과 깐깐한 성격의 리더들에게서도 ‘독한 리더십’을 발견하게 된다. 그러나 리더의 무서운 성격과 태도가 독한 리더십을 만들어낸다고 오해해서는 곤란하다. 빌 게이츠, 윌리엄 고어, 세르게이 브린과 래리 페이지 등과 같은 리더들은 부드럽고 다정한 스타일을 지녔지만, 자신의 신념과 원칙에 기반하여 조직과 사업을 이끌어가는 데에는 누구보다도 독한 리더들이기 때문이다.

결론적으로 독한 리더십은 외형적 태도나 스타일의 문제가 아닌 리더가 지닌 내면의 속성에 대한 것이다. 리더가 개인을 뛰어 넘어 조직, 고객, 사회, 인류를 생각할 때, 올바른 생각과 판단을 내릴 수 있으며, 결과적으로 구성원으로부터 신뢰를 확보할 수 있다. 사익을 좇지 않는 확고한 신념과, 원칙에 관한 단호하며 일관된 행동의 리더라면 스타일이나 태도가 아무리 미워도 사람들은 속으로부터 존경심을 가지기 마련이다.

만약 리더가 독선적인 카리스마를 가진 독재자요, 괴짜이며 변덕스러운 통제광이고 남의 말은 전혀 듣지 않는 고집불통이라면 과연 그 조직은 성공할 수 있을까? 요즘처럼 창의와 자율이 강조되는 시대에 필시 얼마 안가 망할 것만 같다. 그런데 위의 언급들은 바로 얼마 전 타계한 최고의 혁신 기업 애플의 스티브 잡스에 대한 얘기다. 그리고 GE의 잭 웰치, 인텔의 앤드루 그로브, 아마존의 제프 베조스, 일본전산의 나가모리 시게노부 등 가장 성공적인 CEO로 인정받는 리더들 역시 이 범주에 해당된다. 이 뿐만 아니다. 3D 영화의 신기원을 이룩한 영화감독 아바타의 제임스 카메론, 세계 최고의 축구클럽 맨체스터 유나이티드의 축구감독 알렉스 퍼거슨과 같은 최고의 리더에게도 위의 표현들은 그대로 적용된다.

이들의 리더십은 많은 리더십 연구자들이 부르짖는 배려와 이해, 감성과 소통의 소위 ‘인간적이고 좋은 리더십’에 역행한다. ‘Good to Great’의 짐 콜린스가 가장 이상적이라 주장한 겸손의 ‘레벨 5 리더십’과는 한참이나 거리가 멀다. 이들은 공통적으로 감정 표현에 매우 직설적이다. 또 독선적이고 구성원에 대한 배려가 부족하다. 모든 것을 혼자 결정하려 하며 변덕이 죽 끓듯 하고, 때론 거만할 정도로 고집스러워 남의 말을 거의 듣지 않는다. 도대체 이런 말도 안되 보이는 리더십으로 어떻게 조직을 성공으로 이끌 수 있었을까?

Ⅰ. 스티브 잡스의 ‘독한 리더십’

최근 미국에서 실시된 설문조사에 따르면 미국 국민들은 스티브 잡스를 역사상 가장 위대한 혁신가 중 두 번째(토마스 에디슨에 이어)로 꼽고 있다. 21세기의 에디슨으로 불리는 혁신의 아이콘 잡스였지만, 리더십에서는 그다지 긍정적인 평가를 받지 못했다. 그는 독단적 성격으로 인해 수시로 동료들과 갈등을 빚었다. 그의 폭언과 이해할 수 없는 행동으로 상처를 입고 회사를 떠난 사람도 적지 않다. 자신에게 이익이 된다면 협상도 주저 없이 깨뜨렸고, 사소한 것으로 직원들을 달달 볶아댔다. 그럼에도 가장 혁신적인 조직을 만들고 아무도 예상치 못했던 성과를 창출했기에 그의 리더십은 더더욱 이해하기 어렵다.

잡스가 있는 애플에는 언제나 인재들이 모여들었다. 잡스 주변에 인재가 넘쳐나게 된 이유는 아이러니하게도 괴팍한 잡스 자신이었다. 수 많은 결점에도 불구하고 잡스는 뭔가 해낼 것 같은 믿음을 주었다. 애플에 근무했던 사람들은 “그와 일할 때면 마치 그가 세계의 중심 같은 존재로 여겨졌다”고 입을 모은다. 이쯤 되면 잡스의 리더십에는 뭔가 특별한 게 있는 것 아닌가 하는 생각마저 든다. 그는 자신의 신념과 목표를 향해 ‘독하게’ 정진했다. 자신이 옳다고 여기는 것에 대해서만큼은 한치의 양보나 타협이 없었고, 놀라울 정도로 대범하였으며, 자기 확신은 지나치리만큼 강했다. 목표는 반드시 이루고야 말겠다는 강한 집념으로 스스로 동기부여 되었고, 집요하고도 지치지 않는 추진력을 보여주었다. 확고한 신념으로 한번 내린 결정에는 단호하고 일관된 행동을 보여주었다. 그가 지닌 독함은 조직 전체에 영감을 불어 넣었다. 그가 보여준 열정은 조직 전체를 공명시켰고, 긍정적인 에너지로 작용했다. 직원들은 힘들어도 그를 따라야 한다고 믿게 되었으며 그 믿음의 결과에 열광했다. 자신들이 이룩한 성과에 보람과 자부심을 가졌고, 역량의 성장에 감격했으며, 잡스를 찬양했다.

잡스는 후계자 육성에 소홀했다는 비판을 받곤 했다. 그의 병가 소식만으로도 휘청거렸던 주가는 마지막까지 명확하게 드러나지 않는 후계 구도에 불안감을 느끼게했고, 비판론자들의 목소리를 키웠다. 그러나 그 누구도 잡스만큼 애플의 미래를 걱정하지는 못했다. 후계자 승계계획(Succession Plan)에 집착하는 이들과는 전혀 다른 방식으로 잡스는 애플의 다음을 차근차근 준비하고 있었다. 두 번째 병가를 떠나기 직전, 잡스는 이미 예일 대학 경영학 교수이자 저명한 경영 구루인 조엘 포돌니를 HR 부사장으로 영입하여 애플의 미래를 대비하는 프로젝트를 맡긴다. 포돌니는 하버드 대학 경영학과 출신 교수 등으로 이루어진 팀을 이끌며 애플의 사업적 결정들을 분석하고 꼼꼼한 매뉴얼과 지침서, 참고 사례로 이루어진 애플만의 참고서를 만들고 있다. 앞으로도 철저히 대외 비밀에 부쳐질 그 책에는 조직의 미래에 대해 누구보다도 독했던 잡스의 고민이 담겨 있을 것임에 틀림 없다.

Ⅱ. ‘독한 리더십’에 대한 오해

독한 리더에 대한 가장 흔한 오해는 외형적 태도만으로 독하다고 판단하는 것이다. ‘독한 리더’ 하면 괴팍한 성격에 고함을 치는 리더를 연상하기 때문이다. 목적을 이루기 위해서라면 물불을 가리지 않고 밀어 부치고, 주변 여건에 아랑곳하지 않고 자기 뜻을 관철시키려 수단과 방법을 총동원하는 카리스마 강한 리더가 떠오르기도 한다. 잡스를 비롯하여 잭 웰치, 앤드루 그로브 등 독한 리더로 부를 수 있는 사람들은 이런 스타일에 가까운 게 사실이다. 독한 리더십은 강한 개성에 깐깐한 성격의 소유자에게나 어울리는 것일까?

엄밀히 말하면 기업을 성공시킨 사람은 독한 리더다. 치열한 약육강식의 비즈니스 무대에서 리더가 독하지 않다면 결코 조직과 사업을 성공시킬 수 없기 때문이다. 겉으로는 부드럽지만 사실은 그 누구보다도 독한 리더의 예도 얼마든지 있다. 예컨대, 마이크로소프트의 빌 게이츠는 잡스의 영원한 라이벌이면서 독하기로는 절대 뒤지지 않았지만 직원들을 대하는 태도에서는 정반대였다. 그는 엔지니어를 극진히 대접하라는 말을 입에 달고 다녔다. 회사를 살리는 것은 소프트웨어 경쟁력이며 이는 엔지니어들로부터 나온다는 신념이 워낙 확고했다. 그가 경영 일선에서 퇴진하면서 남긴 소위 ‘게이츠식 리더십(The Gates Way)’의 4가지 항목 중 하나로 “엔지니어가 회사를 지배하도록 하라!”는 문구를 명시해 놓을 정도였다.

대학원 같은 회사 구글을 이끌고 있는 두 명의 천재 세르게이 브린과 래리 페이지도 잡스와는 전혀 다른 스타일의 독한 리더들이다. 이들이 이룩한 회사 구글에서는 논쟁이 자유롭다. 회의 중에는 지위가 아무런 힘을 발휘하지 못한다. CEO의 가장 중요한 역할은 전략 하달이 아니라 다양한 대화를 주의 깊게 듣는 것이다. 캠퍼스라 불리는 회사에선 구성원의 창의성과 자발성이 최대한 존중되다 보니 일하는 것 자체가 활력이 된다. 이처럼 기존에는 상상하기도 힘들었던 새로운 유형의 회사를 구현해 낸 두 명의 젊은 리더는 비록 성격이 부드럽고 다정하지만 진정 독한 리더라 할 수 있다.

유사한 예는 얼마든지 있다. 민주적 의사결정 시스템을 갖춘 고어사의 창업자 윌리엄 고어 역시 조직 운영 철학에서는 한치의 양보도 없는 독한 리더지만, 누구보다 기업과 조직의 인간적인 면을 강조한다. 미국 텍사스주에 본사를 둔 자연주의 식품 체인 기업 홀푸드, 직원들이 근무 시간과 급여 수준을 스스로 결정하게 하는 샘코, 직원들을 평가하거나 업무 지시가 전혀 없는 일본의 미라이 공업사 같은 회사도 마찬가지다. 이들 기업의 CEO들은 구성원 스스로를 주인공이라 여기게 만드는 경영 철학과 사람의 가치에 대한 신념에서 조금도 물러섬이 없는 독한 리더들이다.

Ⅲ. ‘독한 리더십’의 실체

앞서 살펴본 대로 독한 리더십의 실체는 외형적 태도가 아니라 목표 달성을 위한 열정과 의지와 같은 내면적 속성이다. 리더가 진정한 ‘독함’을 가진다면 리더십 스타일과 상관 없이 비즈니스 경쟁에서 이길 수 있다. 독함이 리더의 결점을 상쇄하고도 남기 때문이다.

1. 완벽주의: ‘최고의 완벽’을 추구한다

사소한 것 하나까지도 편집증적인 완벽을 기하는 것은 독한 리더의 대표적인 특성이다. 스티브 잡스는 지나치게 완벽을 추구한 나머지 집에 가구를 들여놓는 데에도 어려움을 겪었을 정도였다. 그는 항상 “혼을 빼놓을 만큼 뛰어난(insanely great)” 제품을 주창한다. 자신이 관심을 쏟고 있는 제품과 관련된 개발자의 이메일 주소나 전화번호는 전부 암기하고 있었고, 아이디어가 떠오를 때면 한 밤중이라도 수시로 전화하곤 했다. 제품 출시 프리젠테이션에서는 홀의 색조, 조명 밝기 등 사소해 보이는 것까지 맘에 들 때까지 수십 번이나 반복해서 고쳤다. 자신의 어투나 발걸음도 며칠 전부터 수십 번 연습했으며, 문구 하나를 고치는 데에도 며칠을 소비했다. 완벽에 대한 자부심도 대단했다. 일례로 매킨토시 회로기판 내부에는 개발팀 45명의 서명이 새겨져 있다. 아무도 보지 않을 터였지만 매킨토시 개발팀원들에게 예술 작품을 완성한 것과 같은 자긍심을 갖도록 한 것이다. 심지어 케이스를 일반적인 드라이버로는 열리지 않게 만들 정도로 잡스는 제품의 완벽함에 큰 자부심을 표시했다.

잡스 사후 대표적인 혁신 아이콘으로 부상한 아마존닷컴의 제프 베조스도 완벽 추구에서는 둘째 가라면 서러워할 리더이다. 그가 처음 온라인 서점에 대한 최초의 사업 계획을 세웠을 때 최소 1백만 달러의 투자자금이 필요했는데, 당시는 신경제거품이 꺼지지 않아 벤처기업가들은 노련한 투자가들로 단돈 5만 달러를 구하기 어려운 시기였다. 베조스는 인터넷 사용에 관한 방대한 자료에 대한 치밀하고도 완벽한 분석으로 믿을만한 수치 근거를 확보했다. 결국 그는 완벽한 계획서와 프리젠테이션으로 예상을 뒤엎고 5만 달러의 투자가 20명을 비교적 쉽게 구할 수 있었다. 아마존닷컴이 세계 최대의 클라우드 컴퓨팅 기업이 된 것도, 킨들에서 보여지는 전자책의 탁월한 질감과 색조도 완벽함을 향한 베조스의 집념이 낳은 산물이다.

독하기로 소문난 제임스 카메론 감독도 최고의 완벽 추구에는 다르지 않다. 타이타닉을 뛰어넘어 사상 최고의 흥행을 기록한 영화 아바타는 1995년에 이미 80페이지짜리 각본으로 완성되어 있었다. 그러나 당시 컴퓨터 그래픽 기술력으로는 원하는 수준의 영화제작이 불가능하자 카메론 감독은 제작을 포기했다. 2006년에야 영화 제작이 시작될 수 있었던 이유가 바로 감독의 완벽주의였던 것이다.

부드럽고 친근한 성격의 빌 게이츠 역시 완벽함을 추구하는 독한 리더다. 게이츠가 가장 중요하게 여긴 것은 ‘최악의 상황에 대비’하는 리스크 관리였다. 경영 일선에서 물러나면서 남긴 4가지 덕목 중 첫 번째로 강조할 정도로 게이츠는 리스크 대비에 완벽하고자 했다. 창업 초기, 스티브 발머가 회사 성장 전망과 위협 요소를 면밀히 계산하여 최소한 17명의 영입이 필요하다는 제안을 한 적이 있다. 게이츠는 이 제안에, “열 일곱 명이라고요? 말도 안 되는 소리요. 난 결코 회사가 재정적 어려움에 놓이지 않게 할 것입니다. 앞으로 단 한 푼의 매출 없이도 1년은 버틸 수 있도록 현금을 확보하도록 해 나갈 겁니다”라고 답했을 정도다.

2. 집요함: 끝까지 물고 늘어진다

짐 콜린스에 따르면 성공한 기업의 리더들은 탁월한 비전 제시나 리스크 테이킹에 능한 사람이 아니라고 한다. 오히려 아주 실증적이며 어떤 환경에도 요동함 없이 자기 길을 묵묵히 가는 절제된 사람들이라는 것이다. 아무리 천재적인 재능과 두뇌를 가졌어도 소위 한 탕을 노리거나 감에만 의존해서는 조직을 지속적으로 성장시키기 어렵다. 독한 리더의 모습도 꾸준하고 진득하다. 한 번 정한 목표는 달성할 때까지 끈질기게 달라붙는다. 요행을 바라거나 도중에 힘들다고 포기하지 않는다. 직원들이 독한 리더를 따르는 가장 큰 이유는 바로 이런 집요함과 끈질김이다.

작은 납품회사에서 출발, 소형모터 업계에서는 세계 최고의 기업이 된 일본전산의 나가모리 시게노부 사장은 성공 비결을 ‘배(倍)의 법칙’과 ‘절반의 법칙’으로 설명한다. 간단히 말해 남보다 앞서려면 무조건 두 배 오래 일하고, 절반의 기간 내에 목표를 달성하는 것 외에는 방법이 없다는 것이다. 정신 노동이든 육체 노동이든 남들보다 시간과 노력을 두 배 들이면 누구든 이길 수 있다는 것이 그의 철학이다. 창업 당시 시게노부 사장과 동료들은 일반적 근로시간의 두 배인 하루 16시간 일하는 것을 기본으로 삼았다. 하루는 대기업연구소에서 모터 크기를 3개월 안에 절반으로 줄이면 거래를 하겠다는 제안을 받고, 모든 직원이 밤낮으로 씨름하였지만 납기 15일을 남겨 놓은 시점에서 겨우 15% 정도 줄이는 데 그치고 만다. 경과보고를 하러 간 시게노부 사장은 같은 주문을 받은 예닐곱 군데의 대기업들이 너무 어려워 다 포기했다는 사실을 눈치 채고는 돌아와 밤을 새워 더 노력하였다. 결국 18% 정도 줄이는 데 그쳐 시게노부 사장 일행은 의기소침해졌지만, 최종 제품을 받아본 연구소에서는 3개월 만에 18%나 줄인 것 자체가 기적이라며 그 즉시 발주를 하였다.

아마존닷컴의 베조스는 2001년 경쟁업체 보더스가 백기를 들고 브랜드 공유 협력을 제안할 때, “이 승리는 더 뛰어난 고객 서비스를 제공해야 한다는 시장의 메시지입니다”라고 말하며 전진을 멈추지 않았다.

같은 해, 99달러 이상 주문 시 무료배송 서비스를 시작했을 때, 일주일 만에 강력한 경쟁자 반스앤노블닷컴과 출혈 경쟁에 내몰린 적이 있다. 월가에선 아마존닷컴이 위기에 봉착할 것이란 생각이 지배적이었다. 당기 순이익이 곤두박질할 것이 불을 보듯 뻔한 상황이었지만 베조스는 2002년 6월에 49달러 이상 주문으로, 2002년 8월에는 다시 25달러 이상까지로 무료 배송을 확대하였다. 그가 집요하게 매달린 것은 경쟁사를 이기는 것이 아니라 아마존이 경쟁사보다 고객을 위해 끊임없이 가격을 내리고자 노력한다는 인식의 확산이었다. “지금의 뼈를 깎는 노력은 길게 보면 우리를 더욱 강하고 가치 있는 기업으로 거듭나게 할 것입니다”라고 외친 확신에 찬 베조스의 말은 결국 현실이 되었다.

3. 단호함: 신념과 원칙에 한치의 양보 없다

독한 리더들은 신념과 원칙에 대해서는 절대 타협하지 않는다. ‘포춘’에 실린 애플의 기업 문화 분석 기사에는 잡스의 단호함이 잘 드러나는 일화가 있다. 잡스는 2001년부터 PC가 다양한 라이프스타일 기기들의 디지털 허브 역할을 하는 비전을 품고 있었다. 그러나 잡스에게 2008년 여름 출시된 제품 ‘모바일미’는 그의 표현을 빌리자면 “한 마디로 엉망이었다.” 기기들간 호환에 큰 문제를 드러낸 이 제품에 대해 월스트리트 저널 등 언론들은 집중 포화를 퍼부었다. 최고에 대한 신념이 매우 강했던 잡스는 자신이 쌓아 올린 제품력 이미지가 손상되는 것을 참지 못하였다. 그는 모바일 미 팀 전원을 본사 강당에 불러 30분이 넘게 질책하고는 모두가 보는 앞에서 팀의 책임자를 물러나게 하였다.

디자인에서도 ‘단순함’에 대한 잡스의 신념과 원칙은 너무나도 확고했다. 1977년 한 입 베어 먹은 사과 그림의 회사 로고를 처음 만들어 애플II 팸플릿에 인쇄할 때, 잡스는 레오나르도 다빈치가 말한 “단순함이란 궁극의 정교함이다(Simplicity is the ultimate sophistication)”라는 문구를 그 옆에 잘 보이게 찍어 넣을 정도였다. 잡스에게 단순함이란 복잡함의 무시가 아니라 그것을 뛰어넘는 상당한 노력이었다. 아이폰이 처음 나왔을 때 홈 버튼 하나만 있는 디자인으로 세상을 놀라게 한 사건은 이를

잘 보여준다. 잡스에게 고객 가치 기준은 자기 스스로의 확신이었다. 매킨토시를 선보인 날 한 기자가 어떤 방식으로 시장 조사를 했는지 물었을 때도 그는 코웃음치며 되물었다. “알렉산더 그레엄 벨이 시장조사 같은 걸 하고 전화를 발명했나요?”

제프 베조스도 2002년 온라인 사업에서 입소문이 얼마나 중요한 지를 깨닫자 베조스는 그 즉시 모든 텔레비전 광고에서 철수를 지시했다. 자신에 대해 이렇다 저렇다 선전하는 텔레비전 광고보다는 고객과의 약속을 어김없이 지켜나가면서 얻어가는 신뢰가 브랜드가치를 더 키워줄 것이라는 신념에서다. 이후로도 텔레비전 광고효과에 대한 주장이 아무리 거세도 조금도 물러서지 않았다. 월마트의 샘 월튼은 서민과 중산층을 위한다는 신념이 특히 강했다. ‘다양한 물건을 누구보다 더 싸게’라는 원칙은 물론 K마트와 같은 경쟁업체에 비수를 꽂은 가격 전략도 여기서 나왔다. 잭 웰치는 인재 육성이 리더의 가장 중요한 의무라는 신념이 특히 강했다. 그래서 젊은 인재라면 일찍 발탁하여 책임과 권한을 주고 최대한 능력을 발휘할 수 있도록 밀어주었으며 기대에 못 미치는 경우에는 가차없이 탈락시키는 원칙을 보였다. 수 천명을 해고하던 잭 웰치가 크로톤빌 연수원 예산 청구서에 ‘무한대’라는 글씨를 휘갈겨쓴 것도 그의 신념을 보여준 상징적 행동이었다.

구글을 이끌고 있는 다정다감한 성격의 두 젊은 리더 브린과 페이지도 가치와 신념에서는 한 치의 양보도 없다. 이들은 “바르지 않은 일은 절대로 하지 않는다(Don’t Be Evil)”라는 다소 평범해 보이는 가치를 기업 경영에서 변함 없이 실천하는 독한 리더다. 많은 포탈 업체들이 상업적인 동기를 가지고 검색결과를 편집하여 구성하는 것을 대수롭지 않게 여기는 현실을 생각해보면, 절대로 단기적인 이익을 위해 검색순위를 편집 혹은 조작하지 않는 원칙을 고수하는 것이 얼마나 독한 것인지 알 수 있다.

4. 집중과 몰입: ‘더 중요한 것’ 위해 ‘중요한 것’은 포기한다

제프 베조스는 아마존닷컴을 창업하면서 오프라인 서점과는 전혀 다른 차원을 머리 속에 그리고 있었다. 직원과의 상호 작용이 거의 없는, 그러면서도 고객에게 가장 완벽한 도서 구매 경험을 선사하는 온라인 서점이 그것이다. 그에게 ‘더 중요한 것’은 직원들의 자율과 창의, 배려가 아니라, 데이터관리 시스템과 물류 창고였다. ‘더 중요한’ 고객 대응을 위해 인건비가 높은 석사 학위 소지자들을 상담직에 채용한 것은 당연했지만, 몇 번을 수리하여 사용하는 직원들의 낡은 나무 책상에 베조스의 관심이 갈리 없었다. 직원들의 관리도 그냥 ‘중요한 것’ 중 하나였다 베조스는 직원들이 상시적으로 당하는 모니터링, 분당 이메일과 전화 대응 건수에 따라 평가 받는 데 대한 불만을 잘 이해하지 못했다. 한 직원은 퇴사하면서 시애틀 신문에 ‘아마존 집단으로부터의 탈출’이라는 글을 기고하면서 “아마존닷컴에서는 인간적인 교류를 필요악처럼 여겨지는 분위기다”라고 고백하였다. 베조스의 전기라고 볼 수 있는 ‘One Click’을 쓴 리차드 브랜트는 베조스야말로 사업에 모든 우선 순위를 두는 리더의 전형이라고 지적한다. 베조스에게 ‘구성원들로부터 존경 받는 것’은 애당초 중요하지 않았다.

잡스도 자신이 남들에게 어떻게 비쳐지는지 따위는 안중에 없었다. 아이디어를 성과로 연결시키는 것 만이 그에게 유일한 ‘더 중요한’ 것이었다. 따라서 맘에 들지 않는 프리젠테이션쯤은 언제든 중단시켰고, 자신의 소중한 시간을 낭비하게 만들었다며 화를 내곤 했다. 이런 잡스의 태도는 ‘반지름 10미터 밖의 사람들에겐 열정과 희망을 주었지만 반지름 5미터 이내에 들어온 직원들에게는 공포심을 불러일으켰다’고 묘사되기도 했다. 기대 수준에 맞는 ‘깨달은 사람’ 아니면 ‘멍청한 놈’으로 이분화된 직원들은 잡스로부터 ‘최고’라고 인정받거나 아니면 완전히 ‘쓰레기’취급을 당하는 둘 중의 하나였다. 이런 분류는 완전히 고정되어 있는 것도 아니었다. 잡스는 어떤 아이디어에 대해 쓰레기 같다는 모욕을 주고 나서도 나중에 자기가 생각해낸 것처럼 오히려 상대를 설득하기도 했다. 이런 뻔뻔한 태도에 대해 그의 전기를 집필한 작가 월터 아이작슨은 “잡스의 두뇌 회로에는 순간적으로 떠오르는 충동적인 생각들의 극단적 증가를 완화시켜주는 장치가 결여되어 있는 것 같다”고 분석한다.

인터넷이라는 새로운 흐름을 감지한 1994년, 빌 게이츠는 일년에 한 번 갖는 자신의 ‘생각 주간’에 온통 인터넷에 몰입한다. 그리고 회사의 핵심 브레인들로 이루어진 팀을 구성하여 다가올 위협을 분석했다. 한달 이상 지속된 토론과 분석 끝에 인터넷은 사업 환경의 근간을 흔드는 변화이며 기회이고 위협이므로 마이크로소프트는 변화의 물결을 적극적으로 끌어안아야 한다는 결론을 내린다. 이어 게이츠는 잘 알려진 인터넷 익스플로러 개발을 위한 5백명의 프로그래머 조직을 구성하여 회사의 역량을 여기에 집중시킨다. 마이크로소프트가 인터넷이라는 거대한 흐름에 순항할 수 있었던 것도, 1994년 당시 리더가 집중적인 고민과 토론 끝에 마이크로소프트라는 거함의 방향을 단번에 180도 바꿀 수 있었기 때문이다.

5. 꾸준함 : 여정 자체가 주는 가치를 중시한다

독한 리더들은 일시적인 어려움쯤은 전혀 개의치 않는다. 미래에 대한 자신감으로 가득 차 있기 때문이다. 자신의 장기 계획에 대한 확신으로 가득했던 제프 베조스는 당장의 실적부진을 전혀 감추려 하지 않았다. 1997년 뉴욕타임즈와의 인터뷰에서 기자가 실적 부진을 거론하자, “네, 우리는 지금 이익을 못 내고 있어요, 하지만 지금과 같은 초기 단계에 이익을 내기 위한 사업적 결정을 하는 것만큼 어리석은 것은 없지요”라며 자신감을 피력하였다. 2000년 인터넷 사업의 거품이 꺼지면서 아마존닷컴의 주가는 주당 100달러에서 6달러로 수직 추락했다. 한때 100억달러에 육박하던 그의 재산도 2002년에는 15억달러로 줄었다. 하지만 베조스는 여전히 “단기간의 주가 변동에는 관심 없다. 고객에게 집중하자”고 직원들 독려했다.

1991년 업계 최강으로 자리를 굳히던 시기에 빌 게이츠가 작성한 ‘Nightmare memo’라는 문서가 지역 신문인 산호세 머큐리 뉴스에 보도되면서 주가가 11%나 떨어지는 일이 있었다. 회사가 잘 나가는 시기였지만 이 메모에는 오히려 경쟁사, 기술, 지적 재산권, 특허, 고객 불만 등 다가올 온갖 위협과 걱정 거리가 다 들어 있었다. “우리의 우려는… 이제 현실입니다”라는 말로 마무리된 이 메모는 게이츠의 리스크 문제에 관한 편집광적인 독함을 잘 보여준다. 지속성을 중시하는 독한 리더들은 ‘큰 것 한 방’보다는 꾸준히 전진하는 과정의 가치를 중시한다. 경영 환경이 안 좋을 때나 좋을 때나 더하거나 덜하지 않고 최종 목적지에 초점을 맞추는 것이다. 눈 앞의 성과에 현혹되지 않고 멀리 내다보며 내실을 다지는 절제는 보통 독한 리더가 아니고서는 갖기 어렵다.

잡스 역시 결코 경쟁에서 이기거나 돈을 많이 버는 것을 목적으로 삼지 않았다. 애플의 매킨토시 개발팀에서 일했던 허츠펠드는 “잡스는 가능한 한 가장 위대한 일을 하는 것, 혹은 거기서 한 발자국 더 나아가는 것이 목표였다”고 회고한다. 자신과 팀원들은 그런 잡스에 매료되었다고 털어놓는다. 하루는 매킨토시 개발팀을 찾은 잡스에게 부팅 시간 지연 문제에 대해 한 엔지니어가 변명을 하려 했다. 그러자 잡스는 그 말을 끊고, “500만 명의 맥 사용자가 매일 컴퓨터 부팅 시간을 10초 덜 사용한다면 연간 3억 분이 절약되며 이는 100명의 사람들의 일생에 해당한다”고 일갈하였다. 결국 그 엔지니어는 몇 주 후에 부팅 시간을 28초나 줄여 놓았다. 이런 성취감은 자발적으로 확보된 것은 아니었음에도 애플의 엔지니어들에게 커다란 내재적 보상이 되었다. 애플 엔지니어들의 퇴사율이 업계 최저 수준이고 그들이 말하는 애플에 남아있는 가장 큰 이유는 ‘이런 기적이 일어나는 세상의 중심 애플에 다니고 있기 때문’이다.

6. 통찰력: 이면에 감추어진 본질을 꿰뚫어 본다

애플이 제록스의 팰러앨토 연구센터(PARC)의 그래픽 인터페이스와 비트맵 기술을 가져다 쓴 것은 IT업계 역사상 가장 의미심장한 도둑질로 간주되곤 한다. 1979년 PARC를 방문한 잡스는 그림으로 이루어진 명령체계와 메뉴판을 마우스라는 입력기로 조작하는 알토(Alto)라는 컴퓨터를 보게 된다. 그 순간 잡스는 그 가능성을 알아차리고 발을 동동 굴렀다. 잡스에게 새로운 기술을 소개하였던 제록스의 엔지니어 테슬러는 다음과 같이 회고한다. “잡스는 흥분해서 가만있질 못하고 이쪽 저쪽을 왔다 갔다 했어요. 내 설명을 제대로 이해했는지 궁금했지만 그는 계속 질문을 쏟아냈으며 화면이 바뀔 때마다 감탄을 내지르더군요. 그리고는 마침내 ‘당신들은 돈방석 위에 앉아 있는 데 대체 왜 이런 걸 활용하지 않느냐 말이요!’ 라며 소리질렀죠.” 사실 잡스는 훗날 이 방문에 대해 컴퓨터의 미래가 갑자기 선명하게 보이기 시작했다고 회상했다. 그 설레임은 최고의 PC 매킨토시로 탄생되었고 잡스는 스스로 ‘도둑질’을 자랑스럽게 인정했다. 자신은 역사에 등장한 최고의 아이디어를 찾아냈으며 애플은 이를 잘 활용한 것이라고 주장했다. 피카소의 말을 인용, “좋은 예술가는 모방하고 위대한 예술가는 훔친다”며 훌륭한 아이디어를 훔친 것을 부끄러워하지 않았다.

잡스는 제록스가 보지 못한 기술의 본질을 한 눈에 꿰뚫어 보았다. 또 훔쳐서라도 최고의 제품을 개발하고픈 열망을 이기지 못했다. 역사는 최고의 기술을 손에 쥐고도 어떤 일을 할 수 있는 지 몰랐던 제록스보다 ‘도둑’ 잡스에 더 많은 지지를 보낸다. 잡스가 언제나 어디서나 음악을 다운받고 즐길 수 있게 하겠다는 사업 열망을 가지게 된 것도 마찬가지다. 애플이 아이맥을 출시한 후 소니의 고급 스테레오에 장착된 슬롯 드라이브에 매료된 잡스는 개발책임자의 반대를 꺾고 아이맥의 CD트레이를 슬롯드라이브로 바꾸라고 지시한다. 하지만 파나소닉에서 읽고 쓰는 CD드라이브가 출시되자 개발책임자의 예견대로 애플은 문제에 봉착한다. 듣고 싶은 음악을 편하게 구워 사용하고 싶어진 고객들에 애플이 제대로 대응하지 못하게 된 것이다. 그런데 잡스는 문제의 본질이 기술에 있지 않고 소비자들의 음악에 대한 욕구변화에 있음을 간파했고 결국 아이포드와 아이튠즈가 세상에 나오게 된 것이다.

제프 베조스가 100만 달러 연봉을 받던 직장을 뛰쳐나와 아무도 이해하지 못한 창업을 고집했던 이유도, 잭 웰치가 다른 비용은 줄이고 깎으면서도 인재에 대한 투자는 아끼지 않은 것도 장기적인 안목으로 본질을 꿰뚫어 보는 능력이 있었기 때문이었다. 잡스가 죽는 날까지 강조한 ‘혼을 빼놓을 만큼 뛰어난(insanely great)’ 제품과 서비스 역시 기술 자체의 탁월함이라기 보다 숨겨진 시장의 본질적 욕구를 충족시키는 것에 관한 주문이었다.

Ⅳ. ‘독한 리더십’으로 성공하는 조직이 되려면…

이제 ‘어떻게 해야 하나?’의 문제를 풀 차례다. 안타깝게도 이 문제는 수학과 달리 정답이 없다. 하지만, 독한 리더십을 가진 리더와 기업들의 사례에서 몇 가지 중요한 힌트를 얻어볼 수 있다. 다만 먼저 전제되어야 할 것은 독한 리더십은 신념과 가치에 대한 확신, 열정과 같은 내면적 속성이지 겉으로 드러난 외형적 태도를 의미하지 않는다는 점이다.

1. 리더 스스로 신뢰 축적이 핵심

리더가 조직과 사업을 성공으로 이끌려면 무엇보다 구성원으로부터 가슴에서 나오는 신뢰를 얻어야 한다. 조직을 성공시킬 거라는 믿음을 주려면 리더로서 어떤 점이 중요한 지 살펴보자.

올바르고 일관된 판단과 결정

개인을 뛰어 넘어 조직, 고객, 사회, 인류를 생각하는 판단과 결정은 신뢰를 얻는다. 리더가 사익을 좇지 않을 때 스타일이나 태도가 아무리 미워도 사람들은 속으로부터 존경심을 가진다. 스티브 잡스, 앤드루 그로브, 빌 게이츠가 내린 결정은 자신보다는 조직, 그리고 고객, 사회, 인류를 위한 쪽이었다. 돈을 벌기보다 세상에 흔적을 남기고 싶어했고, 더 나은 제품과 서비스를 개발했을 때에는 시장에서 히트를 치지못해도 그 자체로 기뻐했다. 아마존닷컴의 제프 베조스는 직원들의 낡은 나무책상도 바꿔주지 않는 ‘짠돌이’ CEO지만 80세 넘은 할머니 고객의 “포장을 뜯기 어렵다”는 목소리에 비용과 상관 없이 곧바로 포장재와 디자인을 바꾸는 결정을 한다. 이런 고객 관점의 올바른 판단에 직원들은 조직의 미래를 신뢰한다. ‘실패하면 바다에 빠져 죽자’고 까지 외친 포스코의 박태준 명예회장은 우리나라의 대표적인 ‘독한 리더’이다. 그가 사람들의 많은 존경을 받고 있는 것은 불가능하다고 여겨지던 일을 해낸 성과 때문만은 아니다. 개인 명의의 재산을 단 한 푼도 남기지 않았고, 포스코 주식 단 1주도 보유하지 않을 정도로 회사와 국가를 먼저 생각한 숭고한 비전과 실천에 사람들은 더 큰 존경심을 품는다. 단기 실적에 일희일비하거나 사익을 챙기기 위해 윤리적으로 어긋난 결정을 내리는 리더는 아무리 독해도 신뢰를 잃게 되고 결국 성공하기 어렵다.

독한 리더일수록 남의 말을 잘 듣지 않는 성향이 강하기에 현명한 사업적 판단이 더욱 중요해진다. 최근 파나소닉의 사례는 독한 리더의 잘못된 판단이 얼마나 조직을 어렵게 하는지 잘 보여준다. 파나소닉의 나카무라 쿠니오 회장은 2000년대 중반까지만 해도 경영의 신 마쓰시타 고노스케의 부활이라고 언론에서 일컬어질 정도로 신뢰를 얻은 독한 리더였다. 그런데 나카무라 회장은 이미 2005년에 전문가들에 의해 액정(LCD)와 플라즈마(PDP)의 대결은 결론이 났음에도 불구하고 자신의 판단을 지나치게 확신하여 “플라즈마 TV에 사운을 걸겠다”고 외치며 투자를 확대했다. 2007년 단일 공장으로는 세계 최대라는 소리를 들은 플라즈마 공장을 아마가사키에 건설하며 주목을 받기도 했다. 나카무라 회장의 뒤를 이은 오오츠보 후미오 사장 역시 점점 목소리를 높이는 현장의 신중론에 대해 “투자 경쟁에서 지면 코스트 경쟁력, 시장 점유율에서도 지게 된다”며 일갈하기도 했다. 결국 거액의 투자는 실패했고 회사의 미래가 불투명해질 지경에 이르렀다.

완전한 조직일체감

조직의 성패를 자신과 완전히 동일시하는 일체감을 가진다면 리더의 독함은 더 큰 신뢰를 확보할 수 있다. 2004년 1월 미국 NBR(Nightly Business Report)방송이 와튼 스쿨과 공동으로 ‘지난 25년 간 가장 뛰어난 비즈니스 리더 25인’을 기획, 설문조사를 실시한 바 있다. 최고의 리더로 선정된 인텔의 앤드루 그로브는 ‘왜 인텔을 떠나 다른 도전을 찾지 않았는가?’라는 질문에 “내 생에 인텔 말고 그 어디에서 일한다는 건 꿈도 못 꾸었다”고 답한다. 배수진(背水陣)을 친 사람은 독함의 정도가 다른 법이다. 독한 리더로 조직을 성공시킨 사람들은 단 한번도 자신의 조직을 ‘언젠가 떠날 조직’쯤으로 여기지 않았다. 앤드루 그로브도 조직과 자신을 완전히 동일시함으로써 독한 리더십을 빛낼 수 있었다. 조직의 성패에 인생을 거는 각오야말로 독한 리더로 뜻을 이루기 위한 기본 전제다. 창업자가 아니라서 어렵다는 생각이 든다면 “큰 기업의 리더가 해야 할 가장 큰 역할은 그 안에 작은 기업이라는 나무를 심는 것이다”라고 했던 잭 웰치의 말을 되새겨볼 필요가 있다.

외부에서 영입된 리더라면 조직의 DNA를 완벽하게 체화시키는 것이 선결과제다. 태도만으로는 실력의 부족을 메울 수 없는 것처럼 독함만으로 사업 성과를 보장받지 못한다. 사업 성과는 조직의 역량을 얼마나 잘 끌어내느냐가 핵심이다. 따라서 구성원들에 관심을 가지고 조직의 특성과 역량, 문화를 완전하게 체득할 때 목표 달성을 위한 강력한 추진력을 발휘할 수 있다. 일본 제조업의 자존심이었던 소니의 최근 부진을 조직 DNA를 완벽하게 이해하지 못한 리더에서 찾는 분석이 적지 않다.

요미우리 신문 등 적지 않은 일본 언론들은 소니 몰락의 근본 원인을 전 CEO였던 최근 하워드 스트링거의 리더십 부재에서 찾고 있다. 2005년 외부 인사로는 최초로 CEO에 임명한 스트링거는 위기극복을 위해 불철주야 노력했지만, 급변하는 시장에서 살아남기 위한 비전과 모든 구성원들이 합심하여 수행해야 할 분명한 전략도 제시하지 못했고 소니 부활의 믿음을 주는데도 실패했다. 한국 기업에 추월당한 TV 시장에서 스트링거는 더 나은 제품 개발을 채찍질하는 대신 아웃소싱을 확대하여 가격을 낮추는 저가 전략을 썼다. 그 결과 베스트바이나 딕슨과 같은 유통 채널에서는 조잡하고 거친 베젤의 TV가 어울리지 않는 소니 라벨을 달고 한국 기업 제품의 반값에 팔리는 일이 벌어지기도 했다. 이런 방식은 세계 최고의 기술력이라는 소니의 자부심에 상처를 입혔으며 직원들의 의욕을 잃게 만들었다.

구성원과 소통되는 리더의 진심

독한 리더의 스타일이 강하고 깐깐할수록 구성원들에게 오해를 사는 경우가 많다. 독할수록 리더의 진심이 잘못 전달되면 역효과만 커진다. 조금만 문제가 생겨도 모든 불만의 화살이 리더십 스타일에 몰리기 때문이다. 따라서 리더의 진심을 조직 전체가 충분히 이해하고 수용하는 것은 무엇보다 중요하다. 일본전산의 나가모리 사장은 아끼는 직원일수록 호되게 나무라는 스타일의 독한 리더다. 그는 혼내는 것을 아주 특별한 관심을 보이는 것이라고 주장한다. 리더가 진심으로 직원이 하는 일에 관심을 가지고 들여다보면 나무라거나 질책할 일이 더 많이 생긴다는 것이다. 만약 이런 리더의 진심이 직원들에게 제대로 전파되지 못한다면 호통 소리가 커질수록 반발과 불만도 커질 것이다. 그런데 일본전산의 직원들은 사장의 노발대발하는 꾸지람을 듣고 나면, 오히려 ‘사장님이 내 일에 대해 관심이 있구나’ 라고 생각한다. 반대로 보고를 해도 질책이 없으면 오히려 의기소침해진다. 나가모리 사장은 일년에 한번씩 직원들의 아내와 부모에게 리더로서 고마움과 칭찬을 전하는 편지를 쓴다. 그에게 칭찬 한번 들어본 적이 없고 호통도 눈물이 찔금 날 정도로 많이 당하지만 사장의 신념과 원칙을 아는 직원들은 불만이 없다. 독한 리더 곁의 참모는 리더의 진심이 직원들에게 잘 전파될 수 있는 방법을 강구하는 것을 무엇보다 중요한 과제로 인식해야 한다.

색이 바래지 않도록 독함 유지

독한 리더십은 조금이라도 변질되거나 색이 바랠 때 특히 위험하다. 순간의 위기를 모면하거나 단기적 이익에 어두워 원칙과 신념에 훼손이 가는 결정을 하게 될 때 그 동안 쌓아 올린 신뢰의 탑은 순식간에 무너질 수 있다. 오는 4월 CEO직에서 물러나기로 발표된 존슨앤존슨의 윌리엄 웰든 회장은 품질 문제에 소홀히 대응한 대가를 톡톡히 치르고 있다. 2002년부터 역임해온 웰든에게는 2010년부터 잇따라 발생한 리콜 사태에서 품질관리와 제품결함이 발견되었음에도 대응에서 철저하지 못했다는 비판이 거세다. 30년 전 아주 작은 문제에도 미 전역의 모든 제품을 수거했던 타이레놀 사태에서 정직하고 철저한 대응으로 쌓아 올린 신뢰에 커다란 금이 가고 있다.

독한 리더십은 리더의 위치에 따라 발현 방식이 달라질 수 있다. 예컨대 CEO라면 조직이 추구하는 가치를 지키는 신념과 원칙에서 누구보다 독해야 한다. 실제 업무를 수행하는 단계에 있는 중간 리더라면 실행 방법이나 과정에서 적당주의가 없도록 독한 리더십을 발휘해야 할 것이다. 스티브 잡스 곁에는 디자인의 조나단 아이브, 오퍼레이션의 팀 쿡 등 실질적으로 애플을 이끈 각 영역의 책임자 여덟 명이 있었다. 이들 역시 독한 리더들이기는 마찬가지지만 중간 리더로서 잡스의 철학과 원칙이 현장에서 잘 실행되도록 독하게 챙기는 것에 가장 큰 우선 순위를 두었다. 애플이라는 거대한 조직이 하나의 신념, 하나의 원칙으로 똘똘 뭉쳐 변하지 않는 독함을 유지할 수 있었던 것은 잡스 혼자만의 공로는 아니었다.

2. ‘독한 리더’의 발굴과 육성

조직에 맞는 독한 리더십은 어느 날 갑자기 만들어지지 않는다. 능력도 뛰어나야 하지만 조직의 비전과 가치가 몸에 배야 하기 때문이다. 창업자의 독한 리더십이 돋보이는 것도 이런 이유에서다. 아직 독한 리더가 없다면 좀 더 멀리 내다보는 안목에서 채용부터 육성까지 현재의 방식을 재검토해볼 필요가 있다.

한번 해보겠다는 사람부터 뽑는다

자신의 일에 독하게 매진할 수 있는 사람을 잘 뽑는 것이 첫걸음이다. 좋은 스펙이 미래의 독한 리더십을 보장하진 않는다. 일본전산에서는 채용 시 ‘왜 내가 이 회사를 선택하였는지가 얼마나 분명한가’를 가장 중요하게 본다. 나가모리 사장이 항상 ‘할 수 없다고 분석하는 일류보다 한번 해보겠다고 나서는 삼류가 낫다’ 고 말하며 똑똑한 순서가 아니라 회사에서 자신이 할 일에 대해 애착이 강한 순서대로 선발하는 기준을 바꾸지 않는다. 일본 건설업계의 주목 받는 기업 헤이세이 건설의 아키모토 히사오 사장은 목수의 아들로 태어나 점차 사라져 가는 전통 목수의 가치를 살려내려는 신념으로 건설회사를 창업한 인물이다. 일본 전통 주택의 명맥을 이어야 할 목수가 하청업체의 계약직으로 점차 사라져가는 데 안타까움을 느끼고 히사오 사장은 업계 최초로 대졸 정규직 출신을 뽑아 목수로 육성한다. 부침이 심한 건설업계에서 전국에서 우수 대졸 사원들이 헤이세이 건설로 몰려들고 있다. 목수로 성공하고자하는 신념이 강한 사람들을 채용에서부터 선별하고 이들을 강도 높게 조련하여 주택 건설의 총 지휘관으로 키우는 것이다.

꼭 성공해내겠다는 독함을 고취한다

독함을 지닌 직원이라면 업무 하나하나에 깊이 파고 들어 뭔가 끝을 보겠다는 성향이 강하다. 이런 독함이 잘 관리되어 축적되면 독한 리더십의 토대가 된다. 일본 전산의 직원들이 직접 쓴 ‘도전의 길’이라는 책자에는 뜨거운 열정으로 거래처를 개척하던 3년차 직원 핫토리 세이치가 나온다. 1980년 그가 개척한 핸드마사지 제조회사가 부도를 내는 바람에 회사가 위기에 내몰리게 된다. 무시무시한 호통의 대명사 나가모리 사장은 자책감에 사로잡힌 핫토리에게 오히려 “이번 일로 자네 공부 많이 했지?” 라는 한마디로 상황을 종료시킨다. 실패의 이유를 깨닫고 앞으로 더 열심히 하면 된다는 말이었다. 나가모리 사장은 당연한 일을 실수하거나 작은 것에 소홀히 하는 직원에는 큰 호통을 친다. 그러나 열심히 하다 실패한 직원에겐 어깨를 두드려 준다. 핫토리가 이후 얼마나 독하게 업무에 매진했는지는 말할 필요도 없을 것이다. 질책하고 모욕을 주어야만 독기가 생기는 것이 아니라는 점을 시게노부 사장은 잘 알고 있다. 목표와 방향 외에는 전적으로 맡긴다

스티브 잡스는 고등학교를 다니던 시절 과외 클럽에서 전자신호 펄스를 초 단위로 측정하는 주파수 계수기를 만드는 프로젝트를 진행한 적이 있다. HP에서 만드는 부품 몇 개가 필요해지자 그는 전화번호부에서 빌 휴렛을 찾아 전화를 걸었다. HP의 CEO와 20분간이나 통화를 한 후 잡스는 부품은 물론 여름 방학 동안 HP에서 인턴으로 일할 수 있는 기회도 얻었다. 만약 이 때 선생님이나 아버지가 나서서 기회를 만들어주었거나, 그건 무례한 짓이라고 나서서 막았더라면 오늘날의 잡스도 애플도 없었을 지도 모른다. GE가 추구하는 사업가 육성 방식에서도 책임과 권한을 주고 기다리는, ‘믿고 맡기는’ 방식이 핵심이다. GE의 현 CEO 제프리 이멜트는 사업가 육성 과정의 일환으로 전 CEO였던 잭 웰치로부터 어려움을 겪고 있는 가전 사업부를 회생시키라는 목표를 부여 받게 되었다. 가전에 대해서 전혀 아는 바가 없었던 이멜트는 처음부터 하나씩 밑바닥에서부터 배워나갈 수 밖에 없었다. 결국 이멜트의 사업가 기질과 잠재력을 믿고 전적으로 맡겼던 잭 웰치는 가전 사업부의 턴어라운드는 물론 듬직한 미래의 후계자도 얻게 된 것이다.

Ⅴ. 맺는 말

독한 리더십은 경쟁에서 이기려는 조직이 갖추어야 할 필수 요건이다. 그리고 그 핵심은 내면의 ‘독함’이다. 사례로 살펴 본 스티브 잡스, 제프 베조스, 잭 웰치, 나가모리 시게노부와 같은 리더들은 어쩌면 외형적인 스타일에서 결함이 있는 리더일 수 있다. 만약 이들이 독한 리더십을 좀더 지혜롭게 발휘하여 인격적으로도 완벽한 리더였다면 금상첨화였겠지만, 그러나 설령 그렇지 못했다고 해서 이들이 보여준 독한 리더십의 빛이 바래지지는 않는다. 오히려 이들이 지닌 내면적 독함은 외형적인 독함마저 남다른 강점으로 보여지게 만든다.

뱅가드 그룹의 창업자인 존 보글 전 회장은 2000년 미국 와튼 스쿨에서 행한 리더십 주제 강연에서 “리더십은 매뉴얼과 같은 어떤 순서를 성실히 따라 해서 만들어지는 것이 아니다. 뛰어난 리더는 자기에 맞는 리더십의 길을 자기 의지로 선택하는 것이다”라고 말하였다. 교과서에 나오는 바람직한 리더상을 강요한다고 해서 좋은 리더가 만들어지는 것은 아니다.

지금 우리가 처한 경영 환경은 독하지 않으면 경쟁에서 쳐질 게 불을 보듯 뻔하다. 그렇기에 ‘독한 리더십’의 가치가 더욱 올라간다. 조직이 강해지려면 구성원들이 독해져야 하고, 구성원을 더 독하게 만드는 힘은 리더에게서 나온다. 결국 독하고 강한 조직은 독한 리더만이 빚어낼 수 있는 작품이다. 겉으로는 시대에 맞는 세련미와 인격적인 성숙함을 지녔으되, 내면에는 누구보다도 ‘독함’을 간직하고 있는, 진정한 ‘독한 리더십’을 주변에서 더 자주 접할 수 있기를 기대해 본다.[LG경제연구원 강진구 연구위원]

스마트폰 자판 개발자 박찬룡씨

– 한국일보에서 퍼온 글입니다. 개발자인 저를 다시한번 돌아보게하는 글인것 같습니다. 물론 한글이 위대한 문자라는 것을 다시금 되새기게 합니다. –
 
“독자 자판 없는 중국어·일본어… 알파벳 대신 한글로 입력하게 만들겁니다”

  • “미국은 달러 패권이 실패하자 영어 패권에 더욱 매달리고 있습니다. 헤나와 나이러는 쿼티보다 더 편리한 자판이 있다는 걸 세계에 알려서 미국식 영어패권주의에 저항합니다.” 최흥수 기자 choissoo@hk.co.kr

활용빈도 높은 자모 중심, 천지인보다 크고 간편한
‘나이러 자판’ 만들어 70대 친구들이 편하대요
영문 ‘헤나 자판’도 개발

도미 후 65세까지 측량 일, 퇴직 전 고국 자판 배우다 편리한 방법 없을까 독학
우선 중국에 한글식 보급, 미국 영어패권주의에 도전

전세계에서 오로지 한글과 알파벳만이 휴대전화에 문자판으로 존재한다. 중국어도 일본어도 아랍어도 태국어도 모두 알파벳을 이용해서 자기네 나라말을 발음대로 친 후 그 알파벳을 자기네 나라말로 바꿔서 글자를 만들어간다. 아, 위대한 세종대왕이여.

그렇다면 알파벳 언어권이 아닌 나라 사람들이 한글을 통해 자기네 나라 말을 찾아들어가게 자판을 만들면 어떨까? 한글은 한 글자가 한가지 음절이기 때문에 영어보다도 표현이 정확하다. 이같은 장점이 전세계에 널리 알려지고 활용된다면 영국이 산업혁명을, 프랑스가 프랑스혁명을 전세계에 선사한 것만큼이나 한국이 세계에 기여하는 것이 되겠다. 물론 우리나라로서는 한글의 활용도가 커져서 알파벳 문화권에 흡수되지 않는다는 장점이 있다. 찌아찌아족처럼 글자가 없는 민족이 한글을 통해 표현법을 익히는 것만큼 외국인의 표현을 도우면서 고유문화도 살리는 상생이 이뤄지는 셈이다.

미국에서 측량노동자로 일했던 재미교포가 퇴직 후 이 일에 나섰다. 그는 우선 화면이 훨씬 크고 편리한 한글 ‘나이러’ 자판과 영어 ‘헤나(HENA)’자판을 만들었고 궁극에는 한글로 외국어를 입력하는 방향으로 나아갈 방안까지 고민하고 있다. 박찬룡(71•크로스다이얼 대표)씨를 만났다.

_나이러 자판이 뭐지요?

“현재 있는 휴대폰용 한글 자판 가운데 가장 편리한 것으로 입증된 천지인 자판(삼성식 자판)보다 더 간편하고 화면이 큰 스마트폰용 자판을 만들었어요. 활용빈도가 높은 자모를 중심에 배열해놓고 보니 가운데가 ‘ㄴ ㅏ ㅇ ㅣ ㄹ ㅓ’가 되어서 나이러 자판으로 이름붙였어요. 똑같은 곳을 두 번이나 세 번 쳐서 다른 자음을 만들어내는 천지인과 달리 나이러는 직타식이에요. 눈에 보이는대로 자음을 찍으면 됩니다. 천지인은 ㅇ과 ㅁ이 같은 칸이라 ‘양용은’을 치려고 하다보면 ‘야묘믄’이 되기 쉬운데 나이러에서는 자음이 아예 다른 칸에 있으니까 이런 실수를 할 일이 없지요. 모음은 두 번 찍게 되어있긴 한데 그래도 처음 쓰는 사람도 자판만 보고 즉시 쓸 수 있어서 속도가 빨라요. 제 친구들이 모두 41년생 노인인데 이걸 해보더니 정말 쉽고 편하다고 저한테 고맙다고 그래요.”

_활용할 칸은 똑같을텐데 어떻게 이런 차이가 가능하지요?

“밀어쓰기를 활용해서 그래요. 가령 ㄲ은 천지인에서는 세 번 눌러야 나오는데 나이러에서는 ㄱ을 밀면 ㄲ이, ㄷ을 밀면 ㄸ이 나오게 되어 있어요.”

_헤나 자판도 같은 원리인가요?

“현재 스마트폰 영어 자판은 아이폰이 대세를 주도하면서 쿼티 자판을 쓰고 있어요. 쿼티 자판이란 컴퓨터용 자판을 그대로 스마트폰으로 옮긴 거예요. 왼쪽 위에 처음 등장하는 자모를 옮기면 QWERTY라서 쿼티 자판이라고 부르지요. 아이폰은 한글도 쿼티 자판이에요. 손바닥만한 스마트폰에 컴퓨터용 자판을 그대로 옮겨오니까 자판 하나가 깨알같이 작아져요. 그래서 문자를 칠 때면 스마트폰을 기울여서 쓰는데 그러면 글자내용이 보이는 칸이 좁아져서 전체 내용을 읽기 불편해요. 글자칸도 여전히 좁아서 손이 둔하면 실수가 잦고요. 이런 게 불편하니까 미국에서도 티나인(T9)같은 방식을 퀄컴이 만들어봤는데 널리 쓰이질 못하고 사라졌어요. 이건 연타식 자판처럼 한 칸에 석자를 넣되 한번만 쳐도 컴퓨터가 알아서 세 글자 중에 맞는 글자를 찾아서 단어를 조합해주거든요. 그런데 단어를 다 완성해야 맞는 단어가 나오기 때문에 사람들이 참을성이 없어서 쓰질 못해요. 결국에는 빼곡한 쿼티 자판이 스마트폰까지 옮겨가게 되었습니다. 헤나 자판은 많이 쓰이는 자모를 중심에 배열하고 빈도수가 적은 글자는 주변으로 몰아서 스마트폰을 길이 그대로 써도 불편이 없어요. 다섯개 모음 사이에 자음인 N이 들어가서 가운데 줄을 따라 읽으니 헤나가 되었어요. N을 모음 사이에 배치한 것은, 중국에서는 en, an, ang, eng 같은 발음도 모두 모음이라 자주 쓰거든요. 알파벳을 활용하는 다른 나라 사람들까지 배려해서 만든 자판입니다. 또 영어에 자주 붙어서 나오는 문자는 옆에 배치해서 영어권 사람들한테도 쿼티 자판보다 훨씬 편리해요. 이런 걸 영어에서는 다이그래프(digraph)라고 하고 우리말로는 단짝 문자라고 하는데 wh, th, sh, re 같은 걸 말하지요. 이게 바로 옆에 붙어 있으니 쿼티 자판보다 빨라요.”

_원래 컴퓨터를 전공하셨나요?

“전혀 아닙니다. 고등학교(서울고)를 졸업하고 학비가 안 드는 육군사관학교에 들어갔어요. 적성에 맞지 않아서 3학년 때 중퇴를 하고 1963년에 서울대 사범대 교육학과에 갔어요. 당시에는 사관학교 중퇴자에게도 군대를 면제해주어서 67년에 대학졸업을 하고는 경제기획원 통계국에 주사로 들어갔어요. 사회 정교사, 영어 부교사 자격증은 있었지만 교사 적성이 아니라. 그때 통계국에는 키펀치로 움직이는 어마어마한 IBM 컴퓨터가 있었지만 별 관심은 없었어요. 68년 말에 캘리포니아 헤이워드에 있는 남가주 주립대로 통계를 전공하겠다고 유학을 떠났습니다. 당시 아내가 간호사라서 영주권이 나오길래 영주권을 따고 저는 공부를 그만 두었습니다. 샌프란시스코에 자리잡고 닥치는대로 일을 했어요. 접시닦기부터 편의점 아르바이트, 교회잡부 등등. 오클런드시티의 알라미타카운티 병원에서 경리로도 일했는데 승진할 기회가 생기자 그 자리를, 제가 일을 가르친 제 후임인 흑인한테 주는 걸 보고는 토목측량일로 옮겼습니다. 80년부터 만 65세가 되는 2006년까지 이 일을 했습니다. 막노동이지만 영어를 잘 알아들어야 하기 때문에 외국인이 잘 못하는 일입니다. 연봉도 6만달러까지 받았으니 돈도 아주 많이 버는 일이에요.”

_그럼 컴퓨터하고는 인연이 없을 듯한데 어떻게.

“퇴직하기 1년전부터 고국 생각이 나서 한글 자판을 익혔어요. 그런데 26개 자판을 익히는 게 굉장히 힘들었어요. 더 편리한 자판을 만들 수 없을까 독학을 했어요. 국립국어원에 들어가 현대국어 사용빈도도 조사하고 세벌식 타자기 원리도 보고. 이 세벌식 타자기 원리가 아주 훌륭하더군요. 받침을 따로 표시하게 되어 있어서 그것도 응용하고. 그래서 2005년부터 정보통신연구진흥원에 계속 지원과제 신청을 했어요. 그게 2007년에 선정이 되어서 6,400만원 지원을 받아 나이러 자판의 토대가 되는 ‘만능병음자판’을 만들었습니다.”

_미국 시민권자 아닌가요?

“90년에 재혼을 했는데 아내가 한국인이라서 아내를 통해 사업자 등록을 하고 신청을 했습니다. 이게 매칭펀드 시스템이라 제 돈도 공식적으로는 3분의 1쯤 들어갔고 실제로는 거의 5억 정도를 이 자판 배열에 쏟아부었습니다. 문자 배열도 계속 바뀌어서 작년 말에야 나이러와 헤나 자판이 완성됐어요.”

_밀어서 자음이 바뀌는 시스템은 아무래도 아이폰 이후인 것 같네요.

“제가 2010년 8월에 아이패드를 쓰면서 밀어쓰기를 자판에 도입한 것은 사실이지만 밀어서 쓰기 자체가 애플의 발명은 아니에요. 오래 전부터 활용되던 거예요. 삼성에서 사들인 모아키도 밀어쓰기를 활용했고요. 현재 한국에서 많이 쓰는, 같은 곳을 두 번 연타해서 다른 자음을 만드는 방식은 영어식 표준인 아스키 코드로 전환이 안되기 때문에 프로그램을 복잡하게 만들어야 합니다. 국제로밍이 필요한 것도 이 때문이고요. 그래서 연타 방식을 피하려고 하다보니까 밀어쓰기가 나왔고 밀어쓰기 자체는 아스키 코드에서 따로 인식하지 못하기 때문에 쉬프트키를 활용하는 방식으로 바꾸어서 아스키 코드를 활용하는 것도 고민중입니다.”

_이 자판은 스마트폰을 쓰는 사람은 누구나 받아 쓸 수 있습니까?

“안드로이드폰을 쓰는 사람은 유비누리에 가서 어플을 받을 수 있는데 아이폰으로는 안됩니다. 처음에는 아이폰용으로도 어플을 만들었는데 이메일용으로만 허용하고 문자용으로는 쓸 수 없게 만들어서 안드로이드폰용으로만 보급하고 있습니다. 애플은 아이폰을 통해 세계 문화를 미국 중심으로 제패하려고 합니다. 모든 게 영어 중심이고 스마트폰의 세계에서 영어와 대등하게 독립적인 문자문화권을 이루는 한글 자판을 없애지 못해 안달일 겁니다. 그래서 저는 오히려 역으로 이 상황을 활용해서 중국을 통해 헤나 자판을 널리 보급하고 나중에는 한글 자판 자체를 다른 나라 사람들이 활용해서 자기네 문자를 옮기는 방식으로 활용되게 하려고 합니다. 미국에서는 워낙 아이폰을 많이 쓰기 때문에 탈옥을 해서 나이러와 헤나 자판을 활용하는 방식도 찾고 있습니다.”

_좀더 설명을.

“가령 상하이를 중국인들이 현재는 shanghai를 쳐서 한자로 바꾸는데 ‘샹하이’라고 써서 바꾸게 하는 방식이지요. 알파벳의 v f th 발음을 한글에서 구현하기 위해 나이러 자판에 , ⌒같은 기호판을 만들었습니다. ㅂ 옆에 이런 표시가 들어가면 v가, ㅍ옆에 이 표시가 들어가면 f가 되게 말이지요. 일단 중국 시장이 워낙 크기 때문에 중국인들이 바뀌면 미국도 마음대로 못합니다. 지린성의 중국조선신식학회(정보화학회) 회장인 현룡운 동북아정음연구소장과 함께 2009년부터 중국인에게 더 편리한 영어 자판을 보급하는 방식을 의논해왔고 N을 모음 사이에 쓰는 헤나 자판도 그렇게 탄생한 것입니다. 일차적으로는 헤나 자판 보급이 우선이고 쿼티 자판보다 훨씬 편하다는 것을 중국인들이 실감하면 쓰는 것은 시간문제라고 생각해요.”

_자신 있으신가 봐요.

“제가 (서울) 성북구의 장애인 복지기관에 가서 나이러 자판을 시연했더니 즉시 장애인용 자판을 만들어달라고 하더군요. 시각장애인들에게는 깨알 같은 쿼티 자판이나 두 세 번 두드려서 다른 글자를 만드는 천지인 자판은 불편합니다. 스마트폰 이전에는 LG가 장애인용 피처폰을 만들었는데 스마트폰에서는 장애인용이 쿼티 자판만 있어서 불편해요. 나이러 자판을 활용해서 ‘애인’자판을 만들었습니다. 나이러 자판과 다른 점은 천지인처럼 모음을 한 줄로 모은 것입니다. 칸이 큼직하고 밀어쓰기로 되어 있어서 시각장애인에게 편리한데 아직 소리를 입히진 못했습니다. 이 부분은 지원을 받을 수 있으면 좋겠어요.”

_어플은 무료인가요?

“무료에요. 3월 이후에 모음에 색을 입혀서 내놓을 텐데 그때도 흑백인 현재 어플은 계속 무료로 보급할 생각입니다.”