본문 바로가기

Software for Life

소프트웨어란 무었인가?

항상 고민했던 부분이 소프트웨어(Software)란 무었인가?라는 물음이었습니다. 정말 어려운 이 문제에 관심을 가지는 이유는 제가 소프트웨어를 좋아하고 좋은 소프트웨어를 만들어 내고 싶기 때문입니다.

출처: http://www.gnu.org/philosophy/compromise.html


즉 소프트웨어에 대한 제 자신만의 생각을 명확하게 가지고 있어야, 삶을 위한 소프트웨어에 대한 구체적인 생각을 정리할 수 있다고 생각하고 있기 때문입니다.

따라서 저는 항상 소프트웨어란 무었인가?(What is the software?)란 질문을 스스로에게 던지곤 하였습니다.

많은 문헌들과 인터넷에서도 수 많은 소프트웨어의 정의가 있습니다. 하지만 대부분 소프트웨어의 분류를 정하고 각 분류별로 소프트웨어의 특징을 설명하여 정의하거나, 아니면 소프트웨어 개발 방법론 차원에서 소프트웨어를 바라보고 있습니다.

물론 이러한 정의 역시 틀린 것은 아닙니다.

하지만 소프트웨어는 그렇게 쉽게 정의할 수 있는 것이 아니란느 생각이 많이 듭니다.


여러분들은 소프트웨어가 무었이라고 생각하시나요 :-)


한때는 소프트웨어를 생명체과 같다고 생각하기도 하였습니다. 마치 살아있는 동물과 같은 생명체 말이죠 ;-)
현재 저와 여러분들은 모두 소프트웨어를 통하여 제가 쓴 글을 보고 계십니다. 마치 생명체가 다른 생명체에게 이야기를 하듯이요~

제가 쓴 글은 웹 어플리케이션 서버(WAS)라는 생명체에게 전달되고 이 글은 다시 DBMS라는 생명체에 전달됩니다. 그리고 DBMS는 제 글을 잘 보관하고 있다가 웹 브라우져란 생명체가 네트워크란 신경망을 통하여 WAS에 제 글을 요청하고 WAS는 다시 DBMS에 요청하여 HTML이란 넘을 재빠르게 만들어서 맛있는 쿠키(Cookie)까지 넣어서 보내주면, 웹 브라우져는 다시 OS를 통하여 여러분들이 보고 있는 모니터를 통하여 빛으로 출력시킵니다.

마치 하나의 에코 시스템(Eco System)과 같은 이러한 일련의 과정은 마치 생명체가 서로 유기적으로 얽혀있으면서 살아가는 과정과 매우 비슷하다는 생각을 하곤 하였습니다.

하지만 생명체는 원래 스스로 존재하여야 하는데, 소프트웨어는 스스로 존재하지 못하며, 스스로 진화하지 못하는 문제점이 있습니다. 이에따라 소프트웨어는 생명체와 비슷하지만 생명체는 아니다라는 결론에 도달하였습니다.

그럼에도 불구하고 소프트웨어는 진화하고 있으며, 매일 매일 인간이 산소를 먹고 이산화탄소를 배출하듯이, 소프트웨어도 전기를 먹으면서 전기를 통하여 소통하고 전기를 소모하여 인간하고 비슷하게 이산화탄소를 배출하고 있습니다.

그리고 우리가 사용하는 소프트웨어는 매일 매일 진화하고 있습니다. 이러한 진화를 소프트웨어가 스스로 만들어내지는 않지만, 인간의 도움을 받아 이제 소프트웨어와 소프트웨어간의 자유롭게 통신하여 서로 필요로하는 정보를 주고 받고 있습니다.

따라서 어느 정도 진화하고 있다고 볼 수 있습니다. 다만 진화를 스스로 하지 못하는 것은 현실입니다. 하지만 누가 아나요~


I, Robot의 VIKI (Virtual Interactive Kinetic Intelligence)Matrix의 Oracle과 같이 스스로 생각하는 소프트웨어가 나올지 모릅니다. :-)



여튼 아직도 소프트웨어를 생명체로 보기엔 무리가 많이 따릅니다.

그럼 소프트웨어를 무었이라고 봐야 할까요?
어림 짐작하기에도 소프트웨어는 펌웨어(Firmware)부터 미들웨어(Middleware) 및 시스템 소프트웨어(System Software) 및 게임, 그리고 사무용 소프트웨어 등등... 정말 많은 분류를 가지고 있습니다.

최근에는 iPhone의 돌풍으로 인하여 핸드폰에 탑재되는 수 많은 소프트웨어들이 각광을 받고 있습니다.
정말 iPhone 위에서 실행되는 소프트웨어는 무궁무진한데 그 중에는 오카리나를 불 수 있는 소프트웨어까지 있습니다. 제가 iPhone을 사고 싶은 가장 큰 이유가 바로 이 오카리나 소프트웨어 때문이었죠 :-)


이렇게 다양하고 많은 분야에서 활용되는 소프트웨어를 정의한다는 것은 정말 어려운 일 가운데 하나라고 생각합니다.


하지만 최근 저는 소프트웨어는 서비스이다.(Software is a Service.)라고 정의해가고 있습니다.
마치 SaaS(Software as a Service)의 짝퉁같은 이 정의는 SaaS를 접하기 이전부터 약간씩 가지고 있던 생각이지만, 사실 SaaS라는 패러다임을 접하면서 더욱 강하게 구체화해 나가고 있습니다.

