Yearly Archives: 2015

날짜 표기 국제 표준은 무엇일까? (14)

지난 12회에서 국가별, 로케일별로 날짜 표기 형식이 매우 다르다는 것을 보았다. 하지만 이런 방식을 따르기만 한다고 해서 날짜 표기 형식 문제가 모두 해결되는 것은 아니다. 시스템에서 제공하는 날짜 표기 형식이 실제로 해당 국가에서 오류라고 생각할 수도 있고, 입력 시 사용자의 실수로 인한 혼동도 무시 못한다. 그래서 국제화가 잘 된 소프트웨어에서는 날짜 형식에 대해서 조금 더

By |2020-07-13T10:39:21+09:006월 26th, 2015|Blog|0 댓글

멀티유저 국제화 소프트웨어 만드는 방법 (13)

소프트웨어 아키텍처는 창의력의 산물이기 때문에 정답이 있는 것은 아니지만 몇 가지 소개를 하려고 한다. 다시 한번 강조하지만 국제화가 잘 된 소프트웨어의 아키텍처 원칙은 다음과 같다. “하나의 소스코드, 한번의 빌드, 하나의 팩키지”     나라별로 별도의 소스코드를 관리하고 별도로 빌드를 하거나 제품이 각각 따로 나온다면 이를 관리하기 위해서 열배, 백배의 노력을 들여야 한다. 국제화된 소프트웨어는 크게 “싱글 로케일”과 “멀티 로케일”로

By |2020-07-13T10:39:37+09:006월 26th, 2015|Blog|0 댓글

01/02/03는 며칠일까? (12)

오늘은 날짜 표기에 대해서 다뤄보자. 날짜 표기 형식도 나라마다 다르다. 그런데 많은 소프트웨어들이 국가별, 로케일별로 다른 날짜 표기 형식을 제대로 처리하지 않아서 특정 국가에서 불만이 커지거나 잘못 사용되는 사례도 빈번하게 발생한다. 심지어는 날짜 표기를 제대로 고려한 소프트웨어에서도 입력의 복잡함과 모호함으로 문제가 발생하곤 한다. 국제화된 소프트웨어를 개발하는 개발자라면 날짜 형식을 다루는 지식과 노하우는 어느 정도 보유해야 한다.

By |2020-07-13T10:41:08+09:006월 26th, 2015|Blog|0 댓글

바이트 순서와 BOM이 이렇게 복잡해진 이유 (11)

오늘은 BOM(Byte Order Mark)에 대해서 알아보려고 한다. BOM은 바이트 순서를 나타내는 표식이고 바이트 순서뿐만 아니라 이 파일이 어떤 인코딩을 사용했는지도 나타낸다. BOM이 생겨난 사연에 대해서 알아보자. 개발자라면 모두 알고 있겠지만 CPU마다 바이트 순서가 다르다. 바이트 순서를 선택할 수 있는 CPU도 있다. 0x1234는 0x12, 0x34라고 표시하는 것이 자연스럽다. 이런 순서를 빅 엔디언(Big-endian)이라고 부르며 초창기 대부분의 CPU는 이런 아키텍처를 사용했다. 하지만

By |2020-07-13T10:41:39+09:006월 26th, 2015|Blog|0 댓글

개발자를 조삼모사식 원숭이 취급하기

소프트웨어 회사에서 성과 위주의 치열한 내부 경쟁 강요는 단기적인 성과는 낼 수 있을지 몰라도 개발 문화와 기업 문화를 망친다. 그 결과 장기적으로는 오히려 혁신을 못하고 경쟁력이 약화된다. ​ 많은 회사의 경영진은 성과에 따른 차등 보상을 통해서 개발자들의 의욕을 고취하려고 한다. 명백한 차등 보상을 통해서 너도 높은 성과를 내서 보상을 받으라고 독려하곤 한다. 이를 위해서 기본

By |2020-07-13T10:42:03+09:006월 26th, 2015|Blog|0 댓글

