더북(TheBook)

Tip ≣

일부 프로그래밍 언어에서는 문화권을 로케일(locale)이라고도 한다. 이는 문자열 정렬, 날짜/시간 표시, 테이블 위에 도구 배치 등과 같이 지역별 특정한 작업을 수행하기 위한 규칙 집합을 의미한다. 현재 운영 체제가 사용하는 것이 현재 문화권이라고 생각할 수 있다.

문화권을 이해하면 문자열 작업이 더 안전해지고 빨라질 수 있다. 예를 들어 다음과 같이 주어진 파일 이름에 .gif 확장자가 있는지 탐지하는 코드를 생각해 보자.

public bool isGif(string fileName) {
    return fileName.ToLower().EndsWith(".gif");
}

제법 똑똑한 방법이다. 문자열을 소문자로 바꾸기 때문에 .GIF 또는 .Gif와 같이 다양한 대소문자 조합이 확장자가 되는 경우를 방지할 수 있다. 문제는 모든 언어가 동일한 소문자를 가지고 있는 것은 아니라는 것이다. 예를 들어 튀르키예어에서는 I의 소문자가 i가 아니라 점이 없는 I라고 알려진 ı이다. 이 코드는 튀르키예에서 실행되지 않을 것이고, 아마도 아제르바이잔과 같은 일부 다른 나라에서도 실행되지 않을 것이다. 문자열을 소문자로 바꿈으로써, 사실 우리는 새로운 문자열을 만들고 있다. 앞에서 배운 것처럼 이는 비효율적이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.