Backends MongoDB NoSQL PHP

Windows 환경에서 MongoDB를 PHP에서 사용할 수 있도록 설정하기

이전 글 Windows에 MongoDB 설치하기를 따라서 WIndows에 MongoDB를 설치하고, 데몬을 서비스로 잘 등록하였다면, 이제 PHP에서 이를 사용할 수 있도록 해야 합니다. 여기에 관하여서는 공식문서에도 간결하게 핵심이 정리되어 있습니다. 이 포스트에서는 이러한 설치과정에 익숙하지 않은 분들을 위해 스탭 바이 스탭으로 과정을 설명합니다.

(more…)

Continue reading

Backends PHP

웹개발자를 위한 문자 인코딩 기초 #6 – UTF-32 (UCS-4)

유니코드의 값을 그대로 사용한 UTF-32

앞서 살펴본 UCS-2는 기본 다국어 평면 만을 이용하여 2바이트로 깔끔하게 떨어지는 인코딩 방식을 만들어냈지만, 나머지 평면을 표시할 수 없는 문제가 있었습니다. UTF-32는 이와 정확하게 반대의 방법으로 만들어진 인코딩입니다. UTF-32는 유니코드의 모든 문자를 표현할 수 있도록 한 글자당 32비트를 사용하는 인코딩입니다.

UTF-32는 유니코드를 알고 있는 사람들은 무척 심플하다고 생각할 수 있는 규칙을 가지고 있습니다. UTF-32에서 앞의 2바이트는 [0x00 0x00]부터 [0x00 0x10]까지 몇 번째 평면인가를 표시합니다. 또한 뒤의 2바이트는 UCS-2가 그랬던 것처럼 해당 평면의 어느 문자인지를 나타냅니다.

(more…)

Continue reading

Backends PHP

웹개발자를 위한 문자 인코딩 기초 #5 – UCS-2와 HTML Entity Number

기본 다국어 평면 만을 과감하게 선택한 UCS-2 방식

앞서 살펴보았던 유니코드의 문제점을 해결하기 위한 가장 간단한 방법은 무엇일까요. 다름 아닌 쾌도난마(快刀亂麻), 평면을 표시하기 위한 숫자가 거슬린다면 과감하게 그것을 잘라내는 것도 하나의 방법이겠지요.

UCS-2 방식이 바로 이 방법을 사용한 인코딩입니다. UCS는 국제 문자세트(Universal Character Set)의 줄임말입니다. 한편 숫자 2는 이 인코딩이 2바이트로 이루어져 있다고 하는 것을 의미합니다. UCS-2는 유니코드의 다른 모든 평면을 포기하고, 오로지 0번 기본 다국어 평면 만을 선택합니다. 사실 우리 시대에 전세계에서 사용하고 있는 거의 모든 문자는 기본 다국어 평면에 들어있으니, 일견 타당한 방법이기도 합니다.

UCS-2의 인코딩의 16진수 값들은 유니코드 기본 다국어 평면과도 완벽하게 같습니다. 유니코드에서 16진수 0xAC00로 정해진 한글 “가”는, UCS-2에서도 동일하게 [0xAC 0x00]에 배정되어 있습니다. 이렇게 유니코드에서 평면을 나타내는 숫자를 떼어버리고 나니, 1글자의 크기가 딱 2바이트로 깔끔하게 떨어지는 것도 장점입니다.

(more…)

Continue reading

Backends PHP

웹개발자를 위한 문자 인코딩 기초 #4 – 유니코드

문자별 인코딩의 한계

앞서 소개한 EUC-KR과 그 확장판인 CP949는 오직 한글 만을 위하여 만들어진 인코딩이었습니다. 그러나 컴퓨터를 사용하는 국가는 한국 만이 아닐 것입니다. 일본에서도 중국에서도, 우즈베키스탄과 인도에서도 컴퓨터는 사용되니, 그곳 문자들을 표시할 수 있는 인코딩이 매번 필요했을 것입니다.

이것은 각국의 문자 인코딩이 통일되지 못한 규칙을 가지고 만들어지는 결과를 낳았습니다. 문제는 이러한 인코딩으로 작성된 문서를 다른 인코딩으로 열어보면 읽을 수가 없다는 것입니다. 이를테면 EUC-KR 인코딩으로 “小數”라고 작성하고 저장한 텍스트 파일을, 일본에서 가장 널리쓰이는 인코딩 중 하나인 Shift-JIS로 열어보면 “盖筥”라는 전혀 다른 글자가 표시됩니다.

(more…)

Continue reading

Backends PHP

웹개발자를 위한 문자 인코딩 기초 #3 – CP949 (UHC)

EUC-KR을 확장한 한글 문자 인코딩

이전 글에서 소개한 바와 같이, EUC-KR은 자주 사용하는 2,350자 외의 한글 문자는 모두 생략해버린 문제가 있었습니다. 결국 EUC-KR이 포함하지 못한 한글 문자들을 표현하기 위한 문자 인코딩 방식이 다양하게 등장하였습니다. 그러나 그 중에서도 국내 가장 널리 보급된 것은 바로 코드페이지 949, 흔히 CP949로 줄여서 부르는 인코딩 방식입니다.

CP949는 Microsoft에서 Windows 95에 처음 도입하였던 인코딩으로, 도입 당시에는 Windows에서만 사용되었기 때문에 반발이 많았습니다. 그러나 이후 Windows가 한국의 OS 시장을 장악하면서 현재는 거의 EUC-KR을 대체한 상태입니다. 심지어 대부분의 웹 브라우저에서 EUC-KR로 표시된 인코딩 옵션은 사실은 CP949 인코딩을 가리킵니다.

CP949는 확장완성형(UHC, Unified Hangul Codeset)이라는 또다른 이름을 가지고 있습니다. 완성형인 EUC-KR에서 표현하지 못했던 글자까지 인코딩 영역을 확장했다는 의미로 보입니다. 2가지의 이름은 보통 비슷한 빈도로 섞여서 사용되고 있습니다.

(more…)

Continue reading