태그 보관물: 해외

페낭 정착기

한국에서 페낭으로

한국에서 말레이시아 페낭으로 가는 직행 비행기가 없었기 때문에 쿠알라룸프르를 거쳐 페낭으로 가는 비행편을 구했다. 아침에 출발하는 비행기가 있기는 했지만, 두시간 전에 나와서 수속을 마치려면 가족과 제대로 인사도 하지 못할 것 같아서 오후 4시에 출발하는 비행기를 골랐다. 여기까진 좋았는데, 울먹이는 가족의 배웅을 뒤로 하고 타고 온 오후 비행기는 다음 연계되는 편이 8시간이나 떨어져 있어서 8시간동안이나 공항에서 버텨한다는 사실을 그다지 심각하게 고려하지 않았었다. 비행기 안에서 충분히 자 두면 밤샘 쯤은 식은죽 먹기일 거라며…

쿠알라룸푸르에 내려서 페낭가는 비행기로 환승하려고 갔더니 입국심사하는 아저씨가 한 번 들어가면 나올 수 없다면서 아직 시간 엄청 많이 남았는데 정말 들어 갈 거냐고 물어 본다. 배가 고팠다. 지난번 기억으로는 안에 가게들도 별로 없었기에 나중에 다시 오겠다고 하고 다시 KLIA2 공항으로 쪽으로 나왔다.

KLIA2는 마치 해외 자본의 각축장인것 같다. 이렇게 크게 지어 놓은 건물의 대부분이 외국계 프렌차이즈나 편의점들로 가득차 있어서 한국의 여느 동네와 같은 익숙함이 느껴진다. 심지어 요즘엔 한국에서 안보이는 패밀리 마트도 있다. 돈을 내고 가계로 들어가지 않으면 마땅히 앉아 있을 곳 마져 없는 이 공항에서 스타벅스에 들어가서 좀 앉아 있고 싶었지만, 커피를 줄이 려고 마음먹은 터여서 버거킹에서 햄버거를 먹으며 시간 보낼 곳이 없는지 여러곳을 검색해 봤다.

일전에 쿠알라룸프루 공항에서 아침까지 버티다가 에어로라인 버스를 타고 페낭으로 가는 여정을 고려했을때, 이 공항 안에 있는 저렴한 컨테이너 호텔에서 몇시간 자다가 출발하는 것을 생각했었기 때문에 혹시나 한 3시간정도 잘 수 있는 방이 있는지 확인해 봤는데 3명이서 쓰는 12시간 짜리 방밖에 남은게 없었다. 게다가 가격이 대략 10만원정도나 하기 때문에 다른 곳을 찾다가 시간당 가격은 더 비싸지만, 2시간에 5만원 정도하는 플라자 프리미엄 라운지가 있어서 물어보니 방이 다 찼단다. 8시간을 너무 만만히 보고 아무 예약도 하지 않은 안일한 내 탓이다.

시간이 흐르자 문을 닫는 가게들이 많아지고, 맥도날드가게 안에는 햄버거 하나 시켜서 먹고 불편한 의자에 널부러진 사람들이 보이고, 스타벅스에는 이미 의자에 앉아서 잠든 사람들도 더이상 자리가 없고, 왠만한 기둥의 콘센트들을 중심으로 서로 낯선 여행객들이 옹기종기 둘러앉아 충전을 하면서 각자의 핸드폰을 쳐다보는 풍경이 벌어진다. 나도 사람이 없는 충전기 기둥을 하나 찾아가서 핸드폰을 충전하고 핫스팟을 켰는데, 사람들이 하나 둘 모여들더니 어느새 이 근처는 부랑자 합숙소 마냥 땅바닥에 널부러져서 시간을 보내는 장소가 되었다.

호텔(?) – Econtel

지역과 금액만 정해지면 페낭에서 집구하기는 한국만큼 어렵지는 않다는 인터넷에서 주워들은 말만 믿고 2주안에 집을 구하고 그 안에 checkout 하겠다며 agoda.com에서 싼 호텔을 찾아 다니다가 걸린게 Encotel 이라는 호텔이라는 이름의 값싼 모텔이었다. Agoda의 평점은 형편 없었지만 싼 가격에라도 비싼 수준의 서비스를 바라는 사람들의 심보가 반영된 때문일 거라고 생각하고 2주치를 선불결제 했다.

