벤처 핸즈업!

[소프트웨어가 뭐길래②] 소프트웨어가 그래서 뭔데? 본문

Podcast/책/소프트웨어/소프트웨어

[소프트웨어가 뭐길래②] 소프트웨어가 그래서 뭔데?

알 수 없는 사용자 2016. 2. 5. 03:20

안녕하세요, Denk 입니다.

 

[소프트웨어가 뭐길래] 두 번째 시간입니다요. 첫 번째 시간에는 한국의 소프트웨어 경쟁력과 소프트웨어 교육을 위한 각국의 노력에 대해 짧게 얘기해봤었죠. 오늘은 소프트웨어의 정체에 대해서 낯낯이 파헤쳐 볼게요.

  

소프트웨어의 정체

이제 본격적으로 소프트웨어의 정체를 밝히는 작업을 시작해보려구요. 도대체 얼마나 대단한 놈이길래 이렇게 전세계가 난리법석일까요.

 

제가 무엇인가에 대해 얘기할 때 항상 가장 먼저 하려고 하는 것은 용어에 대한 탐구예요.. 본격적으로 시작한다고 해놓고 왜 또 수박 겉핧기 하느냐 하실지도 모르지만 용어에 대한 이해 없이는 본질을 이해할 수 없다는게 저만의 신념이라고 할까요;; 하여튼, 그럼 왜 Software가 Software라고 불리는지부터 알아봐야 하겠죠? 

 

<배스킨라빈스 아이스크림>

 

[출처: valpak.com]

 

 


소프트웨어 얘기하다 갑자기 왠 아이스크림이냐구요? 제 얘기를 들으시면 둘 간에 의외로 높은 상관관계가 있다는 것을 알게되실 거에요. 한 번 상상해보세요. 친구들과 아이스크림을 먹으러 배스킨라빈스에 갔어요. 아이스크림이 전시된 카운터 앞에서 원하는 맛을 고르면 종업원이 뭐라고 물어보죠? 컵에 드릴까요 콘에 드릴까요 라고 물어보죠. 여기서 중요한 부분은 바로 아이스크림을 먹을 때 어떤 용기나 틀이 없으면 먹을 수 없다는 점이죠. 막대 아이스크림을 먹더라도 나무 막대에 아이스크림이 붙어있어요. 소프트웨어도 마찬가지로 하드웨어라는 틀 없이는 혼자 작동할 수 없어요. 컴퓨터라는 하드웨어가 있어야 우리는 엑셀을 실행 시킬 수 있고, 아이폰이나 갤럭시라는 하드웨어가 있어야 비로소 게임도 할 수 있고 카톡도 할 수 있지요. 인간에 비유하자면 하드웨어는 우리의 몸뚱아리(하드웨어가 좋구먼~) 이고 소프트웨어는 뇌에서 이뤄지는 작용, 즉 영혼이나 의식, 그리고 생각과 실행 같은 것이라고 보시면 돼요.

 

하드웨어 vs. 소프트웨어

하드웨어와 소프트웨어라는 용어는 이처럼 별 뜻이 없어요. 아이스크림과 콘만 상상할 수 있어도 이미 모든 뜻이 나와있으니까요. Hard/Soft + Ware 에서 Hard와 Soft의 뜻은 모든 분이 대충 아실거에요. 딱딱하다와 부드럽다라는 뜻이죠. 그럼 Ware는 무슨 뜻일까요? 그냥 물건 또는 제품이라는 뜻이에요. 너무 별 뜻이 없죠;; Warehouse라는 단어도 많이 접해보셨을 텐데 사실 제품을 많이 모아 놓은 장소라는 뜻 밖에 없어요. 그럼 Hardware Software의 뜻은 딱딱한 제품부드러운 제품이겠죠. 콘 = 하드웨어, 아이스크림 = 소프트웨어. 너무 쉽죠? 

 

그런데 여기서 한 번 더 파고들어야 진정한 의미의 소프트웨어를 알 수 있어요. 다시 한 번 배스킨라빈스에 왔다고 상상해 보자구요. 그리고 콘과 컵 중에는 콘을 선택했다고 가정해 볼게요. 콘이라는 하드웨어는 이미 틀이 완벽하게 정해져 있죠. 아이스크림을 지지해야 하는 용도도 이미 정해져있구요. 이제 하드웨어에 소프트웨어를 올릴 차례에요. 우리는 아이스크림을 1단, 2단, 3단까지 쌓을 수도 있고 그 위에 초코 시럽이라던지 스프링클을 뿌려서 먹을 수도 있어요. 여기서 초점은 바로 소프트웨어의 유연성(Flexibility) 이에요. 콘에 바닐라 아이스크림을 올렸다가 선택을 바꾸면 콘을 바꾸지 않은 채 초콜릿 아이스크림으로 변경 할 수 있죠. 이 것이 소프트웨어의 가장 중요한 성질이에요. 그리고 21세기에 더욱 더 중요하게 다뤄지는 이유이기도 하고요.

 

<인공위성>

[출처: namu.wiki]

 


현장에서 소프트웨어의 역할

이제 아이스크림 얘기에서 벗어나 소위 IT업계에서 말하는 "소프트웨어"가 실제로 어떤 역할을 하는지 얘기 해볼게요. 이번에는 우리가 NASA의 엔지니어라고 생각해볼게요. 우리는 몇 년동안 혼신의 힘을 다해 인공위성을 만들었어요. 태양열 패널도 있고 자세를 조정할 수 있는 메커니즘도 만들어 넣었고, 이 모든 걸 제어할 수 있는 컴퓨터도 상자 내부에 넣었구요. 이제 모든 준비가 됐어요. 모두의 환호 속에 로켓이 발사됐고 정상적으로 궤도에 올랐죠. 하지만 갑자기 태양열 패널 마지막 부분이 펴지지가 않네요. 어떡할까요?

 

만약 현실에서 어떤 예외상황도 발생하지 않는다면 굳이 소프트웨어는 필요 없을 거에요. 예를 들어 핸드폰에 처음부터 모든 필요한 앱이 다 들어있고 보안도 완벽한데다 오류도 없다면 우리는 소프트웨어가 필요 없을 거에요. 여기서 무슨 소리냐 엄연하게 안드로이드 운영체제가 들어있는데 왜 소프트웨어가 없느냐 라고 하실 수 있는데, 이 부분에 대해 얘기하자면 너무 길어지기 때문에 다음 화에서 다루도록 할게요. 짧게 말해 안드로이드 운영체제도 논리게이트로 구성하면 하드웨어로 만들 수 있다는 것만 얘기하고 넘어가도록 할게요. 다시 인공위성으로 넘어갈게요. 지구에 있는 우리는 인공위성에 저장한 프로그램 중 일부 코드에 오류가 있음을 발견해요. 그리고 통신을 통해 프로그램을 업데이트하게 돼요. 그 결과 마지막 날개가 다 펴지고 엄청난 투자가 이뤄졌던 인공위성 프로젝트는 성공하게 되죠.

 

 


말이 너무 길었나요? 하지만 소프트웨어를 처음 접하는 분들에게 소프트웨어의 본질을 알려드리는 것은 쉽지 않은 일이에요. 그래서 비유적으로 접근했는데 이해하는데 도움이 되었길 바래요 ㅜㅜ 질문 있으시면 남겨 주시기 바라구요. 이만 마치고 다음 화에서 찾아 뵙도록 할게요. 다음 화에서는 방금 전에 스킵했던 전자와 논리게이트에 대해서 얕게 얘기 보도록 할게요.



관련 글 



벤처 핸즈업을 구독하세요.


Comments