d라이브러리









(4) 한글언어개발 시급하다

소프트웨어 기술자립의 필요조건

"영어 중심의 좋은 프로그래밍 언어들이 많은데 구태여 한글언어를 만들 필요가 있을까." 컴퓨터전문가 일수록 이런 사고가 팽배해 있다.

컴퓨터의 발전 역사를 보면 그것은 곧 컴퓨터언어가 발전해온 역사임을 알 수 있다. 초기의 프로그래밍 작업은 기계가 직접 실행할 수 있는 기계어로 이루어졌다. 그 다음에는 기계코드를 사람이 알기 쉬운 기호로 바꾼 어셈블리(Assembly)어를 사용했다. 조금 더 발전해 기계와 직접 연관된 부분을 감추고 추상적인 수준에서 프로그래밍이 가능한 고수준언어가 탄생하게 된다.

프로그램의 작성이 쉽고 잘못을 발견하기 쉬우며 능률적인 언어를 만들려는 사람들의 노력은, 초기의 고수준언어인 포트란(FORTRAN) 코볼(COBOL) 등에서부터 구조화언어로 블록구조언어로 그리고 최근에는 객체에 메시지를 보내면 객체가 그것에 응답하여 동작을 일으키는 객체지향언어로 프로그래밍언어가 발전돼 왔다.

이러한 경향과 발전의 내용을 가만히 살펴보면 그것은 프로그래밍언어와 인간 사고과정의 차이를 줄이는 과정이었다. 즉 인간과는 전혀 다른 동작논리를 가지고 있는 컴퓨터를 사용하기 쉽도록 하기 위해 프로그래밍언어를 점점 더 인간의 언어와 비슷하게 만드는 과정이었다. 자연언어와 프로그래밍언어의 차이를 줄이면 줄일수록 프로그래밍을 배우는데 필요한 노력은 줄어들고 프로그래밍의 생산성은 올라가게 마련이다.

한글언어가 필요한 이유도 가장 기본적으로 여기에 그 근거가 있다. 우리가 일상적으로 사용하는 언어인 한글과 프로그래밍언어와의 차이를 줄여야 한다는 것이다. 많은 사람들은 다음과 같은 질문을 던질 것이다. "좋은 언어들이 많이 있는데, 구태여 한글언어를 만들 필요가 있을까." 영어중심이기는 하지만 좋은 언어들이 많은데 한글언어가 필요없다는 의견이다. 그런데 재미있는 것은 이러한 의문은 실제 프로그램을 작성할 수 있는 사람들, 더 나아가 컴퓨터 전문가라고 하는 사람들일수록 더 많이 가진다는 것이다. 영어중심의 좋은 프로그래밍언어들이 있고, 자신들은 영어를 잘 알아서 별 불편없이 프로그래밍하고 있는데 구태여 새로운 언어를 만들고, 그것을 배우는 노력을 할 필요가 없다는 의견이다. 기술의 종속이 사상의 종속을 낳은 슬픈 현상이다.

프로그래머의 대중화

프로그램을 작성하는 것은 영어를 아는 사람만이 할 수 있는 특권인가. 원래 프로그램이라는 것이 영어를 알아야만 가능한 것인가. 둘 다 아니다.

지금은 '보통사람의 시대'다. 이것은 6공의 구호가 아니다. 실제 현재 사회의 모든 분야가 모든 사람들에게 개방되어 있다는 의미에서 그렇다.

컴퓨터산업에서도 어떻게 하면 전문가가 아닌 사람들이 쉽게 컴퓨터를 사용할 수 있도록 할 것인가가 중요한 관심사가 되고 있다.

소프트웨어산업계에서 관심의 초점이 되고 있는 객체지향언어의 대표적인 스몰토크(Smalltalk)라는 언어에 관한 아이디어를 처음으로 발표한 알랜 케이는 다음과 같이 말했다. "미래에는 모든 사람이 프로그래머가 될 것이다."

모든 사람이 프로그래머가 되기 위해서는 프로그래밍이라는 것이 쉬운 작업이어야 한다. 물론 이렇게 되기 위해서는 지금의 전통적인 프로그램 작성방식과 언어가 많이 발전해야겠지만 그 기본은 한글로 된 언어여야 한다는 것이다. 프로그램을 작성하기 위해서 외국어를 알아야 한다는 것은 전혀 바람직하지 못하다.

