이번에 생각을 정리해 볼 기회가 있어서 쓴 내용인데
이 자료는 오픈소스에 대한 이해가 필요할 때 도움이 될꺼 같습니다.
해외에는 오픈소스제품이 많고 실제로 활발한 활동들이 일어나는데, 우리나라에서는 오픈소스가 힘을 쓰지 못하는 듯 보입니다. (많지는 않지만 열심히 하고있는 국내기업이나 프로젝트도 있습니다.)
오픈소스의 생태계 구성이 어떤지 한번 살펴보고, 국내에서 어떻게 해야할지 생각해 보았습니다.
IDC의 조사에 따르면 전 세계 공개SW 생태계는개발자 중심의 공개SW 프로젝트가 주도하는 시장구도를 형성하고 있으며,
이 생태계에 많은 기업들이 다양한 방식으로 참여하여(redhat, suse 등)
이러한 프로젝트형 개발 구도에 참여하여 자체 소프트웨어 경쟁력 향상에 주력하고 있는 반면,
국내의 공개SW 생태계는 대부분 소규모의 프로젝트와 공개SW 벤더들이 주도하는 시장구조를 가지고 있습니다.
Open Source Software Ecosystem 의 비교
우리나라가 공개SW 시장에서 자생력 있는 생태계를 형성하기 위해서는
공개SW프로젝트를 주도하는 세력(즉 공개SW 개발자 커뮤니티가 되겠죠)을 역량을 강화 할 필요가 있습니다.
그러기 위해서는 전세계 공개SW 생태계의 구심점이 되어있는 커뮤니티들에 대한 분석 후 국내의 커뮤니티에 활성화에
부족한 부분을 강화해야 할 것입니다.
민간 순수 커뮤니티들은 기업과 연계해서 취업 또는 판매, 기술이전 등의 기회를 넓히도록 힘써야 하며
공공차원에서는 단순히 관련과제를 선정해서 지원하는 기존의 활성화 지원보다는
국내의 공개SW 관련 커뮤니티에 대한 직접조사를 실시한 후,
현실적인 애로사항을 수집해서 해결해 나가는 것이 필요하다고 생각합니다.
이 글은 한글깨짐을 해결하기 위해서라기 보다는 문제를 해결하는 방식에 대한 정리를 위해서 입니다.
기술적인 내용은 링크한 내용들을 참고하시면 보다 많은 정보를 얻을 수 있습니다.
저는 업무에서 기술적인 문제해결을 위해서 "환경분석-> 계획수립-> 테스트 케이스 생성-> 테스트 및 문제해결-> 검증" 의 순서로 진행합니다.
누구나 빠른 문제해결을 원하지만 실제로는 "바로 해결하기"를 하는 경우가 많습니다.
다행스럽게도 운이 좋아서 빠른시간에 해결이 된다면 좋겠지만, 여러가지 포인트에서 문제발생의 여지가 있는 경우가 대부분 이므로, 빠른 문제해결을 위해서는 절차를 따르는 것이 좋습니다.
실제 많이 경험하시게 되는 웹페이지의 한글이 깨어지고 있는 상황을 가정하고, 문제를 추적해 보겠습니다.
1. 환경분석
장애가 일어난 시스템의 구조는 Apache, Proxy_ajp, Tomcat, MySQL로 구성되어 있습니다.
그런 경우 euc-kr 또는 UTF-8로 인해서 문제가 일어날 수 있는 WeakPoint 는 아래와 같은 곳입니다.
2. 계획수립 사소한 일이라면 그냥 머리속으로 계획을 세우면 되겠죠.
하지만 좀 시간이 걸리는 일이라면, WBS를 구성해서 제대로된 일정계획이 있는 것이 업무를 현명하게 하는 방법입니다. 이 문제는 그렇게 오래 걸리는 문제가 아닐꺼라고 판단하고, 즉시 수행하기로 했습니다.
3. 테스트케이스생성 해당 문제를 해결하기 위한 테스트에 필요한 케이스를 우선 구상합니다.
머리속으로 하셔도 되고, 메모하셔도 좋습니다. 전 그냥 머리속으로 했습니다 :-)
WEB
- 캐릭셋을 설정하지 않고 한글을 제대로 표현하는지 테스트합니다.
- 캐릭셋을 원하는 설정으로 변경하고 한글표현을 테스트합니다.
Connector
- get으로 한글을 전달해서 제대로 나오는지 확인합니다.
WAS
- 캐릭셋을 설정하지 않은 상태에서 한글이 제대로 나오는지 확인합니다.
- 캐릭셋을 변경해서 변환이 정상적으로 되는지 확인합니다.
DB - 콘솔에서 직접 한글을 조회해서 확인합니다. - collection을 확인하고 원하는 설정으로 변경해서 한글을 입력하고 조회해 봅니다.
4. 테스트 및 문제해결 생각한 테스트 케이스를 수행하면서, 문제를 해결하는 단계입니다.
기술수준이나 경험에 따라서 차이가 좀 있겠지만, 차근차근 한가지씩 해결해나가는 방법이 가장 빠른방법입니다.
WEB
이 시스템은 웹서버로 Apache를 사용하는 경우 입니다.
아파치의 경우 html문서의 상단에 아래와 같은 방식의 정의가 없다면 기본적으로 사용할 캐릭셋을 설정가능합니다. <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
httpd.conf 파일에서 AddDefaultcharset을 원하는 캐릭셋으로 변경한 후 한글의 출력상태를 확인합니다.
Connector
웹서버의 요청을 WAS로 넘겨주는 역할을 합니다.
이 부분에서 POST, GET으로 넘기는 변수를 WAS로 전달할 때 캐릭셋을 변경할 수 있기때문에 확인해야 합니다.
이 시스템의 경우 tomcat 의 server.xml 파일에서 URIEncoding을 설정해 주거나, useBodyEncodingForURI="true" 를 설정하여 캐릭셋을 설정할 수 있습니다. useBodyEncodingForURI 설정은 이전페이지에 설정된 캐릭셋을 그대로 따른다는 설정이다.
JAVA Tomcat이 구동될 때 별도의 설정이 없다면 JVM은 ISO-8859-1로 동작합니다.
따라서 한글의 사용을 위해서 tomcat 구동을 시키는 계정의 .bash_profile을 수정해서CATALINA_OPTIONS=-Dfile.encoding=euc-kr 을 추가해서 동작하도록 설정해야 합니다.
캐릭셋이 지정되어 있지 않은 경우의 기본 캐릭셋 설정은 web.xml파일에 아래처럼
기본적으로 사용할 캐릭셋을 지정할 수 있습니다.
성공적으로 문제를 해결하는데 있어 사고의 다양성은 대단히 중요하다. 따라서 사람의 사고 선호도와 창의성 스타일에서의 다양성을 측정할 수 있다면 이는 매우 유용할 것이다.
사람마다의 사고 선호도와 창의성 스타일을 진단할 수 있는 대표적인 프로그램으로 HBDI와 KAI가 있다. 이들 방법은 전략적
계획 수립, 팀 구성, 프로그램 제작, 상담, 교수 및 학습 능력의 개선 등 많은 실용적인 분야에 다양하게 적용되어 그 효과를
나타내고 있다. 가령, 새롭고 독창적인 아이디어 개발을 위해 한시적인 팀을 구성하고자 하는데, 그 구성원이 창의적이기 보다는
기존의 체계에 안주하려는 성향이 강한 사람들로만 구성된다면 그 결과는 새롭고 독창적일 수 없다. 즉, 팀 구성원 전체가 창의적인
사람, 분석적이고 논리적인 사람, 감정이 풍부한 사람, 절차나 계획에 능한 사람을 골고루 갖춰서 팀 전체로 보았을 때 전체 두뇌
사고가 가능해야 그 결과도 기대할만하다.
좌우뇌 선호도 평가
1. 좌우뇌 사고 선호도 평가 방법: HBDI 1) HBDI의 목적
HBDI(Herrmann Brain Dominance Instrument)는 인간의 사고 선호도를 측정하는 가장 강력하고
유연한 도구이다. HBDI를 사용하여 사람들의 사고 선호도를 측정하고 효과적으로 사고하도록 하는데 HBDI 정보를 이용할 수
있다. Ned Herrmann에 의해 만들어진 HBDI는 두뇌가 4개의 영역으로 구성되고 각각이 다른 사고 선호도를 보인다는
사실에 기초한다. 4개의 영역이 합쳐져 인간 사고와 행동을 지배하는 전체 두뇌를 구성한다.
그림에서 A 영역은 수리에 뛰어나고 이성과 논리에 의해 문제를 해결하고자 하는 반면 D 영역은 규범에서 벗어나고 새로운
아이디어를 만들거나 감정과 추측을 기초로 문제해결을 시도한다. B 영역에서는 구조화 되고 순차적이며, 조직화 된 정신 활동이
이루어지고, D 영역에서는 감정적이고 인간 상호간의 정신 활동이 주로 이루어진다. A, B, C와 D 영역이 서로 다른 네 가지
사고 모드를 구성하며, 대개의 경우 네 가지 모드가 결합해서 작용하지만 하나 또는 두개의 사고 모드가 우세하게 작용한다.
2) HBDI의 측정
HBDI는 개인적인 사고 선호도 식별과 그 행동의 예측을 돕기 위한 설문지로 100개의 질문으로 구성된다. 설문지 파일을
다운 받아 오프 라인으로 작성하거나 유로 사이트에서 온라인으로 작성하여 자신의 HBDI를 측정해 볼 수 있다. 설문지 내용을 보고
각 항목 마다 답을 해가면 자신의 사고 스타일이 우뇌 사고(창의적 사고)에 가까운지 좌뇌 사고(논리적 사고)에 가까운지 느낄 수
있다.
전체 두뇌 사고는 문제해결과 어려운 도전에 직면할 때 특히 중요하다. 병원에서 의사는 A 영역에서, 간호사는 C 영역에서,
병원 운영진은 B 영역에서, 정신과 의사는 D 영역에서 높은 점수를 받으며 일반적으로 자신들의 집단별로 독특한 특성을 보이지만
긴급한 상황에서는 이들 각각의 사고 선호도가 전체 두뇌를 갖는 팀으로써 효과적으로 동작한다. 문제해결, 전략적 사업 계획 수립 및
인간 상호 관계 형성을 포함해서 HBDI의 실용적인 적용 사례는 많다.
문제해결의 경우를 살펴보자. 다른 사고 모드에서 문제를 관찰함으로써 새로운 문제해결 관점이 얻어질 수 있다. 프로젝트나
문제해결을 위한 팀 구성원이 어떤 두뇌 선호 프로파일을 갖고 있느냐에 따라 그 결과는 달라질 수 있다. 팀 구성원이 A, B,
C와 D 사고 선호도를 골고루 가지고 있어서 팀 전체가 전체 두뇌 사고를 할 수 있는 것은 매우 중요하다. 창의적인 문제해결에서는
D 사고를, 실행 절차나 계획을 수립하는 데는 B 사고를, 현재 환경에 적응 가능한 문제해결은 A 사고를, 팀 구성원간의
의사소통을 개선하는 문제는 C 사고를 선호할 것이다.
그러나 하나의 새로운 아이디어가 실현 가능하기 위해서는 전체 두뇌 사고에 의해 지원되어야 한다. 가령, 새로운 아이디어의
도출은 D 사고를, 도출된 아이디어를 보다 실용적으로 만드는 데는 A 사고를, 아이디어를 구현하기 위한 실천 계획을 세우는 데는 B
사고를, 고객 입장에서 아이디어의 평가나 팀 구성원간의 의사 조정은 C 사고를 선호하는 사람들이 기여할 수 있을 것이다.
2. 좌우뇌 사고 선호도 측정 방법: KAI
1) KAI의 목적
KAI(Kirton Adaption-Innovation Inventory)는 Michael Kirton에 의해 만들어진 것으로, 사람의 창의성과 문제해결 스타일을 측정하는 도구이다. 이 이론은 다음과 같은 가정을 전제로 한다.
첫째, 모든 사람은 창의적이며 새로운 아이디어를 만들고 문제를 해결한다.
둘째, 두뇌 활동에 관한한 창의성과 문제해결은 구별이 불가능해 보이며, 그 차이가 있다 해도 언어적 차이 이상은 아니다.
셋째, 모든 사람은 변화를 주관한다.
넷째, 적응-혁신 이론은 스타일과 레벨을 명확히 구분한다. 이 둘은 서로 상관이 없으며 모든 사람이 '내가 어떻게 창조할 수 있을까?' 또는 '내가 얼마나 창의적일까?'에 대해서 평가될 수 있다.
다섯째, 레벨은 기술, 지능과 경쟁력과 관련 있으며, 이들 대부분은 학습에 의해 개선될 수 있다.
여섯째, 스타일은 일생을 통해 변하지 안는다. 대처(coping) 행동을 통해 개인이 선호하는
스타일에서 벗어나 행동할 수 있다. 스타일 적응성에서 혁신성에 이르는 연속적인 스타일에서 어떤 사람은 적응성이 높고 다른 이는
혁신성이 높게 문제해결을 시도한다.
적응성이 큰 사람: 기존의 시스템을 개선하는 것을 선호. 기존의 패러다임내에서 문제해결. 구조화 된 접근을 선호. 정확하고 신뢰성이 높으며 새로움 속에서 질서와 안정성을 추구.
혁신성이 큰 사람: 기존의 시스템을 변경하기를 선호. 기존의 패러다임과는 상관없이 문제해결. 구조화 되지 않은 접근을 선호. 독특하고 공상적임. 팔기 어려운 해결책 제시.
스타일: 성공한 조직은 다양한 범위의 적응성 및 혁신성을 갖는 사람들을 갖는다. 이 둘의
스타일이 새로움을 만들어 낼 수 있다. 기존 시스템에서 후자는 현재의 정책, 습관, 패러다임에 구애 받지 않고 새로움을 추구한다.
자신이 적응성과 혁신성의 범주 어디에 위치하건 새로운 제품을 만들어낼 수 있다. 전자는 기존 모델을 개량하고자 할 것이고 후자는
급격하게 변화를 시도할 것이다. 그러나 이 둘이 서로를 필요로 한다. 혁신적인 것은 보다 실용적이기 위해 적응성이 큰 사람의
도움이 필요할 것이다. 대부분의 사람들이 혁신성과 적응성 양 극단에 위치하지는 않지만 이 둘 가운데 하나의 사고를 선호한다.
인간의 창의적 사고 스타일은 안정적이며 자신의 인격과 관련이 있지만 행동에는 유연성이 있다. 스타일의 변경이 필요한 특정한
상황에서 스타일을 변경할 능력을 대처(coping) 능력이란 부른다. 대처 능력이 뛰어난 사람들이 있다.
2) KAI 측정
KAI는 적응성과 혁신성을 점수로써 구분해주는 도구이다. KAI가 효과적인 점수 범위는 100점을
약간 상회한다. 서로 잘 알고 있는 사람은 서로간에 약 10점 정도의 차이를 보인다. 즉, 비교 대상인 사람이 나 보다 약간 더
혁신적이거나 적응성이 크다. 20점 차이는 다툼과 불편을 초래할 수 있는 정도이고 그 보다 더 큰 차이는 심각한 의사소통 문제를
야기할 수 있다. 사람 간에 중간 점수를 받는 사람은 약 쪽을 중재 할 수 있다. 공식적인 KAI 측정을 위한 사이트가 있으며
인증은 유료이다.
3) KAI의 적용
전략적인 팀 구성, 위원회 구성, 인사 채용, 문제해결, 고객과의 관계 개선 등 다양한 분야에
적용되고 있다. 조직 구성원의 스타일은 대개 조직이 수행하고 있는 업무의 성격에 부합한다. 가령, 혁신적인 벤처 기업인 경우 직원
가운데 혁신성이 큰 사람이 많을 것이다. 그러나 사고의 다양성이 가치가 있음을 인정한다면, 비록 사업 성격에 따라 적합한
스타일의 사람이 더 많겠지만, 다양한 스타일의 사람으로 조직을 구성하는 것이 좋을 것이다.