d라이브러리









어디서든 즐겨라! 디지털 TV의 밑그림을 그리는 수학

소프트웨어 아키텍트 김덕호 박사

어디서든 즐겨라! 디지털 TV의 밑그림을 그리는 수학


저녁 9시. 분주히 집으로 향하는 사람들. 알고 보니 인기 드라마 '선덕여왕'을 놓치지 않으려는 발걸음이었다. 그 사람드 사이에서 여유롭게 휴대폰을 꺼내는 준호. 버튼 하나 누르더니  회심의 미소를 짓는다. 그 순간 집에선 텔레비전 전원에 불이 들어와 자동으로 '선덕여왕'을 녹화한다.


“상상하면 이뤄진다는 게 정말인가 봅니다. 아직 집 밖에서 휴대폰으로 텔레비전을 조종할 수 없지만 집 안에서는 충분히 가능하니까요.”

삼성전자에서 만난 소프트웨어 아키텍트 김덕호 박사는 시장에 나온 영상디스플레이, 생활가전, 컴퓨터 등의 전자제품을 보면 가슴이 뭉클하다. 정성스레 키운 딸을 시집보내는 마음이 이런 걸까.

‘멀티 플레이어’를 꿈꾸는 텔레비전. 정보검색, 동영상 재생, 게임, 그리고 인터넷에서 유행하는 UCC도 볼 수 있는 만능 텔레비전을 만들고자 김 박사는 프로그램을 제작해 왔다. 요즘은 텔레비전의 저장매체에 방송 신호를 그대로 저장하고 사용자가 원하는 시간에 다시 꺼내 볼 수 있는 프로그램 설계를 맡고 있다. 예를 들어, 중요한 경기를 보다가 골 넣는 장면을 놓쳤거나, 경기 중간에 화장실이 급할 때도 이젠 문제없다. TV 방송을 내 마음대로 멈췄다가 다시 보기도 하고, 놓쳤던 순간을 다시 돌려 볼 수 있기 때문이다. 

디지털 시대에서 기계의 성능을 좌우하는 것은 프로그램이다. 하드웨어의 수준이 비슷한 상황에서 독창적이고 실용적인 프로그램을 만들어 내는 일이 더욱 중요해진 것이다.

소프트웨어 아키텍트는 프로그램의 제작에 들어가는 논리 과정을 전체적으로 파악해야 한다. 이 과정에서 문제가 발생하면 프로그램이 제대로 작동하지 않기 때문이다. 문제점을 찾아 내 분석하고 해결하는 일도 아키텍트의 일이다. 이런 업무는 경력이 부족한 프로그래머는 하기 힘들다. 그런 탓에 아키텍트는 자신이 수행하고 있는 과제뿐 아니라 다른 팀이 맡은 과제의 프로그램 설계를 꼼꼼히 검토하는 일도 도맡는다.

“프로그램 설계를 위해 밤을 새는 것은 기본이고, 자면서도 일하는 악몽 아닌 악몽을 꿔요. 프로그래머에겐 흔한 일이죠. 꿈에서 짠 알고리즘을 혹시나 하는 마음에 실제로 실행시켜 보기도 했어요.역시나 제대로 작동하지 않더라고요. 하하하.”

프로그램 전체 구조를 파악하는 아키텍트에게 수학적 사고는 필수다. 프로그램의 명령어 한줄 한줄이 수학 증명처럼 엄밀해야 하기 때문이다.

그렇다면 컴퓨터에 직접 명령을 내리는 일, 즉 프로그래밍이란 뭘까? 김 박사는 ‘프로그래밍은 일종의 대화’라고 설명한다. 영어를 모르면 미국 사람과 이야기할 수 없듯이 사람과 컴퓨터는 서로 사용하는 언어가 달라 직접 의사소통할 수 없다. 컴퓨터와 대화를 시도하려면 사람이 컴퓨터 언어를 배울 수밖에. 그러나 그 시도는 생각만큼 쉽지 않다.

“디지털 텔레비전이 예약 녹화, 동영상 재생, 전화기, 비디오, 오디오, 오락기 역할을 모두 하도록 프로그램을 짜는 일은 매우 복잡해요. 무려 1000만 줄이 넘는 명령어가 필요하기 때문이죠.”

그렇지만 수학을 전공한 김 박사는 탄탄한 프로그래밍 실력을 인정받아 소프트웨어 아키텍트로 활약하고 있다.

“디지털 분야에서 다양한 기능과 복잡한 구조를 갖는 프로그램을 관리하고 통제하기 위해서는 그래프 이론과 같은 기본적인 수학이론을 모르면 일하기 힘들어요.”

학창시절에 수학만큼은 1등을 놓치지 않았던 김 박사는 석사과정 때 수학계에서 30년 동안 풀지 못한 어려운 문제를 혼자서 두 문제나 풀었다. 문제를 푼 곳은 고향으로 달리는 기차 안이었다. 문제의 실마리를 찾아 내기 위해 떠오른 아이디어를 장소와 시간에 상관없이 정리하는 습관이 낳은 결과였다.

“수학은 책상에서만 공부해야 한다는 편견을 버리세요. 수학 문제를 풀려고 마음먹었다면 그 아이디어는 밥을 먹다가도, 길을 걷다가도 친구와 이야기를 하다가도 생각 날 수 있어요.”

 김 박사는 학생시절 KAIST(카이스트) 안의 정보통신연구소에서 근무하면서 수학의 위력을 한 번 더 느꼈다.

