ZIP Code vs Postal Code vs Postcode vs PIN Code: 전 세계 우편번호 차이 총정리

Bob
Bob
ENJAKORUZH

한줄 요약: ZIP Code는 미국, Postal Code는 캐나다, Postcode는 영국과 호주, PIN Code는 인도에서 사용하는 명칭입니다. 기능은 동일하게 우편물을 올바른 목적지로 라우팅하는 것이지만, 형식·문자 종류·자릿수·구분자 규칙은 나라마다 다릅니다. 국제화 주소 폼을 만들면서 이걸 전부 "zip code" 필드 하나로 처리하면, 버그의 출발점이 됩니다.

각 용어의 의미

ZIP Code (미국)

ZIP은 Zone Improvement Plan의 약자로, 1963년 USPS가 도입했습니다. 기본 형식은 5자리 숫자(예: 90210), 확장 형식인 ZIP+4는 하이픈 뒤에 4자리를 추가해(예: 90210-1234) 특정 블록이나 건물까지 좁혀줍니다.

Postal Code (캐나다)

캐나다는 A1A 1A1 패턴의 6자리 영숫자 혼합 형식을 사용합니다. 영문자와 숫자가 번갈아 나오고 가운데 공백이 들어갑니다. 앞 3자리(Forward Sortation Area)가 지리적 지역을, 뒤 3자리(Local Delivery Unit)가 구체적인 배달 구역을 나타냅니다. 숫자와 혼동되기 쉬운 D, F, I, O, Q, U는 사용하지 않습니다.

Postcode (영국)

영국 우편번호는 좀 더 복잡합니다. "영문 12자 + 숫자 12자 + 선택적 영문 + 공백 + 숫자 1자 + 영문 2자" 구조입니다. 예를 들어 SW1A 1AA(버킹엄궁)이나 EC2R 8AH이 있습니다. 공백 앞(outward code)이 지역과 구역을, 공백 뒤(inward code)가 섹터와 배달 지점을 나타냅니다.

PIN Code (인도)

PIN은 Postal Index Number의 약자로, 6자리 순수 숫자(예: 110001)입니다. 첫째 자리가 지역, 둘째 자리가 하위 지역, 셋째 자리가 분류 구역, 나머지 3자리가 해당 우체국을 가리킵니다.

국가별 비교 표

국가명칭형식길이문자 종류예시구분자
미국ZIP CodeNNNNN 또는 NNNNN-NNNN5 또는 10숫자만10001, 90210-1234ZIP+4에 하이픈
캐나다Postal CodeA1A 1A17 (공백 포함)영문+숫자K1A 0B1, V6B 3K9중간 공백
영국PostcodeA9 9AA~AA9A 9AA6-8 (공백 포함)영문+숫자SW1A 1AA, M1 1AE끝 3자 앞에 공백
호주PostcodeNNNN4숫자만2000, 3000없음
독일Postleitzahl (PLZ)NNNNN5숫자만10115, 80331없음
일본郵便番号NNN-NNNN8 (하이픈 포함)숫자만100-00013번째 뒤 하이픈
인도PIN CodeNNNNNN6숫자만110001, 400001없음
프랑스Code PostalNNNNN5숫자만75001, 13001없음
브라질CEPNNNNN-NNN9 (하이픈 포함)숫자만01001-0005번째 뒤 하이픈
한국우편번호NNNNN5숫자만03171, 06164없음

개발자가 이 차이를 알아야 하는 이유

여러 나라 사용자를 대상으로 하는 앱에서 zip_code VARCHAR(5) 하나, 숫자 전용 정규식 하나로 처리하면 대부분의 국가에서 문제가 생깁니다. 가장 흔한 실수를 정리합니다.

실수 1: 숫자만 입력 가능하게 만들기

캐나다 우편번호(V6B 3K9), 영국 postcode(SW1A 1AA) 등 영문을 포함하는 나라가 많습니다. 숫자 전용 검증 규칙은 이런 국가의 정상 주소를 즉시 거부합니다.

실수 2: 공백 제거하기

영국 postcode와 캐나다 postal code의 공백에는 의미가 있습니다. Royal Mail 주소 작성 가이드라인에 따르면 SW1A1AA처럼 공백을 빼면 엄밀히는 비표준입니다. 우편물이 도착할 수는 있지만, 엄격한 검증은 통과하지 못하고 해당 국가 사용자에게는 어색하게 보입니다.

실수 3: 고정 자릿수 강제하기

우편번호 길이는 3자리(아이슬란드: 101)부터 10자리(미국 ZIP+4: 90210-1234)까지 다양합니다. 자릿수를 하드코딩하면 예상 밖의 국가에서 유효한 코드를 거부하게 됩니다.

실수 4: 만능 정규식 하나로 해결하려 하기

모든 국가의 우편번호를 올바르게 검증하는 단일 정규식은 존재하지 않습니다. 미국 ZIP용 ^\d{5}(-\d{4})?$는 캐나다, 영국, 일본, 브라질 코드를 전부 무효로 판정합니다. 국가별 검증만이 유일하게 신뢰할 수 있는 방법입니다.

실수 5: 모든 국가에 "ZIP Code"라고 표시하기

캐나다나 영국 사용자가 이용하는 폼에 "ZIP Code"라고 적으면 혼란을 줍니다. 용어를 모르거나, 미국 전용 폼으로 오해할 수 있습니다. "Postal Code"나 "Postcode"를 범용 라벨로 쓰거나, 선택된 국가에 따라 라벨을 동적으로 바꾸는 것이 좋습니다.