주차할 자리가 모자라서 이중 삼중 주차를 하는 상가 주차장을 이 호텔이 함께 사용한다는 것과 그나마도 시간당 1링깃의 주차비를 지불해야 한다는 것(5시간 이상은 5링깃) 간신히 잡은 세마리의 모기와 수도 없는 개미들, 제대로 잠기지 않는 문과 방충망이 없음에도 닫히지 않는 창문, 침대 하나와 화장실로 꽉 차는 좁아터진 방을 경험하기 전까지는 말이다.

사실 주차장은 내 가장 큰 걱정 거리 이기도 했어서, Google street view로 이 호텔의 주차장 입구를 미리 확인했을 때는 안심했었는데 그게 바로 옆에 붙어 있는 세배 비싼 다른 호텔의 주차장 이었을 줄이야… 엘리베이터도 없는 계단을 30kg이 넘는 짐을 들고 옮긴 다음에 혹시나 하는 마음으로 예정보다 일찍 체크아웃 하게되면 남은 돈은 돌려 줄 수 있는지 카운터에 물어 봤다. 원래 자기네 정책상으로는 되는데 내 경우는 Agoda를 통해서 계약 했으니 그쪽으로 물어 보라고 한다. Agoda에서 보내주는 확약 메일에는 다음과 같은 내용이 있는데 “체크인 14일 이내에 취소하면 결제 요금 전체가 수수료로 부과 됩니다. No show하면 환불 불가합니다.” 다시말해 전체 요금을 모두 선불한 내 경우는 국물도 없다는 거다.

연휴 기간에 집구하기

멋도 모르고 음력설 연휴기간을 끼고 입국 했더니 부동산 agent들이 연락을 안받는다. 중국계가 많은 이 지역에서도 음력 연휴는 큰 명절기간이다. iProperty.com하나면 모든게 해결될 거라고 기대했던 내 얄팍한 계획이 현실의 벽앞에 좌절되고 있었다. 페낭관련 카페에서 활동한다는 한국분의 연락처를 찾아서 급한 마음에 연락을 했더니 바로 다음에 세채의 집을 보여주겠다고 연락이 왔다. 아니 두개의 쓰레기와 집 한 채라고 하는게 맞겠다. 급한 연락에 애써 준건 고맙지만 혼자 있을 집이니까 안 커도 된다고 말했음에도 굳이 방이 3개나 있는 낡은 집들을 보여주고나서 마지막에야 신축한 집을 보여주는건 일종의 판매 전략인건가?

마지막으로 본 집은 새로 지은 콘도의 스튜디오 룸이어서 크지도 않고 방도 깨끗해서 보자마자 마음에 들었는데 어디서 들은 건 있어서 월세 100링깃을 깎으려고 시도해 봤더니 의외로 바로 먹혔다. 더 불러 볼걸 그랬나… 하지만 사실은 연일 계속되는 개미와 모기의 협공으로 하루라도 빨리 호텔을 탈출하고 싶은 마음 뿐이어서 안깎아 준다고 했어도 덥썩 물었을 것이다. 집주인 잘 만나는게 중요하다는 말을 여러번 들었는데, 한국에서 일한 적이 있었다는 이 젊은 중국계 부부는 무척이나 호의적인 사람들이었다.

다만 그 후에 이 집에서 생활하면서 깨달은게 있는데, 페낭 섬에서 바다가 바로 보이는 view가 멋있지만 낮 동안 받는 태양 빛이 너무 많아서 에어컨 없이는 생활이 불가능 할 정도이다. “일조량이 좋은” 집이 좋다는 건 거의 평생을 북위 38도 근방에서 살아온 나의 편견이었다.

Otterbox defender 해외 주문

IPhone5로 바꾸고 부터는 마음에 드는 케이스가 너무 많아서 탈이다.
지난 번 미국 출장 중에 AT&T shop에서 몇 번을 들었다 놨다 했던 Otterbox Defender가 눈에 띄어서 찾아보니  한 쇼핑몰에서 69,000원에 팔고 있었다.

otter-box

반면 Amazon에서는 IPhone6 때문인지 할인된 가격으로 파는 업체들이 꽤 보였다. Jawbone UP 24때 쌩쑈한 추억 땜에 좀 찜찜하긴 했지만 ‘케이슨데 또 그럴일은 없겠지’ 생각을 하는 중에 정신을 차려보니 결제 확인 창이 보이고 있었다. $7.46에 국제배송 된다는데, 지난번에 배대지에서 500g짜리 받는데 $11든거 생각 하면 그리 비싼것도 아닌것 같다.

amazon_order_otterbox_defender

물론 도착하는데 영업일로 9~12일 걸린다.
내년에나 받을 수 있겠군…

