2005년 09월 22일
[개발] [4] 폭로! 함수가 소프트웨어의 부품이 될 수 없었던 이유
네번째... 프로그래밍 언어란 무엇인가? 그리고 왜 배우는가?
프로그래밍 언어란 컴퓨터와 사람이 대화하기 위한 언어이다. 컴퓨터가 최초로 개발된지 미처 백년이 되지 못한 시점에 사람들의 기대에 비해서 컴퓨터는 아직 충분히 발전하지 못했다. 가장 발전된 형태의 수퍼 컴퓨터가 사람과의 체스 대결에서 무승부를 기록하고 있는 수준이라는 사실을 통해 우리 주변에서 볼 수 있는 보편적인 컴퓨터 혹은 PC의 능력이 어떨지 대략 짐작할 수 있을 것이다.
컴퓨터는 아직 사람의 언어를 이해하지 못한다. 따라서, 사람이 컴퓨터의 언어를 이해해서 컴퓨터가 이해할 수 있는 방식으로 지시를 해야 한다. 더욱 나쁜 것은 아무리 머리 좋은 사람도 초당 수백만개의 명령을 컴퓨터에게 지시할 수는 없다.
프로그래밍 언어는 솔직히 배우기 어렵다. 왜 그런가? 프로그래밍 언어를 만든 사람들이 바로 수학자들이기 때문이다. 수학자들은 수학 공식, 수식이야 말로 가장 완벽하고 아름다운 언어라고 말한다. (이런 말씀을 하신 분이 피타고라스 선생이었던가?) 문제는 수학적 표현이 일상적인 언어와는 상당히 다른 격식을 가지고 있다는 것이다. 그렇기 때문에 프로그래밍 언어는 일반인이 보기에 암호처럼 느껴지는 것이다. (심지어, 수학과 학생들조차 제대로 적응하지 못하는 상황을 보기도 한다. 음... 전에 사귀던 사람이나 지금 내 밑에서 일하는 사람 중에 수학과 출신들이 있다.)
정리하자면, 사람이 컴퓨터를 동작시키기 위해서는 컴퓨터가 이해하는 프로그래밍 언어라는 것을 배워야 하며, 작업 지시 사항을 실시간으로 지시하는 것도 어렵기 때문에 명령들을 모아서 – 프로그램이라고 부른다 – 디스크에 저장해 두었다가 한꺼번에 실행하도록 하는 것이다.
명령어들의 집합을 외부의 기억공간(하드디스크 등)에 저장해 두었다가 주기억장치에 적재(load)한 후 실행하는 방식은 폰 노이만 박사에 의해 처음으로 창안된 것이다. 따라서, 우리가 사용하는 모든 컴퓨터는 폰 노이만의 아이디어에 의해 만들어진 제품이다. 하지만, 앞으로 양자 컴퓨터가 활용가능한 시점이 되면 전혀 다른 방식의 컴퓨터가 나올지 모른다.
컴퓨터를 사용하기 위해서 프로그래밍 언어를 익히는 것은 아니다. 단순히 사용하기 위해서라는 의미는 자동차를 운전하는 정도의 기술을 의미한다. 자동차를 운전하기 위해서 자동차의 구조를 이해할 필요는 없는 것이다.
하지만, 자동차를 운전하다보면 보다 고난도의 기술을 배운다거나, 고속의 주행을 한다거나 남들과는 다른 차를 운전하고 싶은 욕심이 생긴다. - 컴퓨터를 남들보다 잘 이해하고, 사용하는 사람을 부르는 용어가 해커(hacker)인데, 와전되어 컴퓨터를 파괴하는 사람을 지칭하는 용어로 사용된다. 원래 컴퓨터를 공격하고 파괴하려는 사람은 크래커(cracker)라고 부른다. -
또한, 자동차 내부를 이해함으로써 개조한다거나 자신만의 고유한 차를 제작하려고 시도하게 된다. 참고로 공장에서 양산된 자동차를 개조하여 자신의 취향대로 고치는 방식을 튜닝(tunning)이라고 한다.
프로그래밍 언어를 배우는 것은 위에 설명한 것도 비슷한 일이다. 컴퓨터의 빠른 연산 능력과 다양한 표현 능력(그래픽, 동영상, 인쇄), 그리고 통신 능력(인터넷, 파일 전송 등)을 바탕으로 개발자가 입력한 명령들을 수행함에 따라 보다 색다른 기능들을 제공하게 되는 것이다.
좀더 매력적인 표현은 당신의 컴퓨터라는 가상현실 세계에서 모든 것을 통제하고, 구현할 수 있는 절대자가 될 수 있다는 것이다. 기존에 존재하는 기능뿐만 아니라 당신의 상상에 의해 현실적으로는 불가능한 일들까지 가능해진다. 물론, 디지털 공간이기 때문에 현실과는 다른 면이 많다.
사람들이 사용하는 언어가 나라와 민족에 따라 다른 것처럼, 컴퓨터에서 사용하는 언어의 종류도 다양하다. 실제로 수백가지 이상의 프로그래밍 언어가 존재하고, 연구 목적으로 시험 개발되었던 언어들까지 포함한다면 수천 종류가 넘을 것이다.
# by | 2005/09/22 11:21 | Development | 트랙백 | 덧글(2)





밸리에는 제목이 다 똑같이 나오거든요 ^^ 저같이 제목을 주로 보는 사람은 놀라요 ㅋㅋ
일반인들에게 이렇게 이해가 쉽게 풀어 설명 할 수 있다니,,,