우리나라 컴퓨터 보급대수가 IBM PC만 1백20만대를 넘어서고 있다. 또 국민학교 중학교 고등학교에서 컴퓨터 교육이 이루어지고 있다. 컴퓨터의 사용이 대중화되고 있는 지금, 대중의 컴퓨터사용 수준을 높이고 컴퓨터에 대한 이해를 높이기 위해서는 한글언어는 반드시 필요하며, 시급히 필요한 것이다.

많은 사람들이 국산 소프트웨어의 부족을 말한다. 다른 많은 이유도 있겠지만 큰 이유중의 하나는 프로그램을 작성할 수 있는 사람의 숫자가 부족하기 때문이라고 생각된다. 프로그램을 작성할 수 있다면 자신에게 필요한 프로그램을 만들 수 있을 것이고 이렇게 저변이 넓을 때 좋은 소프트웨어도 많이 만들어질 수 있을 것이다.

한글 언어가 필요한 또 한가지 이유는 라이브러리(library)의 축적이다. 한글은 영문과는 달리 모아쓰기라는 특성을 가지는데, 이것 때문에 한글을 위한 입출력 라이브러리가 별도로 필요하다. 지금은 표준화되고 성능을 인정받은 믿을 수 있는 입출력 라이브러리가 없기 때문에 응용프로그램을 개발하려는 사람은 각자가 자신의 라이브러리를 만들어서, 대부분의 경우 혼자 사용하고 있다. 이것은 심각한 비효율이며 낭비다.

소프트웨어가 발전하기 위해서는 여러 사람의 노력이 각각 개인적인 의미로 끝나거나, 한가지에 중복되지 않고 서로의 노력의 결과가 다른 이의 밑바탕이 될 수 있는 그런 환경이 조성돼야 한다. 그러기 위해서는 표준화되고 서로간에 교환가능한 라이브러리가 축적이 돼야 하는데 그것의 중심은 당연히 한글언어가 돼야 할 것이다.

「콩글리시」는 되지 말아야

그렇다면 한글언어는 어떤 모습이어야 하는가. 먼저 무엇보다도 모든 어휘가 한글로 돼있어야 한다. 이것은 변수이름이나 함수이름 등등의 이름 뿐만 아니라, C언어에서 'xf2ce'와 같이 표현되는 16진수를 표시할 때나, '2.3c12' 와 같이 표시되는 실수표시 등에서도 모두 한글로 표현될 수 있도록 해야 한다. 모든 어휘를 한글로 쓰도록 하는 것은 만약 한글과 영어를 섞어쓰게 되면 문서편집기로 처넣는 과정에서 불편할 뿐만 아니라, 많은 오타가 생긴다는 실용적인 이유도 있다.

다음으로 구문의 구조가 한글과 일치해야 한다. 지금까지의 한글 프로그래밍언어에 대한 연구들은 영문프로그래밍언어들의 키워드들을 한글로 바꾸려는 노력이 많았던 것 같다. 예를 들어

IF a<5 THEN b:= c+d:ENDIF
RETURN b:
GOTO label:
와 같은 것을
만약 가 <5이면 나:= 다+라:끝
넘김값 나:
이동 표식:
과 같은 식이다.

그러나 이것은 '콩글리시'를 넘어서지 못한다. 영어에서는 문장의 중심이 되는 낱말이 문장의 앞에 오는 경우가 많지만 한글은 문장의 끝부분에 온다. 이러한 한글의 특성을 살리지 못하면 겉모양만 한글언어일 뿐 실제로는 영어일 뿐이다.

한글언어의 구문은 한글과 최대한으로 일치해야 한다. 그렇게 하기 위해서는 영문언어에서의 IF THEN RETURN과 같은 키워드를 잘 선택해야 할 것이다.

또한 한글언어는 좋은 언어라야 한다. 이것은 너무나 당연한 말일 수 있으나 이것이 의미하는 바는 이미 있던 언어, 예를 들어 포트란 C 파스칼(PASCAL) 등과 같은 언어규격에 어휘와 문장구조만을 한글중심으로 바꾼 것이어서는 안된다는 의미다.