해외구매 Jawbone UP24의 사망과 교환 받기

UPDATE: 이 Jawbone UP24는 교품 받은지 4개월 만에 결국 다시 사망했습니다. 저 비용 들여서 다시 미국에 보내기에는 배보다 배꼽이 더  커질것 같아서 사용을 포기하기로 했습니다. 가격이 싸다고 해외구매를 생각하고 계시다면 신중하게 생각하세요. 이 제품은 일반적인 사용에도 고장이 잘 납니다.

2014년 10월초 내가 출장을 나갈 무렵만 해도 Jawbone UP 24의 면세점 판매 가격은 $179 미국 판매 가격은 $129였다.  $50이면 큰 차이라고 생각했기에 CA 도착하자 마자 Fry’s를 찾아가서 큰 맘 먹고 질렀는데, 문제는 귀국한 후에 생겼다. 이 녀석이 출근 시간에 걸었던걸 제대로 인식하지 못하고 “너 30분 동안 뭐 한거 같은데 그게 뭐였어?”하고 묻는 현상이 몇 번 반복되더니 급기야 어느 날은 8일 간다는 battery가 불과 3일 만에 떨어져 버렸다. 그렇게 조금씩 치매를 앓던 녀석이 햇님/달님 light가 번쩍이더니 (Lost clock 증상) phone과 동기화가 자주 떨어지는 등 이상한 짓을 하기 시작했다.

JawboneUP24_black인터넷을 찾아 보니 soft/hard reset을 하는 친절한 방법들과 더불어, “Jawbon UP은 QC가 개판이다”, “6번 교품 받아 보고 포기했다” 등등의 사기전에 봤어야 할 글들이 무수히 많이 있었다. 혹시나 하는 마음으로 메일을 보내봤는데 Jawbone에서는 흔쾌히 교환해 주겠다고 했다.

미국 거주라면 무료로 교품을 반송할 수 있겠지만 한국에서 받으려면 배대지 비용 (11,000원)과 교품 반송 비용(원래는 55,000원 / 회사 할인으로 23,000원)으로 3만원 좀 넘게 들었다. 그리고 블프 등이 겹치면서 시간도 약 한달 정도 걸렸으니까, 정말 미국에서 사는게 이득이었나 생각이 든다. 게다가 그새 새로운 모델이 나오면서 가격은 $99로 떨어졌으니… 😐

11월 23 ~ 26일  – Customer support 문의 및 교품 결정
12월 5일 교품 발송됨
12월 11일 배대지 도착 – 요금 11,000원
12월 19일 한국 도착
12월 23일 고장품 발송 – 요금 23,000원

* 외국에서 전자 제품 살 때는 신중할 것!

파일 전송속도와 삼바를 mount하기

해외 출장중에 한국에서 1.5GB가 넘는 대용량의 파일을 자주 끌어와야 할 상황이 생겼다. 한국에 있는 서버에 파일을 올려두고 몇 가지 시험을 해봤더니 FTP가 SMB보다 대략 4배 이상의 속도가 빠르다고 측정 된다. 그래봤자 450KB/s이긴 하지만, 산술적으로 계산해서 SMB로 4시간 걸리는게 FTP로 1시간에 된다는 것이니까 이득은 있다.

FTP(450KB/s) > SFTP/SCP(260KB/s) > SMB (100KB/s)

문제는 SMB를 제공하는 서버에서 FTP service를 제공하지 않는다는 것이다. smbget 등의 명령어로 다른 서버로 옮긴 다음에 이것을 다시 FTP로 끌어오는 방안이 있기도 했지만 무척 번거롭다. 가장 간단한 것은 서버 관리자가 FTP service를 설치해 주는 건데…

하지만 요청했더니 역시나 담당자는 이 서버가 “Storage 전용 장비여서 FTP를 설치할 수 없다”고 회신해 왔다. 사실 Storage 전용장비면 SMB는 service할 수 있고 FTP는 service할 수 없다는 게 이해되지는 않지만 중요한건 못해 주겠다는 거…

그러면서 생각지 못했던 단서를 하나 남겨 줬는데, FTP가 service되는 다른 서버에서 SMB를 mount해서 FTP service를 제공하면 되지 않느냐는 제안이었다. (IT 아저씨 떙큐!)

인터넷을 뒤적이고 몇번 삽질을 해서 이렇게 하면된다는 걸 알게됐다.

$> sudo mount -t cifs //SERVER_IP/PATH  /MOUNT_POSIITON -o username= USER_ID,codepage=949,iocharset=utf8,password=USER_PASSWORD,domain=USER_DOMAIN_NAME

