제 3 장디지털정보구현 정보는전산자료의형태로소통되며, 그형식은문자, 그림, 음성, 동영상등다양하다. 인간사회에서언어가다르면의사소통할수없듯이, 전산정보의소통에도문자, 그림, 음성, 동영상의형식이통일되어있지않으면정보를공유할수없다. 이에따라컴퓨터가등장한이래로, 컴퓨터에서사용되는부호의표준화작업이지속적으로이루어져왔으며, 미국의정보교환용표준코드 (ASCII American Standard Code for Information Interchange) 나우리나라의정보교환용표준코드 (KS), 더나아가전세계문자를표현하려는유니코드 (Unicode) 가바로그결과라고할수있다. 컴퓨터에문자를표상하는문제는영문자와한글혹은한자만의문제는아니다. 세계에는수많은문자가있으며, 정보공유의관점에서세계의문자를통합하여코드를부여하고자하는움직임이생겼다. 그결과로나온것이유니코드혹은 ISO 10646 코드라는것이다. 이것은원래 2바이트로전세계언어를구분한후, 2바이트로그언어의문자를표상하고자제안된것이지만, 한문자를 4개의바이트로표시하는비효용성때문에그대로시행되지는않고 2개의바이트내에세계에서가장널리 제 3 장디지털정보구현 1
사용되는여러언어의문자를모두표상하는기본다국어문자판 (BMP Basic Multilingual Plane) 을현실적인대안으로제시하였다. 이코드를잘활용하면, 2개의바이트만으로도 65,536 개의문자를표상할수있으므로, 실생활에서사용하는데큰문제가없다. 실제로유니코드는윈도우즈등컴퓨터운영체제와프로그램에반영되어있으며, 아래아한글 같은워드프로세서에서도텍스트파일로저장할때완성형혹은조합형뿐만아니라유니코드로저장할수있는기능이있다. 1. 코드 (Code) 컴퓨터의가장기본적인기억소자는두가지상태, 즉꺼진상태와켜진상태 (off/on) 만을가질수있고이를 0과 1에대응시킬수있다. 이렇게 0과 1의두숫자만으로이루어진숫자체계를이진숫자체계라고하며, 두가지상태의조합으로주어진자료를표현하게된다. 이진체계는십진체계와달리 0과 1로모든수를나타낸다. 이 0과 1을나타내는기본단위를이진체계에서는 binary digit 를줄여비트 (bit) 라고부른다. 비트는컴퓨터에서주기억장치에데이터를기억시키는, 정보전달의가장기본적인단위이다. 코드 (code) 란컴퓨터에서특정한데이터를표현하는비트 (bit) 의나열을뜻하며, 부호 라고도한다. 컴퓨터에서는문자나숫자를막론하고그내부에서처리되는모든정보는컴퓨터가이해할수있는오직하나의자료형태인숫자 (2진수 ), 즉비트의나열로표현된다. 따라서사람이인식할수있는숫자나문자는컴퓨터내부에서그에대응되는 2진수로표현이되어야한다. 이러한 2 프랑스어와컴퓨터
문자와 2진수의대응관계를문자코드라고한다. 이때코드라는개념은비단컴퓨터내부처리뿐만이아니라컴퓨터와컴퓨터그리고컴퓨터와주변기기사이의정보교환에도마찬가지로적용된다. 문자코드에는문자와그코드값의대응관계뿐만아니라그코드체계에따라문자를표현, 처리하거나정보교환할때지켜야할각종제약사항을명시하는것이일반적이다. 문자와코드값의대응관계및제약사항을합쳐코드체계혹은부호계라고한다. 1) 데이터는컴퓨터상에서 0과 1의조합으로표시되는데, 이때하나의값을비트라고부른다. n개의비트를가지고표현할수있는코드의종류는 2 n 이된다. 이렇게계산해보면 6개의비트로는 64개, 7개의비트로는 128개, 8개의비트로는 256개의데이터를조합할수있다. 이때 8비트를 1바이트라고하므로 1바이트를사용하면모두 256종류의코드를구성할수있다. 컴퓨터에서는 8비트를묶어바이트라고부르는데, 대개하나의문자를표시하는데많이사용된다. 그리고정보를나타내는통상적인단위가있는데, 보통 8비트, 16비트, 32비트, 64비트등으로구성된다. 2. 문자코드의역사 1968 년이른바 ASCII 라는약자로더잘알려진, 정보교환용미국표 1) 비트 (bit) 는컴퓨터내부에서데이터를표현하기위해사용되는최소의단위이다. 2 진수한단위로서 0 이나 1 을기억하는단위이다. 물리학적으로말하면일종의원자와같은것이다. 바이트 (byte) 는 8 개의비트 (bit) 를연결하여표현되는단위이다. 하나의숫자, 문자, 기호를표시한다. 물리학적으로말하면일종의분자와같은것이다. 제 3 장디지털정보구현 3
준코드가표준화되었다. ASCII 에서다양한문자에숫자코드를부여했는데, 그수치는 0에서 127에이른다. 예를들어, 소문자 a 는 97이그의코드값으로할당되었다. 원래 ASCII 는미국표준이었다. 그래서특수문자가없는문자만정의되었다. e 는있었지만, ê 이나 Î 는없었다. 이는곧특수문자가있는문자를요구하는언어가 ASCII로는제대로표현할수없다는뜻이다. 실제로특수문자의부재는영어에도문제가되었는데, 예를들어 naïve 와 café 같은문자를표현할수없었다. 프랑스어로 1980년중반에출간된, BASIC 프로그램을본기억이있는데, [ 표 1] 과같은내용이있었다. [ 표 1] 프랑스어특수문자가빠진 BASIC 명령어 PRINT "FICHER EST COMPLETE." PRINT "CARACTERE NON ACCEPTE." 이메시지에는특수문자가포함되어있어야하며, 프랑스어를아는사람에게는완전히엉터리로보였다. 1980 년대에대부분의개인용컴퓨터는 8비트였고, 1바이트로 0에서 255 범위의값을담을수있다는뜻이다. ASCII 코드는 127까지만숫자와알파벳을부여하였다. 그래서어떤컴퓨터에서는특수문자를 128에서 255 사이에코드값을할당할수있었다. 그렇지만컴퓨터가다르면코드도달랐다. 이때문에파일교환에문제가생겼다. 마침내다양하게사용되는범위가 128~255 인코드값이출현하였다. 어떤것은국제표준화기구 (ISO) 에서정의한표준안이었고, 어떤것은한두회사에서고안되어인기를얻는데성공한코드였다. 2) 4 프랑스어와컴퓨터
유니코드는 8비트문자대신에 16비트문자를사용하면서시작되었다. 16비트라는것은 2^16 = 65,536 개의구별된값을사용할수있어서, 다양한알파벳으로부터유래한많은문자를표현할수있다. 처음목표는유니코드에인류언어의알파벳을모두담는것이었다. 그런데 16비트조차도그목표를충족하기에부족했다. 그래서현대의유니코드규격에서는더넓은코드, 0에서부터 1,114,111(16 진수로 0x10ffff 임 ) 까지의범위를사용한다. 유니코드와 ISO 10646 은원래따로시작되었지만, 유니코드 1.1 개정판에서그규격이통합되었다. 유니코드문자는코드포인트의연속열이며, 코드포인트는 0에서 0x10ffff 까지의숫자이다. 이연속열은메모리에서바이트집합 ( 즉, 0~255의값 ) 으로표현될필요가있다. 유니코드문자열을바이트연속열로번역하는규칙을이른바인코딩 (encoding) 이라고한다. ISO-8859-1 이라고도알려진 Latin-1 도비슷한인코딩이다. 0~255 까지의유니코드코드포인트는 Latin-1 값과같다. 그래서이인코딩으로변환하려면그냥코드포인트를바이트값으로변환하기만하면된다. 255보다큰코드포인트를만나면, 그문자열은 Latin-1 로인코딩할수없다. 인코딩은 Latin-1 처럼간단한 1대1 짝짓기일필요는없다. IBM의 2) 255 개의문자는그렇게많은것이아니다. 예를들어, 서유럽에서사용되는특수문자와러시아어에사용되는키릴알파벳모두를 128~255 범위에맞출수는없다. 그런문자는 127 개가넘기때문이다. 이런문제를해결하기위해, 다른코드를사용하여파일을작성하기도하였다. 러시아파일은모두 KOI8 이라는코드시스템으로, 프랑스어파일은모두 Latin-1 이라는다른코드시스템으로작성할수있다. 그러나러시아어텍스트를인용한프랑스어문서를작성하려할때, 어려움이있었다. 1980 년대부터사용자가이문제를해결하고싶어했으며, 여기서유니코드표준화노력이시작되었다. 제 3 장디지털정보구현 5
EBCDIC(Extended Binary Coded Interchange Code) 를생각해보자. 이는 IBM 메인프레임에사용된적이있다. 글자값은한구획에있지않았다. a 에서 i 까지는 129에서 137까지의값을가졌지만, j 에서 r 까지는 145에서 153까지의값을가졌다. EBCDIC 를인코딩으로사용하고싶다면, 아마도찾기표를사용하여변환을수행해야할것이다. 가장널리사용되는인코딩은 UTF-8이다. UTF는 "Unicode Transformation Format ( 유니코드변환포맷 )" 의약자이며, 8 은 8비트숫자가인코딩에사용된다는뜻이다. UTF-16 인코딩도있지만, UTF-8 보다는사용빈도가낮다. 3. 코드체계의종류 먼저가장널리쓰이는아스키코드에대해간단히알아보고, 한글코 드와유니코드의상관관계에대해알아보기로하자. 3.1. 아스키 (ASCII) 코드 컴퓨터를처음개발하여사용하던초기에는미국의컴퓨터회사가여러종류의코드를사용했으나점차수가줄어들었다. 그후가장많이사용되고있는코드체계가아스키코드이다. 이것은세계적으로널리쓰이는영문자코드체계로서, 국제표준화기구 (ISO) 에의해 IS0 10646 이라는이름으로정의되어현재정보처리부호의표준으로사용되고있다. 그러나최근에들어와전세계의모든문자를처리할수있는코드의 6 프랑스어와컴퓨터
제정필요성이높아지면서새로운형태의국제표준부호제정움직임이활발하게이루어지고있다. 아스키코드에정의된 128개의문자는 7비트로표현되며, 패리티 (parity) 비트를포함하여 8비트로구성된다. 이코드에는 A에서 Z까지의영문대문자, a에서 z까지의영문소문자가모두 52개, 0에서 9까지의숫자 10개, +, -,!, @, # 등특수기호및기타제어기호를포함하여총 128개를조합할수있다. 모든아스키코드는 0x00 에서 0z7f사이에있으므로, 8비트중 7비트에들어간다. 즉모든아스키문자의최상위비트는항상 0으로정해진다. 1바이트데이터를사용할경우남는 1비트는컴퓨터통신에서패리티비트 (parity bit) 로사용되어데이터전송의정확성을높이는데이용된다. 3.2. 한글코드 한글코드는우리나라에서사용되는문자를컴퓨터내부에서 2진수로표현하기위한대응규칙이다. 여기에는한글뿐만아니라, 영문자, 숫자, 한자, 각종문장부호등을모두포함하는것이일반적이다. 컴퓨터는기본적으로영어권문화에서만들어진것이므로컴퓨터를쉽게다루기위해영어로된명령어를사용하도록제작되었다. 1980년대에국내에처음컴퓨터가들어왔을때에는소수의전문가만이컴퓨터를사용하였으므로영어를그대로사용했다. 점차컴퓨터보급이늘어나면서한국어로된명령어와한국어를처리할수있는프로그램의필요성이대두하였다. 그런데그당시컴퓨터로한국어를처리하려면여러가지어려움이 제 3 장디지털정보구현 7
있었다. 가장큰문제중의하나는기본적으로컴퓨터가 1바이트 (8비트 ) 체계로되어있어서최대표현할수있는문자수가 256(2 8 ) 자였다는점이다. 현대한글은 11,172 자이므로 1바이트체계로는현대한글을표현할수없었다. 이에따라기업과개인이각각한글을처리하는방법을고안하게되었고, 다양한한글코드가나오게되었다. 컴퓨터에서한글구현에관련된문제로는한글코드, 한글자판, 한글글자꼴등이있다. 그중에서도가장대표적인문제는한글코드이다. 왜냐하면, 우리나라에서컴퓨터를통해정보를전달하는데있어가장기본적인매체가한글이기때문이다. 이같은이유로국가에서도한글코드에관련된문제를해결하기위해한글코드표준화작업을지속적으로추진해왔다. 그결과 1987년에 KS 5601 완성형한글코드로한글을표준화하였으며, 그것의문제점을개선하여 1989년에는 KS 5657을새로이제정하였다. 그러나이역시컴퓨터에서한글을완벽하게구현하지못하여 1995년에 KS 5700을표준코드로제정하였다. 이 KS 5700은국제표준화기구에정식으로등록된한글코드이다. 3) 지금까지한글코드표준화작업이지속적으로추진됐는데, 한글코드제정의변천사를간략하게정리하면 [ 표 2] 와같다. 3) 한글코드는분류하는기준에따라, 한글데이터를모두아스키 128 자미만의문자로만구성되는 7 비트형태가있고, 영문은 128 자미만의문자로표현하고한글은 128 자이상의문자로표현하는 8 비트형태가있다. 8 프랑스어와컴퓨터
[ 표 2] 한글코드제정변천 코드이름 제정연도 KSC-5601-1987 1987 KSC-5601-1992 1992 KSC-5700-1995 1995 코드형태 2바이트완성형 2바이트조합형 완성형, 조합형 한글만의특징 최초의국가지정표준코드. 한글 2,350 자지원. 주관 공업진흥청 현대한글음절 11,172 자추가. 공업진흥청 한글의입출력을컴퓨터내부에서처리할수있는코드체계. 조합형형식으로사용가능한한글자모 240 개와완성형음절공업진흥청 11,172 개로구성된국제문자코드체계. 한글표준문자코드로제정됨. 지금까지한글코드표준화작업은다양한형태로전개됐지만, 여러가지문제점을안고있다. 한글코드는컴퓨터에서한글을어떻게표현하느냐에관한규정이므로, 바람직한한글코드를논하기위해서는한글이라는문자체계에대한체계적인조사와연구가필요하다. 한글코드문제는기술적인측면에서의효율성만을가지고접근할성질의것이아니다. 한글코드의표준안은산업계및일반국민의문자생활에매우커다란영향을미친다. 따라서한글코드의문제에접근할때기술적측면이외에문화적, 산업적측면에서다각적인노력이필요하다. 또한, 근래에들어와전세계의모든문자를단일한코드체계로통합하려는움직임이활발하게이루어지고있는가운데국제표준제정의추세에적극적으로대처할필요가있다. 한글은자모의조합에의한모아쓰기라는특성을갖추고있는만큼, 이러한특성을컴퓨터에서제대로구현하는것이중요하다. 먼저, 조합 제 3 장디지털정보구현 9
가능한모든한글을표현할수있어야한다. 한글코드는컴퓨터에서한글을표현하려는방법이므로, 적어도현재우리가사용하고있는한글맞춤법에따라조합가능한한글음절이모두표현될수있어야한다. 한글은초성, 중성, 종성이결합하여하나의글자를이룬다. 현대국어에서사용되는초성, 중성, 종성으로조합하여표현가능한글자는총 11,127 자이다. 이외에초성, 중성, 종성가운데하나또는두개가없는불완전한음절또한처리할수있어야한다. 또, 옛한글을현대어와같은수준으로사용할수있어야한다. 옛한글은국어학자만필요한것이아니다. 적어도옛문헌에서자주쓰이는옛한글을가능한한모두처리할수있어야한다. 특히, 한자와특수문자등을사용할수있어야한다. 우리나라에서사용되는문자는한글뿐만아니라, 기타수많은한자, 외국문자, 그리고각종문장부호와특수기호등이있다. 따라서이문자또한만족할만한수준에서사용할수있어야한다. 끝으로, 한국어정보처리에적합해야하며, 국제적인표준규격에상응해야한다. 비표준한글코드는 KS 표준이외에우리나라에서사용되는코드체계를말한다. 이러한비표준한글코드는대체로특별한목적, 특히학술적인목적을위해임의의기관, 단체, 업체에서만들어사용하였다. 비표준이라는문제점에도불구하고이코드체계가등장하게된주된이유는표준코드가지니고있는문제와한계때문이다. 표준코드는주로현대의문자생활만을반영하고있기때문에, 과거시대의문자생활을제대로표현할수없다. 정부가주도하여만든코드체계는현대사회에서정보교환을목적으로하였기때문에한글의경우에는현행맞춤법의범위내에서사용할 10 프랑스어와컴퓨터
수있는문자만을제공하며한자의경우에는사용빈도가높은글자로제한하였다. 따라서학술용으로사용하기에는여러가지제약과한계를안고있다. 이를해결하기위해개인연구자와학회및기관그리고소프트웨어업체에서다양한방법을제안해사용하고있다. 아래아한글 은출발당시에는흔히상용조합형이라고불리는 KSSM 체계만을지원하였다. 2.0판이후에는모든문자 ( 영문자와숫자를포함하여 ) 를 2바이트로처리하는체계로바뀌었다. 그결과최대 65,536 자의수용능력을가지게되었다. 이에따라한자의경우 4,888자이외에 10,880 자를추가로처리할수있으며, 옛한글의경우 4,000 여자를처리할수있게되었다. 4) 비표준문자는국가에서제정한표준코드에아직수용되지않은문자를말한다. 표준코드체계에수용된문자만으로일상적인언어생활을영위하는데에큰지장은없다. 그러나국어교육에서도비표준문자가사용되고있으며, 나아가한글및한자등우리의문자체계를바탕으로한전문적인연구와자료전산화등에있어서는더욱확장된코드체계가절실하게필요하다. 현재의컴퓨터사용환경에서는어느나라에서든지일정한수의문자를자국의표준코드체계안에수용하여각종정보에활용하고있다. 그러나표준코드에포함되지않은문자가운데에서도연구, 교육, 출판및정보처리에필요한문자가자주발견되며, 특히한국 중국 일본과같은한자문화권국가에서는그러한일이매우흔하다. 예컨대 조 4) 현재의 아래아한글 코드는내부코드를모두 2 바이트로처리했기때문에옛한글이나한자를처리할수있는광범위한코드영역을할애할수있다. 이뿐만아니라유니코드도활용할수있다. 그러나 아래아한글 코드는그프로그램내부에서만통용되는것이기때문에자료활용의방법과범위에제약을안고있다. 제 3 장디지털정보구현 11
선왕조실록 이나문집을전산화할때, 국가표준코드에포함되어있지않은한자가수없이많이출현한다. 더구나한자의경우에는이체자 ( ) 때문에제한된코드체계를사용할수없는예가상당히많다. KSC 5601에서정의한 4,888 자의한자로는턱없이부족하며, 비표준한글코드체계인 아래아한글 에서도 15,000 여자밖에지원하지못하기때문에한문문헌의전산화를위해서는비표준한자에대한체계적인조사와연구가절실히요구된다. 우리나라의경우에는훈민정음창제이래로한글자소와표기법이다양하게변천해왔기때문에표준규격이외의문자를정보처리에수용하는문제가더욱절실하다. 현재까지발견된옛한글만하더라도 5,000 여자를웃돌며, 옛한글에서사용된초성, 중성, 종성의문자는각각 125자, 95자, 142자이다. 이를조합해서만들수있는한글의글자수 ( 현대한글 11,172 자를포함해서 ) 는산술적으로계산해보면 1,655,152 개이다. 여기에한문의해독을위해또는한문을우리말로풀어서읽기위해사용해온구결문자가있다. 구결문자는현재한글표준코드또는유니코드어디에도정의되어있지않은비표준문자이다. 한자문화권을중심으로하는동아시아국가에서는일찍부터다양한분야의비표준한자를대규모로구축해왔을뿐만아니라, 이를통합, 가공하여효과적인사용을도모하려는각종사업을범기관적, 범국가적으로실시하고있다. 대표적으로대만은이른시기부터한자처리에관심을기울여다른나라보다기술적으로상당한진전을이루었다. 특히방대한한자데이터베이스구축작업을통해서축적된비표준한자처리에대한연구는주목할만하다. 일본은 2차대전이후정부기관, 연구소, 출판사, 신문사등에서한자사용빈도를광범위하게조사하였다. 12 프랑스어와컴퓨터
신문과잡지를대상으로추출한한자빈도를사용률에따라순위별로일목요연하게조사함으로써일본어교육과정책의기초자료로적극적으로활용하였다. 아울러신문, 잡지의한자빈도조사결과와그밖의 3종류의한자빈도조사결과를종합적으로점수화하여수준별 ( 제1수준, 제2수준, 제3수준 ) 로한자표를제시하기도하였다. 이와같은외국의상황에비추어볼때우리의현황은상대적으로미흡한실정이며, 국가적인차원의비표준문자구축지원과기초연구의활성화가필요하다. 물론우리나라에서도비표준문자의중요성을인식하고관련자료수집및구축이시도되었다. 그러나대개는개인혹은대학과연구소를중심으로한제한적인연구용으로구축되고있으며, 광범위한전문영역에서의공동활용과일반사용자에대한공개까지염두에두지는못하고있다. 현재까지산발적으로진행되고있는연구관행에서벗어나학계, 정보산업체, 언론, 출판사등공동의노력을통해비표준문자 ( 한자, 옛한글, 기타특수문자 ) 를광범위하게수집, 정리하는한편수집된비표준문자를효과적으로지원할수있는전산처리방법을개발할필요가있다. 3.3. 유니코드 (Unicode) 본장에서는유니코드가어떻게만들어졌으며, 문자세트는어떤것이있고, 한국에서유니코드를어떻게사용할것이지알아보기로한다. 정보교환이란서로다른시스템사이에서정보를이용하기위해하나의시스템에서다른시스템으로정보를전달하는것을의미한다. 한글, 한자, 영문자를포함하여현재세계모든문자는정보교환을위해 제 3 장디지털정보구현 13
각기다른부호체계를사용하고있기때문에많은문제점을안고있다. 1980년에들어와전세계적으로컴퓨터의보급이확산되고, 특히영문자를사용하지않는아시아권국가에서컴퓨터이용도가높아짐에따라문자코드의국제적인표준화에대한관심이커지기시작하였다. 이와함께지난수십년간문자코드표준으로주로사용됐던 ASCII 코드나 EBCDIC 코드가지닌문제점에대한지적도많아지기시작하였다. 대소문자와숫자, 기호를모두합하여 100개미만의기호를사용하는영문자문화권에서는 128자만을나타낼수있는아스키코드가별로불편하지않다. 그러나사용해야할글자의숫자가수천에서수만에이르는한국, 중국, 일본등동양권국가에서는이러한 1바이트코드체계로는자국에서쓰이는문자를수용하지못하므로이를해결하기위해다양한노력을기울여왔다. 1984년무렵부터세계모든국가에서사용하는문자를, 하나의단일한멀티바이트 (multi-byte) 코드체계로통합하려는움직임이진행되었다. 이러한멀티바이트코드체계의개발은다음과같은몇가지배경에서더욱촉진되었다. 전세계의모든문자를단일한코드체계로통합하려는움직임은크게두갈래로진행됐다. 하나는국제표준화기구 (ISO) 가추진해온 IS0 10646의제정움직임으로, 이를하나의 Universal Character Code Set이라고한다. ISO는 1980 년대이후현행서양문자표시용인 7비트규격으로는세계모든문자를하나의코드체계안에통합할수없음을인식하고멀티바이트 ( 실제로는 2바이트또는 4바이트 ) 코드로규격화하는방안을추진해왔다. 5) 5) 이와는별도로 IBM, 애플, 휴렛패커드등미국의컴퓨터업체가컨소시엄을구성하 14 프랑스어와컴퓨터
[ 표 3] 멀티바이트필요성 * 국제적으로컴퓨터의이용이일반화되고있다. * 소프트웨어의크기가커짐에따라각국버전을만들기위한변환비용이증대되고있다. * 16 비트이상 32 비트급의프로세서가일반화되고있다. * 하드웨어의가격하락으로멀티바이트문자체계를지원하는비용이크게문제되지않게되었다. * 단일한코드체계로전세계에사용되는문자및각종기호를모두표현하는시스템이필요해졌다. 유니코드는기본적으로 2바이트로서전세계에서사용되는모든문자를나타내는것을목표로하며, 65,536 자의코드영역을사용하고있다. 또한, 유니코드는정보교환뿐만아니라내부처리에도적용되는체계임을명시하고있으며, 중복되는글자는최대한통합하여모호하지않은문자집합을구성하는것을목표로하고있다. 유니코드의특성은전세계의모든언어를포함하고, 16비트의길이로효율성을높이고, 문자코드의중첩을최소화하려는것으로그이름도이러한특성에서연유하고있다. 유니코드는기본다국어문자판 (BMP, Basic Multilingual Plane) 이라고하는곳에전세계의모든문자를수용하도록하였다. 여기에는영문자, 음절문자, 표의문자, 기호및숫자등을포함하고있으며, 문자의 여추진한유니코드다. 이들회사는전세계, 특히동아시아의소프트웨어시장장악을염두에두고 16 비트코드를기본으로전세계문자를표시하려는구상을세웠다. 유니코드는 16 비트로구성되는문자공간 (65,536 자 ) 에세계각국의문자를할당하고자하였다. 이두개의움직임이별도로추진되다가 1993 년 9 월국제표준화규격인 Universal Multiple-Octet Coded Character Set(UCS) 로통일되었다. 국제표준화기구 (ISO) 의 ISO 10646 으로규정된 UCS 코드와유니코드컨소시엄의유니코드는개념상별개의것이지만, 실질적으로는같으므로유니코드라는이름으로이모두를지칭한다. 제 3 장디지털정보구현 15
특수한사용을위해제한영역을설정하고있다. 전세계모든문자를통합시켜놓은기본다국어문자판에서사용가능한 65,536 개의문자공간가운데현재한자는약 32%, 한글은약 17% 를차지하고있다. 6) 유니코드는세계각국의언어를통일된방법으로표현할수있게제안된국제적인코드규약의이름이다. 8비트문자코드인아스키 (ASCII) 코드를 16비트로확장하여전세계모든문자를표현하는표준코드이다. 아스키코드는 8비트로표현할수있는영어나라틴어권등에서는문제가없으나, 한국, 일본, 중국, 아랍등의다양한문자를표현하는데는한계가있다. 또한, 각나라마다같은코드값에다른글자를쓰는방식으로는국제간원활한자료교환이불가능하므로, 코드를 16비트체제로확장해서 65,536 자의영역안에전세계모든글자를표시하는표준안이유니코드이다. 영어를사용하는국가에서는아스키코드보다두배의공간이필요하므로일반적인통신등에서는그만큼공간이낭비되지만유니코드를이용하면프로그램을하나만만들면모든나라글자를처리할수있기때문에, 그만큼이점도크다. 11,172 자의한글을연속된공간에가나다라순서로 가 에서 하 까지를코드화하는방식이유니코드기술위원회 (UTC) 에서채택한유니코드 2.0이다. 제한된글꼴자원으로인해, 유니코드로컬은 [ 표 4] 와같은문자세트의문자모양만포함한다. 6) 유니코드의주요특징으로먼저지적할점은산스크리트어와같이현재사용하지않는문자까지를포함하는등텍스트작성에필요한모든문자를포괄한다는것이다. 그리고코드길이를 16 비트로같게함으로써명료성과효율성을높이며, 각각의부호가한개의문자만을표현하기때문에모호함을배제할수있다. 16 프랑스어와컴퓨터
[ 표 4] 나라별유니코드문자세트 ISO 8859-1 ( 영어, 프랑스어, 스페인어, 독일어와같은대부분의서유럽언어 ) ISO 8859-2 ( 체코어, 폴란드어, 헝가리어와같은대부분의중부유럽언어 ) ISO 8859-4 ( 스칸디나비아어와발트어 ) ISO 8859-5 ( 러시아어 ) ISO 8859-6 ( 아랍어 ) ISO 8859 7 ( 그리스어 ) ISO 8859 8 ( 히브리어 ) ISO 8859-9 ( 터키어 ) TIS 620.2533 ( 태국어 ) ISO 8859 15 ( 유럽기호가있는대부분의서부유럽권언어 ) GB 2312 1980 ( 간체한자 ) JIS X 0201 1976, JIS X 0208 1990 ( 일본어 ) KS X 1001: 1992 ( 한국어 ) GB 18030 ( 간체한자 ) HKSCS ( 정체한자, 홍콩 ) Big5 ( 정체한자, 대만 ) ISCII 라고도하는 IS 13194. 1991( 힌두어 ) 유니코드란지구상에존재하는모든문자를전부다표현하겠다는발상에서만들어진문자코드시스템이다. 그런데유니코드에대해서몇가지잘못알고있는경우가종종있다. 일단많은사람이오해하는부분은, 유니코드가 16비트, 즉 2바이트문자라고생각하고있다는것이다. 그래서유니코드가 0 ~ 65,535 까지의코드로모든문자를다표현하고있다고생각하는데, 사실현재정의되어있는유니코드값은이미 65,535 를초과하고있다. 이런오해는한글이나일본어, 중국어등, 아시아권을비롯한비영어권문자가 2바이트문자체계를가지고있기때문이며, 당연히유니코드도그렇다고생각한다. 이런오해는유니코드의인코딩개념이다르다는점을알지못하기때문에생긴다. 유니코드이전의인코딩방식에서는, 제 3 장디지털정보구현 17
문자코드를메모리나디스크에저장하였다. 그러나유니코드를인코딩할때는이런상식이통하지않는다. 왜냐하면, 유니코드를인코딩하는방식은여러가지가있기때문이다. 모든문자가 2바이트로인코딩되다보니, 1바이트단위로문자를읽어대는구식영어문화권의프로그램 (ASCII 만취급하는 ) 에서는유니코드로된문서를읽지못한다. 비록영어로만쓰인유니코드문서도읽지못한다. 그래서과거영어문자체계와호환되는유니코드인코딩방식이생겼다. 이것을 UTF-8이라고부른다. 7) 유니코드인코딩방식에서한글이나일본어, 중국어같은언어의문자는하나의글자가 2, 3개의바이트단위로쪼개져서저장되는수모를당하게된다. 그래서한글 가 를 UTF-8 로저장하면, EA B0 80 로변환된다. 즉, 3개바이트로쪼개져서저장된다. 어떻든, 영문만을취급하는시스템과도호환성을유지하면서, 다국어도표현할수있고, 게다가귀찮은바이트순서도고려할필요가없어서, 웹에서점차 UTF-8이널리쓰이고있다. 엄밀히말해, 유니코드와유니코드의인코딩은다른개념이다. 반면, EUC-KR 은한국에서통용되는한글, 한자그리고영문을표현할수있다. 그러나일본식한자나중국어의간체자등은표현할수없다. 또한, 프랑스어의악상이나독일어의움라우트등도표현할수없다. 다만 HTML 문서의경우 EUC-KR 도외국문자를표현할수는있다. 7) UTF-8 는유니코드의인코딩방식중하나일뿐이다. UTF-8 은이름에서도느껴지듯이유니코드를 8 비트단위로끊어서저장한다. 덕분에영어알파벳과 ASCII 에서사용되는기본적인기호문자는 ASCII 에서쓰이는것과똑같은형태로저장된다. 따라서영문으로만쓰인 UTF-8 문서는 ASCII 문자를쓰는구식시스템에서도완벽하게읽힌다. 18 프랑스어와컴퓨터
EUC-KR 에서는한글 1자가 2바이트이지만 UTF-8에서는한글 1글자가 3바이트이다. 그런데영문, 숫자, 공백이나특수기호등은 1바이트이다. 오늘날대부분의기본인코딩은 UTF-8 로지정되기때문에, 웹페이지콘텐츠가 KSC-5601 이나 EUC-KR 로제작되어있는경우, 인코딩이깨지게된다. *.txt 파일이나 *.html 파일을 UTF-8 로인코딩하면, 한페이지에전세계문자를모두표현할수있는장점이있다. 일반유니코드에서는 Null 문자가들어가기때문에인터넷문서, 즉 HTML 문서작성에적합하지않다. 인터넷에올릴 *.html 파일등을유니코드로작성할때에는 UTF-8 인코딩을따라야한다. 그런데한국어로작성된문서를 UTF-8로인코딩하면파일의용량이약간늘어나는단점이있다. 서버트래픽이제한된경우에는 UTF-8 인코딩이좀부담스러울수도있다. 그리고국내에는아직까지 UTF-8 인코딩이널리쓰이지않고대부분 EUC-KR 인코딩을쓰고있다. 그래서특수문자가깨지는문제가생기는경우가종종있다. 이런단점에도불구하고, 한국어와일본어, 중국어, 프랑스어가다양하게섞인웹문서를만들때 UTF-8 로인코딩하면편리하다. HTML 문서를 UTF-8 로인코딩하기위해서는우선 HTML 파일자체를 UTF-8 로변환해준후, [ 표 5] 와같이메타 (meta) 태그에인코딩을정의해주어야한다. EUC-KR 의경우도마찬가지다. [ 표 5] HTML 문서에 UTF-8 인코딩 <head> <meta http-equiv= Content-Type content= text/html; charset=utf-8 /> <title> 페이지제목 </title> </head> 제 3 장디지털정보구현 19
유니코드는전세계의모든문자를한꺼번에표현할수있는인코딩이다. 따라서한글도완벽하게표현할수있다. 전세계적범용성을고려하고, 미래지향적인사이트를만들려면 UTF-8을쓰는것이좋다. 유니코드는이미한글윈도우즈와같은운영체제내부에서활용되기시작했으며, 앞으로내부코드만이아니라정보교환용코드나응용소프트웨어에도사용될것이다. 종합하면, 유니코드란전세계모든문자를약 65,000 개의기본다국어문자세트로통합하여국가간의장벽을허물고자유롭고신속하게정보를공유하기위해만들어진단일코드이다. 인터넷이급속하게확산되면서국경없는정보통신시대가열려유니코드가새로운정보환경을주도하고있다. 지금까지는컴퓨터, 프린터, 소프트웨어등에서입출력하는문자체계가각국마다달랐기때문에세계적인정보업체의시장진출에일종의보호장벽구실을하였다. 데이터베이스와같은정보자원을생산, 가공, 공급하는입체에게는이와같은코드장벽이문제가된다. 8) 앞으로각국에서축적된학술용데이터베이스및정보자원이조만간유니코드로변환될것이다. 이뿐만아니라학술용자료대부분은텍스트자원의공익적특성이있어연구를목적으로한다면, 무료로사용할수있다. 특히학술정보의국제적소통이활발해지면서여러국가의연구자원이통합되고있어, 다국어데이터베이스구축사업이촉진될것이 8) 코드장벽이무너짐으로써정보산업과문화산업이이전보다더욱풍부하게발전할가능성이열렸다. 멀리내다보았을때, 유니코드환경은전지구의지적정보와자원의소통을더욱활발하게해줌으로써인류문화가향상하는데크게이바지할수있다. 현재의코드환경에서는국가별코드세트에들어있는각국의문자를동시에입출력하는것이불가능하지만, 유니코드환경에서는세계의모든문자를혼합하거나병렬적으로사용하는정보처리가쉬워진다. 20 프랑스어와컴퓨터
다. 특히디지털자료는그림, 사진, 음향등의자료와함께궁극적으로 인류문화유산데이터베이스 와같은국제적소통과협력관계가더욱늘어날것이다. 방법론측면에서는이를위한표준화와관련기술의축적문제가중요한과제로부각되고있다. 제 4 장디지털정보구축 21