“박사과정 때 학교에서 들고 나는 모든 돈을 관리했어요. 그걸 관리하는 컴퓨터 프로그램도 처음 접했죠. 회계, 전산을 새로 공부해야 했지만 수학적 감각 덕분인지 낯선 일도 금방 잘해냈죠.”

김 박사는 낯선 분야에서 두각을 나타낼 수 있었던 이유를 모두 수을 공부한 덕으로 돌렸다. 프로그램을 설계하는 일도 마찬가지다.

“프로그램을 만드는 과정에 들어가는 컴퓨터 논리 구조에는 수많은 변수가 들어 있어요. 변수는 서로 연관돼 있어서 관계를 파악하기가 쉽지 않죠. 하지만 변수 사이의 관계를 따지는 학문인 수학을 배우면 프로그래밍 과정에서 원하는 해를 찾는 논리를 구성할 수 있어요. 예를 들면, 복잡하게 읽혀 있는 변수를 간단하게 만들어 내든지, 같은 성질을 갖는 변수들을 묶을 수 있죠.”


앞으로의 전망

김 박사는 소프트웨어 아키텍트가 소프트웨어에 종사하는 사람이 나가야 할 방향이라고 전한다.

“이제는 소프트웨어 개발자가 아닌 소프트웨어 아키텍트가 하나의 직업이 될 거예요. ‘아키텍트 누구누구입니다’라고 소개할 수 있는 거죠. 우리 회사에서도 전문 아키텍트를 길러 내기 위한 시험제도가 있어요. 합격한 사람들은 현장에서 꾸준히 실전 경험을 쌓아요.”

김 박사는 학교에서는 기업에서 쓰는 기술과 이론을 모두 배워 올 수 없다며, 학생들에게 새로운 기술을 빨리 이해하고 적응할 수 있는 기초를 마련하라고 강조했다. 그 해답은 바로 수학에 있다.

“소프트웨어 아키텍트는 빠르게 변하는 기술에 민감해야 해요. 몇 년 뒤 텔레비전은 어떤 모습일까 생각하면 예측하기가 참 힘들죠. 특정 기술만 선택해 미래를 준비할 수 없어요. 하룻밤 새 바뀌는 기술에 빠르게 적응하는 능력을 키우는 것이 디지털 시대를 살아가는 지혜죠. 그러기 위해선 빠른 이해력과 논리력을 갖춘 사람이 필요한데, 그 힘은 수학을 공부하면 충분히 얻을 수 있어요."

또 김 박사는 “수학 공식을 무조건 외우지 말고, 문제 상황에 따라 적용할 수 있는 공식을 몸으로  익혀라"라고 조언하며 "수학을 공부하면서 공식의 원리와 탄생의 역사적 배경을 찾아본다면 수학이 두 배는 더 즐거울 것"이라 말했다.

빈틈없이 쌓아 올린 수학 실력을 바탕으로 전자, 통신 소프트웨어 분야에서 입지를 굳힌 김박사처럼 멋진 소프트웨어 아키텍트를 꿈꿔 보는 것은 어떨까.


칼린과 세고의 추측

1961년에 칼린과 세고가 낸 세 가지 문제다. 그 중 두 번째 문제는 서로 수직 관계에 있는 다항식의 성찰을 파악하는 것이다. 이 문제는 김 박사가 풀기 전까지 30년 동안 풀리지 않았던 수학 난제로 알려져 있었다. 김 박사가 푼 문제는 세계적으로 인정받는 학술지에 실렸다.


소프트웨어 아키텍트

소프트웨어 아키텍트는 미국의 빌게이츠처럼 프로그램 개발자 중의 최고 개발자다. 보통 프로그래머라고도 하는 프로그램 개발자들은 컴퓨터 언어를 이용해 컴퓨터에 명령을 내리고 테스트를 통해 프로그램을 수정·보완하는 일을 한다. 최고 프로그램 개발자 즉 소프트웨어 아키텍트는 한걸음 더 나아가 프로그램 계획에서 설계까지 시스템 전체 과정을 관리하며 문제가 있는 곳을 찾아 낸다. 이 직업을 갖기 위해선 논리적 사고력, 인내력, 창의력 그리고 전문 기술이 필요하다.


김박사의 1분 강의 아날로그를 디지털 신호로!

디지털 방송은 압축 기술을 이용해 신호를 보냅니다. 신호를 압축하더라도 좋은 화질을 얻으려면 여러 가지 기술이 사용돼요. 이런 기술에는 수학이론이 쓰인답니다. 푸리에 변환도 그 중하나에요. 푸리에 변환은 방송에서 들어오는 연속 신호를 주파수 별로 잘라 낼 수 있는 수학원리 입니다. 그리고 컴퓨터가 이해할 수 있는 디지털 신호로 바꿔 줍니다. 그 밖에도 푸리에 변환은 음원 압축, 잡음 제거, 음성 및 그림 압축에 쓰입니다.
 

아날로그를 디지털 신호로!

2009년 11월 수학동아 정보

  • 이언경 기자

🎓️ 진로 추천

  • 컴퓨터공학
  • 소프트웨어공학
  • 수학
이 기사를 읽은 분이 본
다른 인기기사는?