123.456이 무엇으로 보이는가? (10)

123.456 숫자를 보면 우리나라 사람들은 대부분은 123에 소수점을 찍은 후 0.456이 추가된 것으로 생각을 할 것이다. 하지만 독일사람에게 123.456을 보여주면 뭐라고 생각할까? 독일에서 ‘.’은 천단위 구분자다. 그래서 123.456은 123456과 같은 숫자다. 만약에 123.456톤 원자재를 주문하면 어떻게 될까? 원래 의도보다 1000배많은 물량을 주문한 결과가 된다. 이런 것이 처리가 안된 소프트웨어를 과연 독일에 팔 수 있을까? 그럼 독일이 이런 것을

By |2020-07-13T10:42:40+09:006월 26th, 2015|Blog|0 댓글

유니코드 인코딩이 이렇게 복잡하게 된 사연 (9)

유니코드 인코딩의 종류는 UTF-1, UTF-5, UTF-6, UTF-7, UTF-8, UTF-9, UTF-16, UTF-18, UTF-32, UTF-EBCDIC, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE와 같이 다양하다. 지금은 사장된 것들도 있지만 초급 개발자에게는 여간 헷갈리는 것이 아니다. 애초에 ASCII가 아니고 유니코드를 사용했다면, 특히 4바이트 유니코드를 사용했다면 지금과 같이 수많은 유니코드 인코딩 때문에 헷갈거나 변환을 해야 하는 번거로움은 없었을 것이다. 현재와 고대 문자만 표현한다면 3바이트로도

By |2020-07-13T10:43:59+09:006월 26th, 2015|Blog|0 댓글

한국어(한글) 코드 이야기 (8)

  유니코드에 대해서 좀더 알아보기 전에 한국어 코드(문자세트)와 인코딩에 대해서 좀더 알아보자. 1991년에 유니코드가 탄생한 후에 유니코드는 점점 많은 개발자들이 사용하기 시작해서 영역을 넓혀가고 있다. 물론 언젠가는 유니코드로 통일되는 시기가 올 수도 있겠지만 아직까지는 한국어만 해도 여러 문자세트와 인코딩이 공존을 하고 있고 소프트웨어 개발자에게는 여간 귀찮은 일이 아닐 수 없다. 이에 대해서 잘 알고 있고

By |2020-07-13T10:44:26+09:006월 23rd, 2015|Blog|0 댓글

유니코드 영토 전쟁의 승리자는? (7)

이번에는 유니코드의 코드 체계에 대해서 간단하게 알아보고자 한다. 소프트웨어 국제화를 필요로 하는 개발자라면 자주는 아니지만 유니코드 내부 코드 체계를 알아야 할 때가 있다. 다양한 플랫폼에서 개발을 할 때 폰트 등과 관련하여 문자가 깨지는 등 복잡한 문제에 봉착할 수 있다. 이때 유니코드의 체계의 원리를 아는 것은 문제를 해결하는데 도움이 될 것이다. 지구상의 문자를 모두 하나의 문자 코드에

By |2020-07-13T10:44:48+09:006월 16th, 2015|Blog|0 댓글

유니코드는 어떻게 탄생했을까? (6)

소프트웨어 국제화를 이해하기 위해서는 유니코드에 대해서 필수적으로 잘 알아야 한다. 유니코드란 말을 들어보지 않은 개발자는 없지만 관련 용어가 매우 많아서 종종 헷갈린다.  게다가 유니코드가 탄생한지 20년도 더 넘었지만 아직도 세상은 유니코드로 통일이 되지 못하고 수많은 문자세트가 넘쳐나고 소프트웨어를 개발하다보면 수시로 문자가 깨지고 문제가 발생한다. 그래서 유니코드를 비롯해서 문자세트와 인코딩에 대해서 간단하게 알아볼 기회를 가지려고 한다. 먼저,

By |2020-07-13T10:45:06+09:006월 9th, 2015|Blog|0 댓글