달라진 동미참 예비군 훈련

예비군 4년차인 올해에는 과중한 업무와 하계휴가 일정으로 동미참 훈련을 2번 연기하고 마지막 차수에 참가하게 되었습니다. 덕분에 10월 6일부터 바뀐 훈련 방식을 경험하게 되어서 간단히 공유하고자 합니다.

작년까지는 우수 분대로 선정되거나 사격에서 탄착군 형성에 성공해야 조기퇴소가 가능했는데, 이제는 개인별로 당일 짜여진 훈련과목에서 모두 합격 판정을 받으면 조기퇴소 할 수 있습니다.

훈련 방식을 요약하면,

  • 분대장이 개인별 합격/불합격 결과를 기록할 수 있는 종이를 들고 다닙니다.
  • 분대장 통솔하에 정해진 순서없이 대기열이 적은 훈련과목을 선택하여 훈련을 받습니다.
  • 훈련이 끝나면 모든 훈련 과목에서 합격한 사람은 퇴소 절차를 밟습니다.
  • 비합격 과목이 있는 사람은, 해당 과목 훈련장으로 이동하여 추가 훈련을 받고 확인 도장을 받아야 귀가가 가능합니다.

오늘은 사격, 시가지 전투, 화생방, 구급법을 훈련하는 날이었는데, 조기퇴소 여부를 가른 훈련 과목은 사격이었습니다. 7cm 원 안에 6발 중 4발이 들어가야 합격입니다. 예전에는 탄착군 형성에 실패해도 우수분대로 선정되면 조기퇴소가 가능했는데, 이제는 집에 일찍가려면 사격도 성공해야 하기 때문인지, 3년 동안 한 번도 성공하지 못한 저를 포함해서 많은 사람들이 합격하는 모습을 보여 주었습니다.

시가지 전투나 구급법은 거의 대부분 합격이었는데 또 하나의 복병은 화생방이었습니다. 방탄모를 쓰고 한 손에 방독면을 들고 서있는 상태에서, 10초안에 무릎앉아 자세로 방탄모를 무릎에 끼고 방독면을 완벽하게 착용하고 일어나서 다시 방탄모를 써야 하는데, 방독면의 단추를 채결하지 못하는 경우가 많아서 1차 시도에서는 실패하는 경우를 많이 보았습니다. 2번의 기회를 줍니다.

개인별로 측정하는 방식이 처음에는 마음에 들지 않았는데, 제대로 훈련한다는 측면에서 그리고 예전보다 귀가시간이 빨라졌다는 측면에서 긍정적인 변화라는 생각이 들었습니다. 마지막 차수라 사람이 적어서 그럴 수도 있겠지만, 오전에 모든 훈련을 마치고 2시 30분에 조기퇴소해서 3시에 집에 도착해서 쉴 수 있었습니다. 추가 훈련을 받은 경우에도 예전보다 귀가 시간이 빨랐을 것 같습니다.

지금 당장 도서관으로 가라

KOR9788976041036

집 근처 흥덕도서관에 갔다가 제목에 끌려 읽게된 책입니다. 독서를 멀리한지 오래 되었지만 다시 시작해야겠다는 마음을 먹고 있어서 그런지 제목을 보고 지나칠 수 없더군요. 2002년부터 독서토론모임 “리더스 클럽”을 이끌고 있는 저자는 이 책을 통해서 왜 우리가 책을 읽어야 하는지에 대해서 끊임없이 설득하고 있습니다. 이 책에 인용된 책들의 수만 세어보아도 저자가 독서를 얼마나 중요하게 생각하는지 알 수 있었습니다. 소개된 책들을 저의 독서 목록에 넣는 재미도 쏠쏠했고요.

저자가 경험한 사람들 그리고 저자가 읽었던 책으로부터, 책이 우리에게 주는 가치를 설명하고 독서를 권유합니다. 그리고 책으로부터 정수를 뽑아내는 방법을 설명하기도 합니다. 인용된 사람들과 이야기들 그리고 책을 대하는 자세와 방법들은 이미 다른책에서도 많이 접했던 내용이었지만, 스스로 경쟁력을 상실해가고 있다는 위기의식을 가지고 살아가고 있고 이를 극복하기 위한 첫 번째 단추로 독서를 생각하고 있는 저에게는 소중하게 다가왔습니다.

엔지니어로서 기술적인 깊이를 더할 수 있는 것도 책이요, 미래의 리더가 되기위해서 필요한 통찰력을 기르기 위해 필요한 것도 책입니다. 그리고 한 가정의 가장으로서 가계를 현명하게 운영하기 위한 경제적 지식을 공부할 수 있는 것도 책입니다. 책을 읽지 않는 사회에 살면서 책을 읽는다는 것은 어쩌면 행운일지 모르겠습니다. 남과 다른 경쟁력을 비교적 쉽게 갖출 수 있다는 이야기가 될테니까요.

인생을 돌아보면 열심히 책을 읽었던 시기가 있었습니다. 유년기에는 부모님이 사주신 위인전 전집을 열심히 읽었고, 고등학생때에는 조정래 작가님의 아리랑, 태백산맥을 읽었습니다. 그리고 대학원 시절에는 1년에 100권 읽기를 목표로 독서에 정진했던 기억이 납니다. 독서를 열심히 하던 시간들이 있었기에 지금에 제가 있었다는 생각을 다시 해보면서, 앞으로 펼처질 시간들을 조금 더 의미있게 살아가기 위해 독서에 정진해야겠다는 다짐을 가져봅니다.

