Skip to main content

진짜 문제는 무엇인가?

컴퓨터 프로그램은 사람이 풀고자 하는 문제를 해결하는 도구이다. 이메일(E-mail)은 정보 교환 및 커뮤니케이션의 문제를 해결 했으며 페이스북(Facebook)은 사람과의 관계에 대한 문제를 해결했다. 구글(Google)은 사람들이 정보를 신속하게 찾기 원하는 문제를 해결했기 때문에 현재 많은 사람들에 의해 사용하고 있다. 이처럼 문제를 해결하는 도구인 소프트웨어를 설계하는 프로그래머들은 문제의 핵심을 파악하고 효과적으로 해결할 수 있어야 한다. 하지만 문제의 핵심을 파악하기란 결코 쉬운 일이 아니며 제대로 해결하기란 더 어려운 일이다.

문제를 해결하기 위해서는 먼저 무엇이 문제 인지를 파악해야 한다[1]. 예를 들어 어느 날 당신의 상사가 모든 인터넷 데이터를 공인인증서[2]로 서명해야만 사용할 수 있도록 변경하라고 지시할지도 모른다. 샵메일(#mail)[3]등을 의무화하는 지금의 우리나라 현실처럼 말이다. 하지만 실제 문제는 안전한 통신을 하기 위함인지 다른 의도가 있는 것인지는 이 지시만을 통해서 알기 어렵다. 우리는 어떤 상황이 닥쳤을 때 진짜 문제가 무엇인지 파악하고자 노력해야 한다. 그리고 그 문제가 누구의 문제인지 문제의 핵심은 무엇인지 또한 파악해야 한다. 문제란 바라는 것과 인식의 차이에서 온다는 말이 있다. 허상의 문제가 진짜 문제일 수도 있는 것이다. 우리는 진짜 문제를 알기 위해서 계속 노력해야 한다.

상사가 제시한 공인인증 시스템을 모두 적용한다고 해서 그 문제는 해결되지 않을 수도 있다. 우리는 이 문제가 보안과 관련된 문제라고 인식하고 외국에서는 지금까지 공인인증서 없이 안전하게 인터넷 뱅킹 등을 사용하고 있다는 사례와 공인인증서를 의무화 한다면 다양한 운영체제에서 사용할 수 없다는 등 때문에 SSL(Secure Socket Layer)[4]만 적용하고 추가로 비교적 간단한 시스템 변경만 해도 충분히 안전하다고 설득하려 할지도 모른다. 하지만 어쩌면 이렇게 간단하게 문제를 해결할 수 있다면 상사는 문제가 해결됐다고 믿지 못할 수도 있다. 거짓말 같지만 정말로 그런 상사가 있다. 어떤 경우에 여러분은 일부러 어려운 일을 한 것처럼 오랜 시간을 끌어 작업을 완료하는 것이 오히려 도움이 된다. 하지만 아직 문제는 해결되지 않았다. 처음 SSL을 적용해야 한다는 느낌을 무시해서는 안 되지만 진짜 문제가 무엇인지 찾으려는 노력은 계속 필요하다.

계속된 설득과 토론 끝에 여러분은 상사 자신이 실제로 우려하는 부분은 보안의 기술적 문제보다는 보안 취약으로 자신의 이메일 등의 내용이 변조되어 본인이 피해 입기를 두려워하고 있기 때문이라는 사실을 발견할 수 있었을지도 모른다. 하지만 문제 해결의 어려운 점은 지금 이것이 여러분 본인의 문제로 생각하기보다는 제삼자의 문제로 생각하고 있다는 것이다. 이런 식으로는 문제를 제대로 해결하기 어렵다. 여러분은 이 문제가 본인의 문제이며 가까운 가족이 피해를 볼 수 있는 문제라고 생각하며 접근해야 문제의 본질에 집중된 해답을 얻을 수 있다. 즉, 당사자가 문제를 직접 느낄 수 있어야 하며, 변화를 위해서는 당사자 본인에게 책임을 지울 수 있어야 한다.

공부를 잘하는 학생들과 못하는 학생들의 차이점은 공부를 잘하는 학생들은 선생님의 의도를 더 잘 파악하고 있다는 것이다. 따라서 시험도 잘 보게 되는 것이다. 문제를 해결하는 것도 마찬가지이다. 나는 예전에 '의도를 파악하라'[5] 라는 글을 쓴 적이 있다. 이 글에서도 언급했지만, 문제의 근원은 대부분 숨겨져 있기 마련이고 잘 드러나지 않는다. 문제를 접한 여러분은 문제가 어디서 부터 비롯된 것인지 근원을 제대로 파악해야 한다.

다시 공인인증서 얘기로 넘어가서 여러분이 공인인증서를 사용하지 않아도 되는 확실한 해결 방법을 상사에게 제시한다고 할지라도 상사는 무조건 공인인증서를 적용하는 시스템으로 변경을 원할지도 모른다. 마치 문제를 해결하는 것은 관심도 없는 것처럼 말이다. 확실하지는 않지만 어쩌면 공인인증서 관련 협력 업체에게서 이미 커미션(Commission)을 챙겼는지도 모른다. 이처럼 문제를 정말로 풀고 싶지 않은 경우도 있다. 실제로 많은 경우가 그렇다.

문제를 파악하고 해결하기 위해서 여러분이 적극적으로 노력했음에도 불구하고 문제를 풀 수 없는 경우도 많은 것이라 예상한다. 또한, 어떤 경우에는 문제를 풀기 위해서 비도덕적인 일을 해야 할지도 모르고 정직하지 못한 방법을 사용할지도 모른다. 성경에 "그러므로 무엇이든지 남에게 대접을 받고자 하는 대로 너희도 남을 대접하라 이것이 율법이요 선지자니라"(마태복음 7:12)라는 구절이 있듯이 여러분이 앞으로 살아가면서 도덕적이고 정직한 대우를 받기를 원한다면 스스로부터 도덕적이고 정직해야 한다. 한번 정직하지 못한 이후에는 마치 물고기는 물을 보지 못하는 것처럼 자신이 지금 어떤 식으로 행동하고 있는지 알지 못할 수도 있다. 마지막으로 다시 한번 말한다. 자신에게 정직하라.


References

[1] (2013). 대체 뭐가 문제야? (신판) | 도서출판 인사이트. Retrieved September 22, 2013, from http://www.insightbook.co.kr/books/individual/%EB%8C%80%EC%B2%B4-%EB%AD%90%EA%B0%80-%EB%AC%B8%EC%A0%9C%EC%95%BC-%EC%8B%A0%ED%8C%90.
[2] (2007). 공인인증서 - 위키백과, 우리 모두의 백과사전. Retrieved September 22, 2013, from http://ko.wikipedia.org/wiki/%EA%B3%B5%EC%9D%B8%EC%9D%B8%EC%A6%9D%EC%84%9C.
[3] (2012). 샵메일 - 위키백과, 우리 모두의 백과사전. Retrieved September 22, 2013, from http://ko.wikipedia.org/wiki/%EC%83%B5%EB%A9%94%EC%9D%BC.
[4] Margaret Rouse (2011). What is Secure Sockets Layer (SSL)? - Definition from WhatIs.com. Retrieved September 22, 2013, from http://searchsecurity.techtarget.com/definition/Secure-Sockets-Layer-SSL.
[5] (2011). 라떼군 이야기 (Mr.Latte Story): 의도를 파악하라. Retrieved September 22, 2013, from http://www.mrlatte.net/2009/09/blog-post_4323.html.

Popular posts from this blog

클라우드 컴퓨팅(Cloud Computing) 기술 정리

1. 클라우드 컴퓨팅(Cloud Computing)이란?

클라우드 컴퓨팅에 대해서는 현재 매우 다양한 정의가 존재한다. 이 중 몇 가지를 정리하면 다음과 같다. 첫 번째 정으로 클라우드 컴퓨팅은 다양한 클라이언트 디바이스에서 필요할 때 언제든지 인터넷을 이용한 공유 풀에 있는 서버, 스토리지, 어플리케이션, 서비스 등과 같은 IT 리소스에 쉽게 접근할 수 있게하는 모델이다.

또 다른 정의로는 서로 다른 물리적 위치에 존재하는 컴퓨터들의 리소스를 가상화 기술로 통합해 제공하는 기술이라고도 생각할 수 있다. 개인적으로 클라우드 컴퓨팅의 개념을 이해는데 세일즈포스닷컴(www.salesforce.com)[1]이 만든 이 동영상[2]이 전반적인 이해를 돕는데 매우 유용하다. 아래 그림은 여러 대표적인 클라우드 서비스들의 사용 예를 보여주고 있다.



1.1. 클라우드 컴퓨팅의 장점[4]

사용자가 자신의 필요에 따라 무한정의 컴퓨팅 자원을 사용할 수 있다는 환상(Illusion)을 제공한다. 그러므로 사용자는 하드웨어와 소프트웨어 시스템을 제공하는 계획을 미리 세울 필요가 없다. 사용자는 작은 시스템으로부터 시작할 수 있고 시스템 자원에 대한 요구가 증가함에 따라 시스템 자원을 증가시키면 된다. 필요에 따라 짧은 시간을 단위로 (예를 들어 프로세서를 시간 당 또는 스토리지를 날짜 당) 사용하고 비용을 지불하면 되고 필요가 사라지면 자원을 더 사용하지 않을 수 있다.

1.2. 기존 클라우드 컴퓨팅 사례1.2.1. 아마존
EC2(컴퓨팅 서비스)Auto Scaling(자동으로 서버 생성 가능)Elastic Load Balancing(소프트웨어 로드벨런싱 기능)CloudWatch(모니터링 정보 제공)Amazon Elastic Block Store(EBS, 빠르고 안정적인 스토리지)Amazon Simple Storage Service(Amazon S3, 스토리지 서비스)SimpleDB(데이터베이스 서비스)
1.2.2. 구글
GFS(구글파일시스템, 대용량 파일 처리 가능 시스템)MapR…

규칙기반 전문가 시스템 (Rule-based expert system)

컴퓨터로 어떤 일을 시킬 때 보통은 명확한 규칙에 따라서 처리하게 된다. 그 이유는 아직 컴퓨터는 인공지능을 갖지 못하였다. 인간처럼 여러 가지 지식과 현상을 조합해 사고하지 못한다는 말이다. 그 때문에 사람이 컴퓨터의 능력을 이용해 어떤 일을 처리할 때는 일련의 규칙이 필요했다. 예를 들면 IF … Then … Else로 표현되는 규칙을 적용하는 것이다.

하지만, 실생활의 문제들은 이것들도 표현할 수 없는 것들이 너무 많다. 인간이 생각하는 거의 모든 것들이 이런 모호함의 집합이다. “오늘 날씨 너무 덥다. 시원하게 에러컨좀 틀어!”라고 했을 때 “너무 덥다.”, “시원하게” 등의 말들은 컴퓨터가 처리할 수 없는 것들이다. 몇 도로 온도를 유지했을 때 시원하다고 느끼는지 컴퓨터 자체만으로는 알 수가 없다. 컴퓨터는 정확히 수치화된 데이터만 가지고 처리하는 기계이기 때문이다. 이런 문제들을 처리하는 여러 방법의 하나인 규칙기반 전문가 시스템(Rule-based expert system)에 대해 얘기해 보겠다.

이처럼 컴퓨터가 처리해야 하는 문제들은 어떤 분야의 전문가가 처리하던 것을 컴퓨터가 대신하는데 의미가 있다. 나는 이것을 전문가의 지식을 처리한다고 정리한다. 그리고 전문가라고 불리는 사람들은 어떤 지식에 대해 규칙을 만들 수 있는 사람이고 규칙이란 앞서 얘기했던 대로 IF … Then … Else 형태로 표현할 수 있는 것을 말한다.

규칙기반 전문가 시스템은 관련주제에 지식이 풍부하고 관련 문제를 푸는데 능숙한 주제 전문가(domain expert), 전문가 시스템을 테스트하고 규칙을 추론할 수 있는 지식공학자(knowledge expert), 전문가 시스템의 개발 리더인 프로젝트 관리자(project manager), 프로그래머(programmer) 그리고 최종사용자(end-user)로 구성되어 있다.

또한, 규칙기반 전문가는 기반지식(knowledge base), 데이터베이스(Database), 추론 엔진(Interface engine), 해설설비…

인터넷이 우리 사회에 미치는 영향

믿기 어렵겠지만 몇 년 전만 해도 간단한 정보를 검색하기 위해선 백과사전이 필요했고 적은 분량의 백과사전에서 찾을 수 없을 땐 도서관에 가야 했고 또 작은 도서관에서 찾을 수 없을 땐 좀더 큰 도서관으로 가야 했었다. 과연 지금의 중학교, 고등학교 학생들은 과연 몇 명이나 이래야만 했던 사정을 이해해줄지 모르겠다.

하지만 이제는 사정이 달라졌다. 인터넷의 등장으로 예전처럼 정보검색에 수많은 시간과 노력을 쏟지 않아도 더 쉽게 더 좋은 자료를 검색할 수 있고 그를 여러 가지 형태의 미디어로 접할 수 있는 시대가 되었다. 예전에 ‘팀 버너스 리(Tim Berners-Lee)’ 가 처음으로 구체적으로 주장했던 하이퍼미디어(Hypermedia)와 그로 이루어진 인터넷으로 인해 우리 생활은 많이 변화했고 또 이제는 없어서는 안될 것으로 멀티미디어 환경으로 진화해 왔다는 사실은 아무도 부인하지 못할 것이다.

사실 인터넷의 등장만으로도 우리에겐 막대한 영향을 끼쳤다. 하지만 여기서 인터넷의 멀티미디어로서의 역할을 배제한다면 그 영향력을 전부 얘기하지는 못할 것이다. 멀티미디어로서의 인터넷은 위에서 얘기한 것처럼 빠른 정보검색은 물론이고 보다 효율적인 방법으로 정보전달의 기능을 가지고 있다.

대학교 1학년 때 처음 컴퓨터를 공부할 때 일이다. 네트웍에 대해 공부하고 있었는데 마침 네트웍을 설명하고 있는 동영상을 인터넷에서 발견했다. ‘The dawn of the Net’ 이라는 동영상 이였는데 네트웍 패킷이나 라우터, 라우터 스위치 등등 전체적인 네트웍에 대해서 알기 쉽게 설명한 동영상이었다. 이 동영상은 너무 쉽고 직관적이어서 누구라도 이것을 본 사람이라면 네트웍에 대해 모두 안 것 같은 착각을 하게 만들 정도였다. 하지만 대략적인 네트웍에 대해서 안다고 해서 전문가가 되었다고 말할 수는 없을 것이다. 간단해 보이는 현상 뒤에 숨겨져 있는 지식들을 모두 이해하고 설명할 수 있을 때 비로소 전문가라 부를 수 있을 것이다.

이런 멀티미디어적인 환경은 대부분에 사람들에게 보다…