프로그래밍

[MASO] Smalltalk의 역사

봄바다별하늘 2007. 1. 11. 10:02

마이크로소프트웨어 1990.7.  183p

 

객체 지향 프로그래밍이란 무엇인가

 

 OOPS의 대명사, 스몰토크

 

 

 

글/ 이준희,김형집,김성룡

 

 

 

스몰토크의 역사

 

앞의 글에서 OOP의 역사에 대해 이야기했듯이, 클래스 개념을 도입한 것은 시뮬라 67이 최초이지만 본격적인 객체 위주 언어와 객체 위주를 목적으로 한 독립적인 시스템으로 나온 것은 역시 스몰토크가 최초일 것이다. 또한 스몰토크는 기존의 언어를 확장한 것이 아니라 처음부터 순수하게 객체 위주 개념에 맞추어 고안되었기 때문에 아직까지도 OOP 개념에 스몰토크만큼 충실한 언어가 없다고 해도 과언이 아니다.

스몰토크의 역사는 1970년대 초반 미국 제록스사의 부설 연구소인 팔로 알토 연구소(Palo Alto Research Center, PARC)로 거슬러 올라간다. 당시 이 연구소의 학습 연구 그룹(Learning Research Group, 현재는 Software Concepts Group)의 팀장이었던 앨런 케이(Alan Kay)는 다이나북(Dynabook)이라고 하는 개인용 노트북 컴퓨터를 구상하고 있었다. 케이의 생각은, 하드웨어의 발달로 인해 80년대가 되면 누구나 개인용의 컴퓨터를 한 대씩 갖게 될 것이며, 그 컴퓨터는 노트북만한 크기에 성능은 당시의 마이크로 컴퓨터의 수십 배, 즉 지금의 386 PC 정도가 될 것이라는 것이었다. 이것이 노트북이나 랩탑은 커녕 최초의 PC인 알테어가 아직 나오지도 않았을 때라는 점에 주목한다면 케이는 앞을 내다보는 능력이 상당한 사람이라고 하겠다. 케이의 예측은 약간 이르기는 했지만, 요즘 나오고 있는 랩탑과 노트북 PC들을 보면 그의 예측이 거의 들어맞았다고 볼 수 있다(최근에 도시바사에서 나온 다이나북은 이 이름을 도용한 것이 아닐까 하고 생각한다).

 

어쨌든 케이의 생각은, 그러한 강력한 개인용 컴퓨터는 분명히 그 당시의 미니 컴퓨터-여러대의 터미널을 연결하여 시분할 체제로 사용하는-와는 다른 컴퓨팅 환경을 가져야 한다는 것이었다. 그 당시 컴퓨터 하드웨어는 매우 비싼 자원이었으며, 이것을 사용할 수 있는 사람들은 고도로 교육을 받은 컴퓨터 전문가들이었고, 그 사용목적 또한 복잡한 계산이나 대량의 정보 처리에 국한되어 있었다. 그러나 장래에-지금의 시점에서는 요즘-모든 사람이 컴퓨터를 한 대씩 갖게 된다면 상황은 달라져야 한다.

즉 컴퓨터는 전문적인 교육을 받지 않은 보통 사람도 사용하는 필수품이 될 것이며, 비싼 하드웨어를 효율적으로 사용하는 데 주안점을 두었던 미니급 이상의 컴퓨터와는 달리, 누구나 쉽게 사용할 수 있게 하는 것이 시스템 설계의 원칙이 되어야 한다는 것이다. 이러한 시스템은 단순히 그래픽 디스플레이나 마우스 같은 하드웨어 장비를 사용하는 것만으로 이루어지는 것은 아니다(당시 PARC에서는 이러한 하드웨어 장비들을 설계하고 그것들을 실험적으로 사용하고 있었다. PARC에서 만들어 낸 것 중에서 비트 맵 디스플레이, 마우스, 레이저 프린터, 이더네트 등 오늘날 핵심 기술이 되는 것들이 많다).

 

중요한 것은, 누구나 쉽게 배우고 사용할 수 있는 컴퓨팅 환경이다. 이러한 환경을 구축하는 데는 하드웨어보다 소프트웨어 시스템이 훨씬 더 중요한 부분인데, 그 중에서도 프로그래밍 언어와 사용자 인터페이스가 핵심적인 요소가 된다. 스몰토크는 바로 이러한 소프트웨어 시스템으로서 개발된 것이다.

스몰토크 시스템은 PARC의 학습 연구 그룹에 의해 10년 이상에 걸쳐 개발되었으며, 그 버전은 72년에 발표된 스몰토크-72, 74년에 개발된 스몰토크-74, 76년의 스몰토크-76, 그리고 최종적으로 발표된 스몰토크-80 시스템이 있다. 우리가 보통 스몰토크라고 하면 스몰토크-80 시스템을 이야기한다. 그러나 현재 사용되고 있는 스몰토크 시스템들은 스몰토크-80의 변종들이 많다.

 

스몰토크 언어와 시스템은 PARC에서 만들어낸 알토(Alto) 워크스테이션 위에서 만들어지고 개량되었다. 알토는 당시로서는 상당히 진보한 시스템으로, 비트맵 그래픽 디스플레이와 마우스, 윈도우, 팝업 메뉴 등 요즘 그래픽 사용자 인터페이스(GUI)의 기반이 되는 여러가지 개념들을 최초로 또는 상당히 빨리 도입한 시스템이었다. 이것은 또한 그 뒤에 유명한 제록스의 스타(Star) 워크스테이션 및 애플의 리자와 매킨토시로 이어졌다.