태그 보관물: 해외

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`"