데이터베이스 저장 권장사항

모든 국가를 zip_code CHAR(5) 하나에 억지로 넣는 것은 피하세요. 실무 가이드라인은 다음과 같습니다:

권장 스키마:
  postal_code VARCHAR(20)   -- 모든 알려진 형식 수용
  country_code CHAR(2)      -- ISO 3166-1 alpha-2

인덱스: (country_code, postal_code)

핵심 원칙:

  • 사용자가 입력한 원본 형식 그대로 저장 (공백·하이픈 포함)
  • 정규화(공백·하이픈 제거)는 조회 로직에서만 수행, 저장 시에는 변경하지 않음
  • CHAR가 아닌 VARCHAR 사용 — 후행 패딩이 비교 버그를 유발
  • 필드 길이는 넉넉하게(VARCHAR(20)) — 엣지 케이스와 향후 형식 변경에 대비
  • 우편번호는 반드시 country_code와 함께 저장 — 같은 문자열(예: 10001)이 여러 나라에서 유효할 수 있음

국가별 검증 전략

올바른 접근법은 국가별로 나눠서 검증하는 것입니다. 주요 형식의 정규식 참고 표입니다:

국가정규식 패턴비고
미국^\d{5}(-\d{4})?$ZIP+4 선택적
캐나다^[A-Za-z]\d[A-Za-z]\s?\d[A-Za-z]\d$공백 입력 시 선택적
영국^[A-Z]{1,2}\d[A-Z\d]?\s?\d[A-Z]{2}$복잡함, 라이브러리 권장
독일^\d{5}$항상 5자리
일본^\d{3}-?\d{4}$하이픈 선택적
인도^\d{6}$항상 6자리
호주^\d{4}$항상 4자리
브라질^\d{5}-?\d{3}$하이픈 선택적
프랑스^\d{5}$항상 5자리
한국^\d{5}$항상 5자리 (2015년 이후)

중요: 정규식은 형식만 검증하며, 실재 여부는 확인하지 않습니다. 00000은 미국 정규식을 통과하지만 유효한 ZIP Code가 아닙니다. 실재 여부 확인에는 우편 데이터베이스 조회나 검증 API가 필요합니다.

다국가 우편번호 처리를 테스트하는 법

국제 주소 지원을 구축하려면 대상 국가별 테스트 데이터가 필요합니다. 각 나라의 형식을 직접 조사하는 대신, AddressGen으로 형식에 맞는 샘플 주소를 바로 생성할 수 있습니다:

캐나다 우편번호 체계를 더 깊이 알고 싶다면 캐나다 우편번호 시스템 소개도 참고해 보세요.

국가별로 주소를 생성하면 다음을 커버하는 테스트 매트릭스를 구성할 수 있습니다:

  • 모든 문자 유형 (숫자만, 영문만, 혼합)
  • 모든 구분자 유형 (공백, 하이픈, 없음)
  • 최소 및 최대 길이
  • 엣지 케이스 (선행 0, 영숫자 교차)

개발자 구현 체크리스트

국제 주소 폼을 만들거나 점검할 때 하나씩 확인해 보세요:

  • 우편번호 필드가 영문, 숫자, 공백, 하이픈을 모두 허용
  • 필드 길이가 최소 10자 이상
  • 선택된 국가에 따라 검증 규칙이 변경됨
  • 필드 라벨이 국가에 맞게 바뀜 (ZIP Code / Postal Code / Postcode / PIN Code)
  • 저장 시 공백과 하이픈이 보존됨
  • 데이터베이스 컬럼이 VARCHAR임 (CHARINT가 아님)
  • 만능 정규식이 아닌 국가별 패턴 사용
  • 선행 0이 보존됨 (예: 미국 01001, 호주 0800)
  • 테스트 데이터가 형식 규칙이 다른 5개국 이상을 커버

자주 묻는 질문

"ZIP Code"와 "Postal Code"는 같은 건가요?

기능적으로는 같습니다. 둘 다 우편물을 목적지로 라우팅합니다. 다만 "ZIP Code"는 USPS의 미국 전용 상표이고, "Postal Code"는 국제 범용 용어입니다. 캐나다에서는 "Postal Code"가 공식 명칭입니다. UI에서 잘못된 용어를 쓰면 사용자가 혼란을 느낄 수 있습니다.

우편번호가 0으로 시작하는 이유는?

미국에서는 북동부 주의 ZIP Code가 0으로 시작합니다 (예: 매사추세츠주 Amherst 01001). 호주에서는 노던 테리토리 코드가 0으로 시작합니다 (예: 0800). 우편번호를 정수형으로 저장하면 선행 0이 날아가서 유효하지 않은 코드가 됩니다. 우편번호는 반드시 문자열로 저장하세요.

같은 우편번호가 다른 나라에 존재할 수 있나요?

네. 10001은 미국(뉴욕)과 한국(서울)에서 모두 유효한 코드입니다. 75001은 프랑스(파리)에서 유효하며, 다른 시스템에서도 그럴듯하게 보일 수 있습니다. 그래서 데이터베이스에서 우편번호는 반드시 국가 코드와 함께 관리해야 합니다.

우편번호 형식은 누가 정하나요?

각 나라의 우편 당국이 자국 형식을 정합니다. 주요 참고 자료:


본 글은 교육 및 개발 참고용입니다. 대상 국가의 최신 공식 우편 문서에서 형식을 확인하세요.