40년 동안의 컴퓨터 역사에서 수없이 겪어온 시행착오와 노력의 결과를 받아들이고 소화하여 지금 많이 쓰이고 있는 영문언어와 비교해서 손색이 없는, 아니 더 나은 언어여야 할 것이다. 이것은 분명히 어려운 작업일 것이다. 그리고 이미 있는 것들과는 다른 언어일 것이다. 번역은 또하나의 창조작업이다. 영문언어를 한글언어로 번역하는 것도 새로운 언어를 만드는 것이다. 새로운 것을 만들 바에는 좋은 것을 만들어야 한다.

그리고 한글을 처리할 수 있는 자료형이 갖추어져 있어야 한다. C에서의 자료형(data type)인 'char'는 그 정의가 특정 기계에서 영문글자들을 표현하는데 필요한 크기로 규정하고 있다. 이와 마찬가지로 한글언어에서의 글자 표현을 위한 자료형은 한글 한 글자를 표현하는 데 충분한 크기여야 한다. 멀티바이트(multi byte) 형태로 처리하는 것은 영문중심의 사고방식이며, 한글을 셋방살이 시키는 것이다. 한글을 표현할 수 있는 충분한 크기의 자료형을 정의하고 영문은 여기에 포함시켜야 한다.

타이컴이 주는 교훈

최근에 기쁜 소식 한가지와 슬픈 소식 한가지를 들었다. 기쁜 소식은 우리의 독자적인 힘으로 중형컴퓨터인 '주전산기 Ⅱ 타이컴'을 개발했다는 것이고, 슬픈 소식은 이 타이컴이 비슷한 외국 제품에 비해 성능이 떨어진다는 이유 때문에 정부와 업계의 무관심으로 사장될 위기에 처해있다는 것이다. 어쩌면 외국 제품에 비해 성능이 떨어지는 것은 당연할 지도 모른다. 첫 술에 배부를 수는 없으니까.

그렇다고 이런 식으로 해서는 우리는 언제까지나 외국의 기술식민지상태를 벗어나지 못할 것이다. 기술자립을 위해서는 성능이 좀 떨어지더라도 우리 것을 사용하는 애국심이 필요한 때인 것 같다.

이런 식은 어떨까. 우리 힘으로 개발한 중형컴퓨터를 전국의 대학에 무료로 공급하는 것이다. 그렇게 함으로써 대학의 열악한 전산 환경을 개선하고 우리 것을 사용하면서 컴퓨터를 배운 사람들이 늘어남으로써 우리의 컴퓨터 시장도 넓어질 수 있을 것이다.

자칫하면 한글 언어도 타이컴과 비슷한 운명에 빠질 충분한 위험이 있다. 물론 언어 그 자체가 좋은 것이어야 하겠지만 우리 것을 키운다는 마음으로 많은 사람들이 사용해 줄 때 발전할 수 있을 것이다.

한글 언어는 그 자체가 한글환경을 요구한다. 지금의 입출력장치들은 모두가 영문중심으로 만들어져 있기 때문에, 자연스럽고 효율적인 한글 입출력을 위해서는 새로운 입출력장치들이 필요하다. 또 한글입출력이 자유로운 운영체제(OS)를 요구한다.

따라서 다음번 컴퓨터 국가 프로젝트는 '주전산기 Ⅲ'의 개발뿐만 아니라 '소프트웨어 국산화 프로젝트'가 되어야 하지 않을까 생각한다. 그 내용은 하나의 한글언어를 개발하고 이것을 중심으로 유닉스와 같은 운영체제를 만들고 여타의 시스템소프트웨어를 개발하는 것이다. 이렇게 함으로써 진정한 의미의 컴퓨터 기술 자립을 이룩할 수 있을 것이다.

가장 민족적인 것이 가장 세계적인 것이다. 우리에게 가장 필요하고 유용한 소프트웨어만이 가장 세계적일 수 있다.
 


타이컴이 주는 교훈

 

이 기사의 내용이 궁금하신가요?

기사 전문을 보시려면500(500원)이 필요합니다.

1991년 10월 과학동아 정보

  • 장영승

🎓️ 진로 추천

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