FTP server가 SMB와 같은 위치에 있는 것이어서 SMB->FTP간의 전송속도는 크게 영향을 받지 않는 모양이다. 처음에 측정했던 450KB/s가 그대로 나오고 있었다. 야호!

하지만 FTP를 제공하는 server가 공개된 것이라면 이 방법을 쓸 때 조심해야 한다, mount command로 mount된 파티션과 옵션들을 볼 수 있는데 이때 도메인에 가입된 USER_ID 와 USER_PASSWORD가 노출되기 때문이다.

저걸 보고 나쁜짓 할 사람이 있겠는가 만은 기분은 좀 찜찜하다. mount 명령어에서 passwd option은 좀 가려주면 안되나 싶기도 하고… 어쨌든 출장 끝나고 unmount 해야겠다.

Repo mirroring

한국과 미국 처럼 거리상으로 멀리 떨어져 있는 경우, 한쪽에서 source를 sync하기 위해서는 시간이 너무 많이 걸린다. Mirror를 설정하고 주기적으로 source를 sync 해 오도록 하면 시간과 load를 줄일 수 있다. 다음은 Ubuntu 10.04 LTS 기준으로한 repo mirror server 설정방법에 대해 설명한다.

1. Git daemon 설정
: xinetd를 설치하고 git-daemon을 설정한다.

$> sudo apt-get install xinetd
$>sudo vi /etc/xinetd.d/git-daemon

service git
{
        disable = no
        type            = UNLISTED
        port            = 9418
        socket_type     = stream
        wait            = no
        user            = nobody
        server          = /usr/bin/git
        server_args     = daemon --inetd --export-all --base-path=/public/gitmirrors/
        log_on_failure  += USERID
}
$> sudo /etc/init.d/xinetd restart
혹은
$> sudo service xinetd restart

 

2. Mirror repository 만들기
: 외부에서 접근할 공간을 생성하고 mirror를 만든다.

$>sudo mkdir -p /public/gitmirrors/
$>chmod 777 /public/gitmirrors/
$>mkdir /public/gitmirrors/PROJECT_TOP_DIR
$>cd  /public/gitmirrors/PROJECT_TOP_DIR
$>repo init -u ssh://USER_ID@SERVER_ADDRESS_AND_PORT/platform/manifest.git -b <BRANCH_NAME> --mirror
$>repo sync

 

3. Fetching address 변경
: manifest.git을 변경시켜서 새로운 branch로 server에 push 한다.

먼저 manifest.git을 cloning 해오자

$> mkdir ~/temp/manifest
$> cd ~/temp/manifest
$> git clone /public/gitmirrors/PROJECT_TOP_DIR/platform/manifest.git

default.xml의 fetch address를 변경해서 mirror에서 받아오도록 수정한다.

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote name=REMOTE_NAME fetch="git://MIRROR_SERVER_ADDR/PROJECT_TOP_DIR" review=REVIEW_SITE_ADDR />

...

수정된 default.xml을 새로운 branch에 push 한다.

$>git checkout -b  MIRROR_BRANCH_NAME
$>git add .
$>git commit -m "Updated fetch URL to mirror"
$>git push origin MIRROR_BRANCH_NAME

 

4. Client에서 mirror로 부터 source sync 하기

repo init할때 mirror branch를 명시한다.

$> repo init -u git://MIRROR_SERVER_ADDR/PROJECT_TOP_DIR/platform/manifest.git -b MIRROR_BRANCH_NAME
$> repo sync

 

5. 주기적인 sync를 위한 crontab과 sync script 작성

$> crontab -e
# m h  dom mon dow   command

# 매시 00분 마다 repo sync를 수행
0 * * * * ~/bin/cron_repo_sync.sh

repo sync script
: 호출될 때마다 mirror directory에 있는 내용들을 본국에서 송환해 온다.

#!/bin/bash
# cron repo sync script.
# Syncs all mirrors under the PUBLIC_REPO_DIRS_ROOT. - skywriter

PUBLIC_REPO_DIRS_ROOT="/public/gitmirrors/"
REPO_PATH="/usr/local/bin/repo"

sync_cmd="$REPO_PATH sync -j20"
repodirs=`ls ${PUBLIC_REPO_DIRS_ROOT}`

echo "start syncing"
for repodir in $repodirs
do
  echo "syncing [$repodir] at `date`"
  cd ${PUBLIC_REPO_DIRS_ROOT}$repodir/
  $sync_cmd 2>&1
done
echo "done at `date`"