소프트웨어 1

기자명 김보라 기자 (togla15@skkuw.com)

"기술만으로는 충분하지 않다. 기술, 인문학, 인본주의가 합쳐져야 멋지게 된다"는 말은 융합의 대명사인 스티브 잡스가 했던 말이다. 스티브 잡스의 가장 중요한 업적도 ‘인문학과 기술의 융합’에 있다. 이처럼 산업에서 시작된 융합의 트렌드는 학문에서도 중요하게 다뤄지고 있다. 인간을 고려하지 않은 기술의 발전은 더 이상 무의미하며, 인문학 공부만으로는 미래사회가 필요로 하는 인재의 조건을 갖추기 어렵다. ‘인간을 이해하는 기계’를 요구하는 사회적 배경 하에 지난달 24일 우리 학교 정규상 총장은 비전 선포식에서 “성균관 대학교를 소프트웨어에 강한 대학으로 만들겠다”고 말했다. 2016년도부터 우리 학교에 입학하는 모든 학생은 전공과 상관없이 소프트웨어 교육을 필수적으로 받게 된다. 이에 학술면에서는 소프트웨어의 정의와 원리에 대해 살펴보고, 소프트웨어학과 학과장인 정태명 교수에게 소프트웨어 교육과 학문 간 융합에 대한 이야기를 들어봤다.

캔디 크러쉬도 소프트웨어다

소프트웨어는 하드웨어의 반대말로, 컴퓨터 프로그램을 의미한다. 이러한 사전적 정의를 따르다 보니, 소프트웨어를 ‘컴퓨터’와 같은 기계에만 국한하는 경향이 있다. 하지만 소프트웨어의 세계는 실로 다양해 Adobe와 같은 응용프로그램에서부터 자동차, 통신, 의료서비스, 영상서비스, 스마트폰 애플리케이션에 이르기까지 다양한 분야를 포함한다. 소프트웨어가 곳곳에 포진해있는 만큼, 스마트폰과 각종 기계화 서비스에 익숙해진 우리는 이미 소프트웨어와 친하다고 할 수 있다.


컴퓨팅과 이진법, 소프트웨어의 출발점

소프트웨어를 알기 위해선 ‘컴퓨팅’의 의미와 컴퓨터가 정보를 표현하는 방식을 알아야 한다. 컴퓨팅이란 인간의 문제 해결 과정을 구체화해 컴퓨터의 언어로 바꿔 표현하는 것이고, 컴퓨터는 컴퓨팅을 자동 반복 처리해 주는 기계다. 컴퓨터는 코드를 통해 정보를 나타내며 코드는 0과 1로 이루어진 이진법으로 표현된다. 컴퓨터는 정보를 이진법으로 바꾸는 ‘인코딩’ 과정과 이진법으로 표현된 정보를 다시 인간의 언어로 풀어내는 ‘디코딩’ 과정을 통해 인간과 소통한다. 따라서 인간이 가지고 있는 소프트웨어 아이디어를 실현하기 위해서는 컴퓨터의 언어인 이진법을 이용해 표현하는 것이 필요하다.

알고리즘, 컴퓨터와 인간을 연결하다

소프트웨어의 언어를 안다고 해서 소프트웨어가 어떤 방식으로 작동되는지를 알 수는 없다. 이 때 등장하는 것이 ‘알고리즘’이다. 알고리즘이란 문제를 해결하기 위해 정해진 일련의 절차다. 알고리즘은 문제 해결 절차를 일련의 수식으로 표현한다. 따라서 수식을 따라가다 보면 원하는 결과를 얻을 수 있게 된다. 알고리즘의 시작은 단순 사고만을 할 수 있는 사람이 복잡한 문제 해결을 할 수 있을 만큼 절차를 직관적이고 잘게 쪼개는 것이었다. 그 절차를 컴퓨터의 언어로 바꾸어 입력한다면 컴퓨터도 문제 해결을 할 수 있다는 생각으로 알고리즘이 개발됐다. 예를 들면, 수학 문제 풀이과정을 단순한 기계적 사고만으로도 해결할 수 있는 단위까지 잘게 쪼개서 나열하는 것이다. 앞으로 알고리즘을 만드는 것은 소프트웨어 전문가뿐만 아니라 프로그램을 구상할 수 있는 각 분야의 전문가일 것이다. 특히나 미래사회의 모든 영역은 소프트웨어와 관련되어 있으므로, 컴퓨터의 기본 언어를 알고, 알고리즘을 만들어 낼 수 있는 인재가 필요하다.