멜번 영사관에서 운전면허증 공증 받기

😢 이 페이지는 다음 주소로 변경될 예정입니다.

멜번에 영사관이 생겨 영사 업무를 시작했는데 한국 운전면허증 공증도 받을 수 있다고 하길래 다녀왔다. 1949년 제네바에서 체결된 「도로교통에 관한 협약」에 따라 제네바 협약국 간 운전면허를 인정해준다. 한국 호주 모두 협약국이기 때문에 한국 운전면허증과 공증 서류를 가지고 호주 운전면허증을 대신해 사용할 수 있다.

공증에 필요한 준비물은 다음과 같다.

공증 절차도 영사관 웹사이트에 잘 설명되어 있다.

멜번 영사관은 Level 10, 636 St Kilda Rd, Melbourne VIC 3004에 위치하고 있다. St kilda Rd 끝자락에 있어 시티 반대 방향 3번, 5번, 16번 트램을 타고 Union St/St Kilda Rd에서 내리면 된다. 지도에서는 St Kilda Junction 정거장이 가까운데 길 건너는 것이 불편하다. 트램 정거장에서 5분 정도 걸으면 되는 거리라 크게 멀지 않다.

멜번 영사관이 있는 636 St Kilda Rd

멜번 영사관 입구

멜번 영사관

위에서 준비해 간 양식을 제출하면 담당 공무원이 검사를 하고서(?) 인지 붙이고 도장을 찍어준다. 웹사이트에 올라온 예제대로 작성하면 담당 공무원이 틀렸다고 다시 작성하라고 얘기할 것이다. 다행히 민원용 컴퓨터가 비치되어 있어 바로 출력할 수 있지만 그래도 미리 서류를 준비하고자 하려 한다면 다음 방식으로 작성하면 된다.

  • 항목은 모두 영어로 적는다. (예제 양식에 속지 말자.)
  • 주소는 영어로 적되 영어 주소처럼 역순으로 적는다.
  • 모든 일자는 일월년 순으로 적는다. (02-11-2014)
  • 만료일은 적성검사 기간을 적는다.
  • 면허 번호의 지역명도 영어로 적는다.
  • 서명칸은 검사 다 받고 서명해야 하므로 공란으로 둔다.

잘못 작성했다고 갈구는 한국식 친절(?)을 오랜만에 경험할 수 있었고 덕분에 빠르게 문서를 발급 받을 수 있었다.

방문하지 않고도 우편으로도 가능한데 절차는 영사관 웹페이지에서 확인할 수 있다. (사이트에 게시된 내용과 다를 가능성이 높기 때문에 전화로 문의하자.)

주소 : Level 10, 636 St Kilda Rd, Melbourne VIC 3004
업무시간 : 9:00 am – 12:00am, 1:00 pm – 5:00 pm (월-금)
전화번호 : (61 3) 9533 – 3800
영사민원전화 : (61 3) 9533 – 3803/3804
기업지원담당관 : (61 3) 9533-3813
팩스번호 : (61 3) 9533 – 3801
웹사이트 : http://mel.mofa.go.kr/

PHP 클래스 자동으로 불러오기 (Autoloading)

😢 이 페이지는 다음 주소로 변경될 예정입니다.

객체 지향 프로그래밍에 익숙한 개발자라면 하나의 파일에 하나의 클래스를 작성하는 방식에 익숙할 것이다. 다만 php는 다른 언어와 같이 라이브러리를 일괄적으로 불러오는 방법이 없어 위와 같은 접근 방법으로는 require 또는 include를 이용해 수많은 단일 파일을 불러들여야만 했었다.

PHP5에서는 클래스 또는 인터페이스 등을 호출했을 때 해당 파일을 자동으로 불러올 수 있도록 여러 함수를 제공한다. 먼저 __autoload 함수를 이용한 예제다.

<?php
function __autoload($className){
  include $className . '.php';
}

$foo = new Foo();
$bar = new Bar();
?>

위와 같이 함수를 선언하면 new Foo()와 같이 클래스를 사용하는 순간 해당 클래스명으로 __autoload 함수가 실행, Foo.php 파일을 include한다.

다만 __autoload 함수는 spl_autoload_register 함수를 통해 대체될 수 있기 때문에 권장되지 않는다. spl_autoload_register는 다음과 같이 사용한다.

<?php
function my_autoloader($className){
  include 'classes/' . $className . '.class.php';
}

spl_autoload_register('my_autoloader');
?>

PSR-0 Autoloading Standard

위 함수를 통해 모듈화가 가능하도록 PHP Framework Interop Group(PHP-FIG)에서 PSR-0 Autoloading Standard가 제안되었다. 해당 제안은 다음의 규약을 포함하고 있다.

  • 네임스페이스와 클래스명으로의 자격을 갖추기 위해서는 다음의 구조를 따라야 한다. \<Vendor Name>\(<Namespace>\)*<Class Name>
  • 각 네임스페이스는 최상위 네임스페이스를 가져야 한다. (“Vendor Name”)
  • 각 네임스페이스는 필요에 따라 서브 네임스페이스를 가질 수 있다.
  • 각 네임스페이스 구분자는 파일 시스템에서 해당 파일을 불러오기 위한 디렉토리 구분자로 사용된다.
  • 클래스명에 들어있는 _ 글자도 디렉토리 구분자로 사용된다. 네임스페이스에서의 _는 특별한 의미가 없다.(PEAR 구현을 포함)
  • 완전한 네임스페이스와 클래스는 파일 시스템에서 불러올 때 .php를 접미어로 붙여 불러온다.
  • 알파벳으로 구성된 벤더명, 네임스페이스, 클래스명은 대소문자를 구분한다.

위 규약에 따른 예제는 PSR-0 문서에서 제공되고 있으며 SplClassLoader 구현도 해당 문서에서 확인할 수 있다.

다음은 문서에서 제공되는 autoload 함수 예제다.

<?php
function autoload($className) {
  $className = ltrim($className, '\\');
  $fileName = '';
  $namespace = '';
  if($lastNsPos = strpos($className, '\\')) {
    $namespace = substr($className, 0, $lastNsPos);
    $className = substr($className, $lastNsPos + 1);
    $fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
  }
  $fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
  require $fileName;
  }
}
?>

Composer 활용하기

Composer는 PSR-4 Autoloader 제안과 함께 위에서 살펴본 PSR-0를 준수하고 있어서 간단한 설정으로 PSR-0 방식을 사용할 수 있다. composer.json에 autoload 경로를 등록하면 composer의 ClassLoader와 맵핑되어 자동으로 불러온다.

{
  ...
  "autoload": {
    "psr-0": {"": "<path>/"}
  },
  ...
}

위 내용을 추가한 후 composer update 등을 통해 갱신하면 vendor/composer/autoload_namespaces.php 파일 안에 composer.json에서 작성한 경로가 추가된 것을 확인할 수 있다.

더 읽을 거리