생각해보면 서비스는 사람을 위하여 존재합니다.

거의 모든 서비스는 사람과 직접 관계되어 있거나 궁극적으로 사람을 위하여 존재하는 경우가 대부분입니다. 식당에서 식사를 하기 위해 웨이터에게 서비스를 받는 것은 결국 사람을 위한 서비스이며, 마찬가지로 제 글을 웹 브라우져란 넘이 여러분에게 보여주는 것 또한 웹 서핑이란 서비스를 웹 브라우져란 친절한 웨이터의 서비스입니다.

우리가 가장 많이 사용하는 웹 어플리케이션들은 대부분 어플리케이션이라고 생각이 들지 않습니다. 언제 포털 사이트나 검색 사이트를 이용하기 위하여 뭔가를 여러분의 컴퓨터에 설치한 적이 있으신가요? 아 웹 브라우져를 설치하셨군요 :-) 하지만, 꼭 어느 특정 포털 사이트나 검색 사이트를 이용하기 위해서 설치하신 것은 아니죠.

즉, 웹 어플리케이션이란 소프트웨어가 어려분에게 수 없이 많은 정보와 기능을 제공하고 있음에도 불구하고 여러분들은 웹 어플리케이션을 소프트웨어로 바라보지 않고 포털의 서비스, 검색 사이트의 서비스로 인식하고 있다는 것입니다.

마찬가지로 최근 패키지형 소프트웨어 역시 이와 유사한 행보를 보이고 있습니다. 즉 자동 업데이트 기능인데요, 언제 내가 요청하지도 않았음에도 불구하고 자동으로 업데이트를 하여 더욱 좋은 기능을 사용할 수 있도록 지원하거나 결함이 있는 기능을 수정해줍니다.


즉, 서비스가 강화된 것입니다. 소프트웨어에 서비스가 강화되다니!!이게 무슨 말이랍니까?


개발자 입장에서 소프트웨어의 개발은 정말 서비스 정신을 가지고 할 수 없는 작업중에 하나입니다. ^^;;
"내가 무슨 커피숍의 바리스타도 아니고 어떻게 서비스 정신을 가지고 소프트웨어를 만들어 냅니까?" 라고 이야기하실 수도 있지만, 소프트웨어를 사용하는 여러분 자신도 더 좋은 서비스를 제공하는 소프트웨어를 선호할 것입니다.

왜냐하면 더 좋은 서비스를 제공하는 소프트웨어가 당근 더 좋기 때문입니다.

개인적으로 웹 브라우져를 거의 무조건 화이어 폭스를 사용합니다. 우선 인터넷 익스플로러가 느리기도 하지만 질 좋은 무료 플러그인들 덕에 웹 서핑을 정말 편하게 하고 있기 때문입니다. 이 플러그인들이 없다면 제 웹 서핑은 정말 최악일 것입니다.

이런 제가 화이어 폭스를 선택한 것은 당근 화이어 폭스가 인터넷 익스플로러보다 서비스가 좋기 때문입니다.

아울러 서비스는 진화합니다. 누구를 위해서 진화합니까? 바로 여러분들을 위해서 서비스는 진화합니다.
마찬가지로 소프트웨어도 진화합니다. 바로 여러분들을 위해서 진화하는데, 사실 여러분들에게 더 좋은 기능, 즉 더 좋은 서비스를 제공하기 위해서 진화합니다.

소프트웨어 진화의 이유가 분명해졌습니다. 바로 여러분들에게 더 좋은 서비스를 제공하기 위해서 소프트웨어는 진화한다는 것이 제 생각입니다.
아울러 서비스는 결국 사람이 사람을 위해서 제공하는 것입니다.

따라서 생명체로는 풀리지 않았던 진화를 시켜주는 주체가 바로 우리 자신이며, 우리가 우리들에게 더 좋은 서비스를 제공할 수 있는 소프트웨어를 만드는 과정이 바로 소프트웨어의 진화이다. 라고 정의할 수 있습니다.

이러한 소프트웨어의 진화는 우리가 소프트웨어로부터 제공받는 서비스의 질이 만족스러울때까지 진화할 것입니다. 즉, 소프트웨어의 진화와 발전은 결국 사람을 향한다는 것입니다.

사람을 향한 질 높은 서비스를 제공할 수 있는 소프트웨어를 만드는 과정이 소프트웨어의 진화 과정이라고 볼 수 있습니다.
현재 iPhone의 돌풍으로 모바일 어플리케이션 분야에서 이러한 소프트웨어의 진화가 급격하게 진행되고 있습니다.



이에따라 오랜 저의 숙제였던 그럼 삶을 위한 소프트웨어는 무었인가? 라는 제 자신의 질문에 이제 답 할 수 있습니다.

사람들의 삶의 질을 높일 수 있는 서비스를 제공하는 소프트웨어가 바로 삶을 위한 소프트웨어라고 정의하였습니다.

이 문제로 지난 몇년간 고민해 왔었습니다만, 이제 이러한 정의를 바탕으로 더욱 삶을 위한 소프트웨어를 가열차게 만들어 가겠습니다. ^^~
감사합니다~