Page 27 -
P. 27

운영체제는 상대적으로 개발 기간이 길어서 한두 해 정도 늦어지는 것이 괜찮을 수 있지만,
                   일반 응용소프트웨어는 주기가 짧기 때문에 이렇게 개발하는 것은 소프트웨어 회사나 사용자
                   모두에게 손해였다.

                   그래서 마이크로소프트를 비롯한 다국적 소프트웨어 기업들이 전 세계에서 사용하는 대부분
                   의 언어들을 통합하는 문자 변환표를 만드는 작업을 하게 되고, 이렇게 탄생한 것이 유니코드
                   (unicode)이다.

                   유니코드는 ASCII나 EUC-KR처럼 코드표가 바로 인코딩 방식이 되는 형태와는 달리 문자표
                                                                                                   5
                   를 이진화시켜 저장하는 방법 즉, 인코딩 방법을 여러 가지 제공한다.
                   유니코드 인코딩 방법 중 한 가지인 UTF-16은 모든 문자를 2바이트로 이진화시키고, 컴퓨터
                   에서 정수를 메모리에 저장하는 방법에 따라 리틀/빅 엔디안(little/big endian) 형태 두 가지로                     문자열
                   또 나뉜다. 예를 들어 ‘각’을 UTF-16으로 표현하면 16진수로 AC01이다. 리틀 엔디안에서는

                   ‘각’을 01 AC 형태로, 빅 엔디안에서는 AC 01 형태로 저장한다.
                   UTF-16은 자바 프로그래밍 언어에서 사용한다. 윈도우는 내부적으로 UTF-16을 사용하지
                   만, 유니코드를 사용하지 않는 프로그램들과의 호환성을 고려해서 겉으로는 ANSI 인코딩을

                   사용하는 경우가 많다.
                   UTF-8은 유니코드 문자를 1~4바이트 길이의 이진화 코드로 변환한다. 7비트 ASCII 코드에
                   해당되는 영문 알파벳, 숫자, 특수 기호 등은 1바이트로 표현되고, 그 외의 문자들은 2~4바
                   이트로 표현된다. 한글은 주로 3바이트로 표현된다. 예를 들어 ‘각’을 UTF-8로 표현하면 16

                   진수로 EA B0 81이다.
                   최근 나온 리눅스나 맥 운영체제 등과 파이썬 3 이후 버전은 UTF-8을 사용한다.

                   운영체제와는 별개로 응용 프로그램들은 다른 문자 인코딩 방법을 사용하기도 한다.
                   한글 윈도우의 메모장 프로그램은 cp949를 기본으로 사용하고, 윈도우에서 실행되는 비주얼

                   스튜디오 코드(visual studio code) 같은 에디터는 utf-8을 기본 인코딩 방법으로 사용한다.
                   이미 언급한 것처럼 utf-8이나 cp949는 7비트 ASCII 코드와 호환성을 유지한다. 다시 말하면

                   영문, 숫자, 기본적인 특수 문자 등으로 작성한 텍스트는 인코딩 방법과 관계없이 동일하게
                   취급된다.













                                                                                     5장  문자열 │  185
   22   23   24   25   26   27   28   29   30   31   32