싱가포르에서 말레이시아 조호프리미엄아울렛(JPO)에 다녀오기

싱가포르 여행 마지막 날에는 버스를 타고 국경을 넘어 말레이시아 조호바루 지역에 위치한 Johor Premium Outlets에 다녀왔습니다. 인터넷에 잘 정리된 정보가 없어서 여기에 남깁니다.

출발하기 전에 여권과 싱가포르 입국할때 작성한 입국카드를 준비합니다.

부기스역 근처에 위치한 Queen Street Bus Terminal에서 티켓(현금 2.5 S$)을 구매 하고, CW2 버스에 탑승합니다. 170번 시내버스를 이용할 수도 있지만 좌석버스 CW2가 빠르고 쾌적합니다. 티켓은 나중에 출국 심사 후 다시 탑승할 때 필요하므로 잘 보관해야 합니다.

30~40분 정도 달리면 Woodlands Checkpoint에 도착합니다. 여기서 출국심사를 해야하므로 모든 사람들이 버스에서 내립니다. 출국심사대에서 싱가포르 입국시 작성했던 카드를 제출하게 됩니다. 출국심사를 마치면 다시 CW2 버스에 탑승해야 합니다. 티켓을 보여주면 추가비용없이 다시 버스를 이용할 수 있습니다.

버스에 탑승하여 바다를 건너는 길을 지나면 말레이시아에 도착하게 됩니다. 국경을 넘자마자 도착하는 건물에서 말레이시아 입국심사를 받게 됩니다. 여권만 건네주면 질문도 없이 입국심사는 끝납니다.

IMG_20140923_124216

입국심사를 마친 건물에서 구름다리를 건너면 JB Central로 갈 수 있습니다. 표지판을 보고 잘 따라가시면 됩니다. 1층 버스 터미널에서 JPO로 가는 버스 JPO1을 타면 됩니다. 여기서 레고랜드로 갈 수 있는 버스도 탈 수 있는데 노선 정보는 다음 링크를 참조하세요.

IMG_20140923_130901

IMG_20140923_142751

JPO1의 배차간격은 2시간 30분이니 시간표를 잘 보고 일정을 짜야합니다. JPO1을 타고 가고 오는 길에 정류장이 꽤 많은데, 어린 학생들을 포함해 현지인들도 많이 타고 내려서 짧은 시간이었지만 말레이시아의 분위기를 느껴볼 수 있어 좋았습니다.

IMG_20140923_183903

다시 JB Central에 돌아왔을때는 익숙해져서인지 나름 여유가 생겨서 말레이시아 스타일 봉지커피로 더위를 달랬습니다.

다시 싱가포르로 돌아올때는 얼떨결에 CW5 버스를 탔는데 여행 첫날 칠리크랩을 먹었던 Newton Food Centre에 내려주더군요. CW2, CW5 등 Causeway Link 회사의 버스 노선은 다음 링크를 참조하세요. 북쪽에 숙소를 두고 있는 분들은 CW2를 타고 멀리 부기스까지 갈 필요 없이 Newton까지 운행하는 CW5를 타셔도 괜찮을 것 같습니다.

신혼여행에서 즐긴 음식들

스페인 바르셀로나

카푸치노

IMG_1491

핀초스

IMG_0238

샹그리아

IMG_0452

빠에야

IMG_0455

보케리아시장 해산물구이

IMG_1623

보케리아시장 컵과일

IMG_0489

El Rey De La Gamba

IMG_0649

English Breakfast

IMG_1664

프랑스 카르카손

IMG_0722

IMG_0720

IMG_0817

IMG_0818

IMG_0852

IMG_0855

IMG_0856

프랑스 아를

IMG_0894

IMG_0896

IMG_0897

IMG_1047

IMG_1056

IMG_1057

IMG_1058

IMG_1063

프랑스 고흐드

IMG_1135

IMG_1136

IMG_1923

프랑스 후쓸리옹

IMG_1194

IMG_1195

프랑스 엑상프로방스

IMG_1268

IMG_1269

프랑스 니스

IMG_1310

IMG_1309

IMG_1330

IMG_1331

IMG_2071

IMG_2072

Android Studio 프로젝트 릴리즈 빌드할때 Proguard를 이용해 로그제거하기

마켓에 애플리케이션을 릴리즈하기 전에 해야할 일 중 하나는 로그를 제거하는 작업입니다.

소스코드를 수정하지 않고 릴리즈 빌드할때 Proguard를 이용해 로그(android.util.Log) 메서드 호출을 간단하게 제거할 수 있습니다.

build.gradle에서 다음과 같이 릴리즈 빌드할때 Proguard를 적용하도록 정의해 줍니다.

    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.txt'
        }
    }

그리고 proguard-rules.txt를 아래와 같이 수정해 줍니다.

-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
}

이렇게 설정하고 gradle assembleRelease로 빌드하면, Log.d(), Log.v() 호출은 제거됩니다. (리턴값을 참조하지 않는다면)

중요한 포인트는 -assumenosideeffects 옵션은 optimize 단계를 거쳐야만 적용이 된다는 점입니다. 때문에 proguard-android.txt가 아닌 proguard-android-optimize.txt를 사용하도록 설정해야 합니다.

이 파일들은 안드로이드 SDK의 tools/proguard 디렉토리에 위치하고 있습니다.