화요일, 4월 30, 2013

[일상다반사] 구글 캘린더에서 예문을 제시하는 진짜 이유

구글 달력은 왜 내게 ‘압구정 브런치’를 추천할까를 읽다보니 다음과 같은 내용이 눈에 들어왔다.

구글 쪽에 이유를 물었습니다. 답변이 담백하더군요. “예시를 넣으면서 많은 이들이 잘 알거나 재미있는 것들을 제시해 사용자에게 대강의 아이디어를 주고자 했다”라는 겁니다. 압구정 브런치는 ‘Breakfast at Tiffany’s'란 영문 표현을 국내 실정에 맞게 표현했을 뿐이랍니다. ‘Dinner at Pancho’s'와 ‘멕시코 음식점’도 같은 논리지요. 설정된 달력마다 다른 예시를 제시한 것이지, 특별한 논리가 이유가 있는 것은 아니란 얘기입니다.

후후... 특별한 논리가 이유가 있는 것은 아니란 얘기를 하지만, 구글 캘린더에 일정을 입력할 때 자연어 처리를 원활하게 하기 위한 목적 때문에 예시를 제시한다는 사실을 (기자분께는 무척 미안하지만... 그러니까 기사 쓰기 전에 미리 물어보지! :P) 뒤늦게 폭로(응?)해버리기로 했다. 자 그러면 월별 보기 화면에서 임의의 날짜를 하나 골라서 클릭해보자. 다음과 같은 화면이 뜰 것이다.

'예: 오후 7시에 멕시코 음식점에서 저녁식사'라는 문구가 나온다. 넛지(!)해주는 예시에 따라 '오후 6시에 용산 CGV에서 영화 관람'이라고 입력하면 어떤 일이 벌어질까? 내용을 채워넣고 [일정 만들기] 버튼을 콕 누르면 다음과 같이 자동으로 시작과 끝 시각을 설정해준다. '오후 6시'라는 문구를 파싱해 자동으로 일정을 채워주는 셈이다. 그런데 '오후 6시' 대신 6pm 또는 18pm이라 입력해도 정상적으로 오후 6시로 인식한다.

여기서 끝나면 무척 심심한 포스팅이 되어버릴텐데... 환경 설정에서 언어를 'English US'로 바꾸고 나서 실험해보자. 예제에 맞춰 '6pm Movie at 용산 CGV'라고 영어로 한번 적어보자.

그리고 나서 확인해보면 위치(Where)까지 자동으로 추가된다. 즉 'at' 뒤에 있는 단어를 파싱해 자동으로 위치를 채워주고, 필요하다면 지도까지 보여준다. 'map' 링크를 클릭하면 용산역이 정상적으로 지도에 표시된다.

아직 한국어 버전에서는 지역을 설정하지 못하지만(at로 표시해도 완전히 무시한다. T_T 하지만 옛날에는 한국어 버전에서는 일정조차 자동으로 채워주지 않았으니 언젠가는 가능하겠지?), 영어 버전을 사용할 경우 빠르게 일정을 잡을 수 있다. 별거 아닌 기능처럼 보일지 몰라도 음성 인식을 지원하는 환경이라면 한 방에 시간, 약속 내용, 장소를 입력할 수 있으므로 나름 의미가 있다. 이제 예문이 존재하는 특별한 논리와 이유를 찾았는가?

보너스: 구글 캘린더의 월별 일정에서 이틀 이상의 날짜를 드래그 하면 예문으로 뭐가 나오는지 확인해보시라. ㅋㅋ

EOB

토요일, 4월 27, 2013

[독서광] 우리 집 네트워크 입문&활용

제주에서 불철주야 열심히 컴퓨터 관련 책도 저술하고 학생들도 가르치고 있는 신재훈님께서 이번에 새로 출간된 네트워크 책을 하나 보내오셨기에 출퇴근 길에 꼼꼼하게 읽어본 소감을 정리해봤다. '우리 집 네트워크 입문&활용'이라는 제목이 붙은 이 책은 가정에서 유무선 네트워크 구성부터 보안 강화와 활용에 이르기까지 훌륭한 지침서로 손색 없다는 생각이다.

초보자를 위한 입문서는 무작정 따라하기 식의 전개나 쥬라기 공원도 아니고 철지난 옛날 기술을 설명하는 내용으로 사람들을 실망시켜 왔기에 이 책 역시 제목만 보고서 오해하기 쉬운데... 어려운 네트워크 관련 이론을 정확하고 재미있게 풀어내는 동시에 최신 기술 추이에 맞춰 제품과 서비스를 고르는 과정에 직접적인 도움을 주고 있으므로 기존 입문서와 궤를 달리한다. 이더넷 케이블 제작 방법, IP 주소 체계(공인과 사설 주소가 어떻게 다를까요?), TCP/IP 기본 구조, 하드웨어 주소와 ARP 동작 방식, 스위칭 허브와 공유기의 차이점, DNS와 DHCP의 기초 원리, 무선 네트워크 프로토콜과 암호화 기법 소개, 네트워크 보안 기초, 내부 파일/프린터 공유와 클라우드 저장소를 사용한 파일 공유를 적절한 예제, 그림(본문에 나오는 그림은 품질이 정말 대단하다! 인포그래픽을 응용한 개념도를 보고 있으면 입이 떡 벌어진다.), 윈도우 환경에서 바로 적용 가능한 구체적인 설정 방법을 들어가면서 꼭 필요한 내용을 빠짐없이 다룬다.

본문 중간 중간 나오는 멀더와 스컬리의 대화, 손 교수와 전문가 대담, 앙대리의 해킹 일지, 열쇠말 퍼즐도 고급 유머로 인해 빵빵 터지는 재미가 쏠쏠하므로 네트워크라는 다소 딱딱한 기술 주제를 부드럽게 중화시킨다. 인터넷 유무선 공유기 등도 '흥보네 넷웍'이라는 벤더 중립적인(응?) 가상의 제품을 도입해 설치와 구성, 문제 해결 방법을 설명하고 있는데, 특정 제품에 얽매이지 않고 개념 정립에 필요한 핵심만 뽑아내기에 참신한 시도로 보인다.

결론: 네트워크 입문서와 활용서라는 두 마리 토끼를 성공리에 다 잡은 이 책을 강력 추천한다.

EOB

화요일, 4월 23, 2013

[독서광] 내인생 나를 위해서만

시중에 흘러 넘치다 못해 홍수가 날 지경인 '자기 계발서'의 피로감 속에서, 또 자기 계발서를 소개하는 글을 쓰면 자살 행위에 가깝다는 사실을 알고 있음에도 불구하고... 오늘은 간만에 아주 특이한(응?) 자기 계발서 하나를 소개하려 한다. 오늘 소개할 '내인생 나를 위해서만'이라는 제목을 달고 나온 이 책은 놀랍게도 [독서광] 개인주의 시대의 경영 원칙을 쓴 라인하르트 K. 슈프렝어가 집필했다. 슈프렝어의 발톱 쑥쑥 나오는 몇몇 책을 읽고서 기절 초풍한 독자라면 이 책의 전개 방식이 어떨지 충분히 짐작 가능하리라 믿는다. T_T

일단 책 뒤표지에 적힌 후회 없는 인생을 살기 위한 12가지 원칙부터 옮겨보겠다.

  • 내 삶을 구성하는 모든 것은 나의 자유 의지로 선택한 것이다.
  • ‘그렇게 살도록’ 강요하는 현실적 압박이란 사실 존재하지 않는다.
  • 시간이 없어서 못한다는 말은 다른 게 더 중요한다는 뜻이다.
  • 남들의 기대를 채워주고자 내가 이 세상에 존재하는 것은 아니다.
  • 정말 원하는 일은 결심할 필요 없이 ‘지금 당장’ 하면 된다.
  • 내가 행하는 모든 일들은 나 자신을 위해서 하는 것이다.
  • 보상은 기쁨과 열정으로 시작한 일을 시시한 일로 끝내버린다.
  • 칭찬은 외부의 평가 기준에 의해 내 삶을 재단하게 만든다.
  • 결정을 내리는 것이 결정을 내리지 않는 것보다 언제나 훨씬 더 낫다.
  • 마음에 안 드는 상황은 바꾸거나, 떠나거나, 사랑하라.
  • 행복한 사람은 ‘지금, 여기’의 에너지로 가득 차 있다.
  • 행복한 인생에 대한 책임은 오로지 나 자신에게 있다.

사회적인 문제를 개인적인 문제로 치환한 다음 인위적으로 만든 성공 기준을 달성하기 위해 개인의 희생을 점점 더 강요하는 4가지 없는 자기 계발서와는 달리 이 책은 처음부터 끝까지 자기 스스로 결정한 선택의 중요성을 강조한다. 데드볼을 각오하고 던진 차갑디 차가운 돌직구가 인정사정없이 날아오므로 책을 읽다가 보면 푹 찔리기도 하고 통쾌하기도 하고 미묘한 카타르시스를 느낄 것이다. 인생이라는 자동차의 운전대는 자기가 잡아야하지만 너무나도 많은 사람들이 남이 운전대를 잡아주기를 바란다고 비유하면서 슈프렝어는 스스로 결정을 내리고 스스로 실행하는 능동적인 삶의 자세를 독자들에게 주문한다.

슈프렝어의 여느 책과 마찬가지로 본문에 나오는 표현들이 가슴을 팍팍 찌른다. 몇 가지를 정리해보았다.

누군가 "난 할 수 없어"라고 말하면, 그건 하지 않겠다는 뜻이다.
현실적 압박이란 사실 존재하지 않는다.
한탄하지 말고 행위하라!
"시간 없어"는 다른 게 더 중요하다는 뜻이다.
남들의 기대란 남들의 기대이다.
스트레스란 '노'를 생각하면서 "예스"를 말할 때만 생긴다.
짜증이란 스스로 한 짓에 대해 남에게 그 책임을 미루는 것을 의미한다.
자신이 정말 원하는 일은 꼭 하는 법이다.
고통을 겪는 것이 행위하는 것보다 더 쉽다.
우리는 남을 위해서 뭔가를 한 적이 결코 없다.
비교는 곧 모든 행복의 죽음이다.
지금의 인생과 앞으로 되어야할 인생을 구분짓는 것은 자기기만이다.
많은 사람들이 늘 인생살이 직전의 상태에 있다.
나를 행복하게 해주려고 거기에 있는 사람은 없다.
결정은 언제나 나에게 달려있다.

결론: 사회에 맞추고, 주변 사람 비위 맞추고 눈치 보느라 정신 없고, 남의 기준으로 성공을 달성하기 위해 새빠지게 일하다 탈진해 쓰러질 상황에 놓인 사람이라면 반드시 읽어보기 바란다. 결국 내 인생은 내 것이니까.

보너스: 며칠 전 [일상다반사] 왜 그렇게 많은 사람들이 자기 직업을 싫어할까요?라는 글에서 '자기 직업이 마음에 들지 않을 때는 어떻게 해야 할까?'에 대한 대답이 이 책에 정리되어 있는데, 이 책 가장 처음에 나오는 경구가 답이 아닐까 싶다.

신은 이렇게 말씀하셨다. 네가 뜻한 바를 행하라. 그리고 그 대가를 지불하라. - 스페인 격언

결국 상황을 개선하려면 이 책에서 주장하듯 바꾸거나, 떠나거나, 사랑하거나 셋 중 하나를 택해야 한다. 어느 것도 하지 않으면서 불평만 한다면 실은 직업을 그대로 유지하고 싶다는 의지의 표명과 다름 아니다.

EOB

토요일, 4월 20, 2013

[일상다반사] 왜 그렇게 많은 사람들이 자기 직업을 싫어할까요?

Quora에 다음과 같은 질문이 올라왔다.

Why do so many people hate their jobs?

'왜 그렇게 많은 사람들이 자기 직업을 싫어할까요?'라는 질문에 1k가 넘는 몰표를 받은 대답이 있기에 정리해보았다.

좋은 대학 교육을 받은 많은 사람들이 자신이 선택한 직업을 싫어하는 한 가지 이유는 (졸업 직후) 젊었을 때 사다리를 오르는 보수적인 경력을 택한 다음 한번도 바꾸지 않았기 때문입니다.

22살이라는 나이에 처음으로 경력을 선택했을 때...

  • 자신의 사람에서 무엇을 하기 원하는지 아무 생각이 없었다.
  • 자신들에게 선택 가능한 경력이 무엇인지 시각이 아주 협소했다.
  • 처음으로 부모로부터 독립해야 했기 때문에 돈을 벌 필요가 있다고 느꼈다.
  • 학교처럼 자격이 필요하고 미리 정의된 마일스톤과 관련이 있는 직업에 끌렸다.

그리고 나서 첫 직업을 선택한지 7년에서 10년이 경과해 보면, 빼도박도 못한다는 사실을 느낍니다. 다음에 무엇을 할지, 어떻게 변화를 줘야 할지 모릅니다. 첫 경력에서 재정적으로는 상당히 잘 나가고 있기에 경력 전환에 따르는 엄청난 위험을 인지하고 있습니다. 따라서 나머지 인생 동안 똑같이 다람쥐 쳇바퀴를 돌립니다. 주변의 변호사, 교수, 은행원, (종종) 선생님들을 한번 보세요.

자, 그렇다면 자기 직업이 마음에 들지 않을 때는 어떻게 해야 할까? 독자 여러분들께서는 다음 글을 기대하시라!

EOB

금요일, 4월 19, 2013

[일상다반사] 오픈 뱅킹을 사용해야 하는 중요한 이유

대한민국 국민이라면 누구나 보안을 강화하기 위해 기본 보안(예: 윈도우 사용자 계정 컨트롤 UAC)을 우회해 액티브X 프로그램을 설치해야 하는 습관이 들었기에 (다양한 이유로 인해) 위조 사이트로 잘못 접속했을 경우에도 이상한 프로그램 설치를 허가하거나 민감한 개인 정보를 입력하는 문제점이 연일 터지고 있다. 초기에 웹 브라우저에 기본 내장된 두 가지 강력한 기능(사이트 인증서 검증, SSL/TLS 통신 보안)을 사용하지 않고 독자적인 액티브X 기반의 암호화 인프라에 공인인증서 조합을 사용한 대가를 치루고 있다고 보면 틀림 없겠다. 물론 2000년 1월 이전에 미국 바깥으로 수출되는 암호 관련 소프트웨어는 SSL 키 크기를 40이나 56비트로 제약해야 하는 규정이 있었기 때문에 독자적인 행보가 필요했다고 말할 수 있을지 몰라도 지금은 무려 2013년이니 13년이 흐르는 동안 다들 넋놓고 뭐했지? T_T

하지만 점점 상황이 개선되고 있고, 그 중에서 가장 주목해야 할 기술은 바로 오픈 뱅킹이다. 오픈 뱅킹은 윈도우 운영체제와 IE에서 벗어나 다양한 운영체제(리눅스, 맥OS X)와 다양한 브라우저(크롬, 파이어폭스)에서 은행 업무를 볼 수 있도록 출발한 개념인데, 보안 강화라는 긍정적인 부산물을 제공한다. 국내에서 오픈 뱅킹을 지원하는 국민, 기업, 산업, 신한, 우리, 씨티, 하나(가나다 순) 은행 사이트에 들어가면 베리사인에서 인증 받은 사이트 표식이 뜨면서 TLS를 사용한 보안 채널로 통신한다(은행마다 112비트부터 256비트까지 암호화 수준은 조금씩 차이가 난다). 물론 오픈 뱅킹을 사용하더라도 각종 보안 프로그램(키보드 보안, 백신 등)을 설치해야 하므로 결국 반쪽이 아닌가 하는 생각도 들지만, URL 입력창이 초록색으로 변하기에 접속하는 사이트 자체가 위조되지 않았다는 사실을 쉽게 확인할 수 있으므로 최소한 이런 사이트에서 제공하는 각종 (보안) 소프트웨어는 안심하고 설치할 수 있게 된다(물론 100% 완벽하지는 않다. 보안 업체에서 제공하는 소프트웨어가 감염되면... 음...). 예전에는 안전하게 은행 사이트에 접속하기 위해 함부로 이메일이나 블로그 링크를 클릭하는 대신 포털 사이트에서 검색해 들어가거나, 북마크해서 들어가거나, 외워서 들어가는 방법을 사용해왔다. 물론 일부 은행에서 제공하는 보안 안전 그림이나 문자열을 보고 정상 사이트인지를 확인하는 서비스도 나름 좋았지만, 오픈 뱅킹을 사용할 경우에는 웹 브라우저 자체에서 접속하는 사이트 인증서에 문제가 있을 경우 즉시 경고를 주므로 사이트 진위 여부를 따지는 번거로움을 많이 줄일 수 있다. 이런 사실을 인지하고 있으면, 보안을 강화해야 한다는 둥 어쩌구하면서 보안카드 입력을 요구하는 요상한 사이트로 피싱을 유도해도 한눈에 사이트 진위 유무를 확인할 수 있다. 초록색 막대가 안 뜨면 바로 브라우저를 닫으면 된다! 참 쉽죠?

단순한 UI에 접근성도 강화되고, 보안도 강화되고, 운영체제나 웹 브라우저도 골라서 선택할 수 있기 때문에 다른 은행들도 빨리 동참하도록 오픈 뱅킹 사용을 늘이면 어떨까 싶다. 사람의 습관이란 무서워서 아마 이 글을 읽고 나서도 기존 은행 사이트에 접속하게 될텐데(이런 문제점을 인식하고 있는지 국민/산업/우리은행은 아예 오픈 뱅킹으로 시작한다. 앞으로도 대다수 은행 사이트가 기본으로 오픈 뱅킹을 지원하면 더욱 좋겠지?), (심지어 IE를 사용할 경우에도) 의식적으로 오픈 뱅킹으로 접속하면 어떨까 싶다. 보안은 대부분 기술보다는 사람으로 인해 문제가 발생하므로 남에게 맡기는 대신 평상시에 스스로가 알아서 지켜야 한다는 사실을 다시 한번 명심하자.

EOB

화요일, 4월 16, 2013

[독서광] 코딩 호러의 이펙티브 프로그래밍

위키북스에서 행운의 상자(?)를 보내주셨기에 잽싸게 개봉했는데 '코딩 호러의 이펙티브 프로그래밍'이라는 책이 들어 있었다. 코딩 호러는 젯프 앳우드가 운영하는 IT 기술 관련 블로그인데, 여기 실린 글 중에서 재미있는 내용을 선별해 책으로 묶은 형태다. IT 업계를 강타했던 '조엘 온 소프트웨어'을 시작으로 블로그를 토대로 만들어진 다양한 책이 선보였는데, 다들 '형만한 아우'가 되지 못했다. 하지만 '코딩 호러...'는 매트릭스 2편에서 네오가 에이전트 스미스를 만나 격투하는 도중 '업그레이드?'라고 외치는 장면을 연상하게 만들었다. 젯프 앳우드는 스택 오버플로우를 만들면서 겪은 다양한 경험을 재미있게 풀어쓰고 있으므로 프로그래밍, 팀 구축, 사용자 편의성, 보안, 테스트와 관련해 여러 가지 생각할 거리를 던져준다.

이 책은 블로그를 옮겨놓은 특성으로 인해 호흡이 짧지만 그렇다고 수필집처럼 마냥 빨리 페이지를 뒤적거리기는 힘들 것이다. 첫 페이지부터 끝 페이지까지 (소프트웨어 개발에 종사하는) 독자들이 처한 환경과 상황을 다시 한번 돌아보게 만드는 좋은 주제와 소재거리로 넘쳐나므로 책을 읽으면서 병렬로 문제를 풀거나 고민을 해야하기 때문이다. 예를 들어, "프로그래머를 채용하는 방법"에 나오는 전화 인터뷰에 사용할 질문을 한번 볼까?

  1. 그 자리에서 곧바로 코딩을 하는 질문 약간. 예를 들어 "배열 안에 있는 정수 값 중에서 가장 큰 값을 찾아라."
  2. 간단한 설계 약간. "HTML을 모델링하기 위한 표현 방식을 생각해보라."
  3. 스크립트 작성과 정규 표현식. "디렉터리 내에서 특정 형식의 전화번호가 저장된 텍스트 파일의 목록을 만들어보라."
  4. 자료 구조. "어떤 경우에 배열 대신 해시테이블을 사용할 것인가?"
  5. 비트와 바이트. "프로그래머에게 10월 31일과 12월 25일이 같은지 묻는 것이 왜 우스운 일인가?"

아마 열정과 호기심 넘치는 프로그래머라면 이 부분을 읽는 즉시 머리 속에서 스레드가 하나 떠서 배경 작업으로 문제를 풀고 있으리라. 10월 31일과 12월 25일 문제는 처음 봤음에도 불구하고 의도를 바로 파악하고 한참 웃었다(힌트: 각 월을 대표하는 영어 단어! 그래도 감이 안 오시는 분들은 댓글 다시면 친절하게 설명해드리겠다.).

단순히 문제 풀이에 끝나지 않고 일상에서 부딪힐만한 고민 거리도 던져준다. "그들이 어떤 말을 하든 그것은 결국 사람과 관련된 문제다"에 나오는 프로젝트 성공 유무를 예측하는 리트머스 시험지를 볼까?

  1. 당신의 팀이 얼마나 많은 줄의 코드를 작성할 것인가?
  2. 어떤 종류의 소프트웨어를 만드는가?
  3. 동료 프로그래머를 좋아하는가?

3번 '동료 프로그래머를 좋아하는가?'라는 항목에서 무릎을 탁 쳤다. 실제로 회사는 성인의 삶에 있어 가장 오랜 시간을 보내는 장소다(특히 대한민국... 음...). 그런데 배우자와 자녀보다 더 많이 시간을 같이 보내는 동료 프로그래머들과 불협화음을 만들어내고 서로 못 죽여 안 달이고 물고 뜯고 싸우는 환경에서 일이 제대로 될리 만무하다. 하지만 대부분 형편없는 아키텍쳐, 돈은 적게 주면서 최대한 많이 얻어내려고 드는 깐깐한 갑, 원저자는 어디론가 사라져서 도저히 해독 불가능한 레거시 코드, ... 등과 같은 외부 요인만 탓하며 내부 사람 문제에 대해서는 눈가리고 아웅하니 땅이 꺼지라 한숨만 나올 뿐이다.

여기서 그냥 끝내기가 너무 아쉬우므로 마지막으로 정말 뜨끔했던 예를 하나 더 소개하겠다.

(동료 프로그래머들의) 신뢰와 존경을 얻는 최선의 방법은 엄청난 노력과 실질적인 결과를 보여주는 것뿐이다. 모든 사람에게 좋은 개발 방법론을 이메일로 전송하거나, 어떤 기술을 이용하면 훌륭한 결과를 낳을 것이라는 식의 조언을 보내닌 식의 값싸고 피상적인 대체물은 동일한 결과를 낳지 못하며, 설령 그렇다고 해도 효과가 지속되지 못한다.
행동은 말보다 설득력이 있다. 팀블로그나 위키, 새로운 소스코드 관리 메커니즘, 혹은 새로운 기술에 대해 말하는 것은 값싼 일이다. 누군가 힘든 노력을 통해 그런 것들을 실제로 구현했을 때 당신은 그저 그 아이디어에 대한 소유권을 주장하려고 하고 있을 뿐이라는 사실을 다른 사람들은 이미 잘 알고 있다. 뭔가를 제안하고자 한다면 제안을 뒷받침하는 노력을 실제로 기울려야 한다.

어디서나 마찬가지지만 지행합일: 아니 말보다 행동이다!

요약: 2013년 상반기 현재 가장 눈에 띄는 추천 서적으로 평가한다!

EOB

토요일, 4월 13, 2013

[독서광] 안드로이드 포렌식

최근 스마트폰이 일반에 보급됨에 따라 스미싱과 같은 사회공학적인(이걸 기술적으로 고급 기법이라 부르기는 상당히 민망하다. 스마트폰에도 백신을 강제로 설치해 스미싱을 막아야 한다고 떠드는 언론들을 보면 웃기지도 않다.) 보안 침해 사례가 늘어나고 있다. 불특정 다수에 대한 무차별 공격(?)인지라 심지어 며칠 전 B급 프로그래머의 2G(!) 폰으로도 1355(국민연금)을 가장해 '보험금 미납금 명세서 조회'라는 내용과 함께 URL이 하나 날라올 정도였다. (그래도 명색이 포렌식 책 역자라서) 도대체 무슨 짓거리를 하는지 호기심에 한번 추적을 해봤다.

  • 사람들이 축약된 형태의 URL은 잘 안 누르고 있기 때문에 철자 등을 우체국과 조금 유사하게 만든 URL이 왔기에 도메인 소유권자를 추적해봤다. 음. 역시 중국 친구네? T_T
  • 바로 해당 URL의 IP 주소를 추적해봤더니 중국이 아니라 미국이다. 조금 더 상세히 파고드니 미국 모처의 잘 알려지지 않은 소규모 클라우드 서비스회사였다.
  • PC에서 해당 URL로 접근하니 redirection되어 AWS S3에 담긴 apk 파일이 다운로드 되었다. 귀여운 것들...
  • 해당 apk 파일을 까서 살펴보니 hello, world급 프로그램을 조금 수정한 SMS 탈취 프로그램이었다. 물론 SMS 내용은 해당 URL의 IP 주소로 보내도록 되어 있었다. 표시가 덜 나게 아이콘이나 제대로 좀 만들지... 어익후...
  • URL에 접속했더니 마이크로소프트 윈도우 기반의 운영체제에서 동작하는 PHP 프로그램이 나를 반겼다. 상황 파악을 끝냈으니, 바로 연결을 끊었다.
  • 그나저나, 도대체 국민연금으로 발신자 번호까지 위조해서 이런 메시지를 날리는 상황을 용인하는 이통사와 법 집행 기관은 도대체 뭐하는지? SMS 올 때마다 개인이 일일이 손으로 URL 치고 들어가서 진위 여부를 다 따져봐야 하나? T_T 그나마 신종 금융사기, 구제책 없나?라는 기사를 보니 문제의 심각성을 깨닫고 뭔가 조치를 취하는 모양이다.

뭐 여기까지 조사한 결과를 보면 더 이상 안 봐도 DVD다. SMS 탈취 목적이 뭔지는 다들 잘 아실테고(인증 번호가 2nd channel인 SMS로 날아올 경우 바로 가로챌 수 있다)... 이 경우에는 일반적인 포렌식 기법으로 가볍게 분석을 마쳤는데, 실제 스마트폰에서 사고가 터지고 나서 포렌식을 진행해야 할 경우에는 스마트폰과 관련해 좀더 세부적인 내용을 알고 있어야 한다. 이와 관련해 오늘은 에이콘 출판사에서 보내준 보물 상자에서 꺼낸 3번 타자인 안드로이드 포렌식을 소개하겠다.

간단히 이 책을 요약 정리하자면, 안드로이드 하드웨어와 내장 소프트웨어를 간단히 설명하고 자료 구조와 파일 시스템, 메모리 종류와 저장 방식, 디버깅 기법과 외부 도구를 사용한 분석 방식을 소개하고 있다. 역사와 전통을 자랑하는 일반적인 PC나 서버에 대한 포렌식과는 달리 스마트폰 보급이 시작된지는 얼마 되지 않았기에 스마트폰에 대한 포렌식은 이제 시작 단계라고 봐도 무방하겠다. 하지만 스마트폰만큼 대중화되고 널리 쓰이고 보안에 취약할 수 밖에 없는 장비도 없기에 스마트폰 관련 포렌식은 발등에 불이 떨어진 상황인데 현재까지는 이 책이 스마트폰 관련 국내서/역서로는 유일하기에 나름 출발선으로 가치가 높다.

요렇게 적고 보니 이 책이 안드로이드 포렌식을 거뜬히 도와줄 구세주처럼 들릴지도 모르겠는데, 아쉬운 점도 많다. 1) 이건 이 책의 잘못이 아니라 스마트폰이 워낙 빨리 발전하기에 이 책에서 소개하는 스마트폰은 이미 시중에서 구하기도 어려운 구식 모델이다. 2) 리눅스 명령어 소개가 왜 필요한지 잘 모르겠다(매뉴얼 페이지 덤프한 내용도 나온다. T_T). 3) 안드로이드 내부 구조와 리눅스 내부 구조에 대한 설명은 너무나도 피상적이고 큰 도움이 되지 않는다. 하지만 초반의 실망감을 무릅쓰고 중반 이후로 넘어가면 안드로이드 관련 포렌식 기법들을 차근차근 잘 설명하고 있기에 나름 참고할만한 내용을 건질 수 있을 것이다.

특히 일반적인 PC/서버 환경과는 다른 파일 시스템과 메모리 종류에 대한 설명은 눈여겨 봐놓아야 한다. NAND 플래시를 덤프하는 기법, YAFFS2에서 OOB 대역을 날려서 분석이 용이한 형태로 만드는 기법, Scalpel과 같은 무시무시한 도구를 사용해 YAFFS2 이미지에서 파일 카빙하는 기법 등은 기존 여느 포렌식 책에서 찾아보기 어려운 내용이므로 눈을 크게 뜨고 봐놓아야 할 부분이라고 볼 수 있겠다. (밑줄 쫘~~~악)

결론: 특히 안드로이드 포렌식에 입문한 분들께 추천드리며, 이미 포렌식 기법에 대해 충분히 이해하고 있고 안드로이드 플랫폼을 능수능란하게 다루는 중급 이상 전문가들께는 요약 정리 목적으로 추천드리고 싶다.

EOB

화요일, 4월 09, 2013

[영화광] 봄날은 간다(스포일러 있음)

요즘 아침마다 운전을 하는 데 라디오를 듣는 재미가 쏠쏠하다. 얻고자 하는 정보만 (무)의식적으로 쫓아가는 대신 우연에 의해 좋은 이야기나 노래를 들을 수 있기 때문에 종종 월척을 낚기도 한다. 얼마 전에 '봄날은 간다'라는 노래를 듣고 가사가 너무 좋아 인터넷에서 검색해보니 제목이 같은 영화의 OST라는 사실을 알게 되었다. 바로 DVD를 주문해서 감상했는데, 2001년에 나온 영화라는 사실이 믿어지지 않을 정도로 높은 완성도를 보여주기에 지금까지 이런 좋은 영화를 놓치고 뭐했냐는 후회가 들고 말았다.

연애 이야기에 손발이 오그라들줄 알고 보기 시작했다가 영화의 흐름을 끊기는 커녕 오히려 분위기를 돋우도록 아기자기한 일상을 제대로 묘사하는 데다가 중간 중간 예상치못한 유머 코드까지 곁들여 가며 사랑 이야기를 현실적으로 풀어내는 감독의 솜씨에 화들짝 놀랐다고나 해야할까? 한쪽은 정보를 생산하는 사운드 엔지니어(상우, 유지태)이며, 다른 한쪽은 이렇게 만들어진 정보를 소비하는 PD 겸 아나운서(은수, 이영애)의 만남과 헤어짐을 보고 있으려니 가슴 한 곳이 뻥 뚫렸다. '건축학 개론'을 보면서 핀셋으로 상처를 뒤집는 듯한 옛 추억에 잠길 수 있었다면, '봄날은 간다'를 보면서는 "꽃은 피고 또 지고 피고"라는 김윤아의 가사에 나오듯 봄이 주는 묘한 죽음/삶/사랑을 다시 한번 관조해 볼 수 있었다.

이 영화의 백미는 다들 공감하겠지만, 후반 벚꽃 신이다. 한국 영화사에 남을 멋진 이별 장면으로 손꼽을만큼 인상적인 이유는 바로 봄의 벚꽃을 배경으로 새로운 생명을 상징하는 '화분'을 선물로 주고 (되돌려) 받으며 약간의 주저함을 뒤로한 채 각자 갈 길을 가는 두 남녀의 모습을 관습적이지 않게 그려냈기 때문이라고 본다. 그렇다고 희망이 끝났을까? 아니다. 실연의 아픔을 극복하고 다시 자연의 소리를 들으며 웃는 상우의 마지막 모습이 아직도 눈앞에 아른거린다.

DVD 부록으로 담겨 있는 뮤직 비디오를 찾아서 공유해본다.

봄이 되어 벚꽃을 볼 때마다 이 영화를 다시 감상할 것 같다. 죽음, 삶, 사랑의 의미를 다시 한번 돌아보기 위해서 말이다. "어떻게 사랑이 변하니"라는 영화 중 명대사가 가슴 한 곳에 깊숙히 와닿을만큼 사랑에 웃고 울어본 분들께 강력하게 추천한다.

EOB

토요일, 4월 06, 2013

[독서광] 아이와 함께 할 수 있는 50가지 위험한 실험

예전에 비해 요즘은 애들 입장에서 놀거리가 정말 많다. TV를 켜면 24시간 만화부터 스포츠, 각종 다큐먼터리에 이르기까지 입맛대로 골라볼 수 있고, 스마트폰이나 태블릿을 열면 게임, 퍼즐, 만화 등 컨텐츠 공급이 쏟아져나온다. 점점 축적되고 있는 영화나 음악도 골라서 보고 들을 수 있는 상황이다. 그러다보니 바깥 활동이 점점 줄어들면서 실제 몸으로 뭔가를 해보는 활동은 위축되기 마련이다. 그렇다고해서 머리와 몸을 모두 활용해 뭔가 흥미로운 실험을 해보는 재미는 결코 사라지지 않을 것같다. 하지만 구체적으로 뭔가를 해보려면 너무나도 막막하다. 우리 주변은 교육 과정에 맞춰 어떻게 하면 절대로 뒤쳐지지 않는 '영재'형 인간을 기를지에 대한 담론으로 넘쳐나기에 심지어 과학 실험조차도 교과 과정과 연계되어 독특한 풍미를 모두 빼버린 인스턴스 식품처럼 되어가고 있는 현실이다.

다행스럽게도 지난번 [독서광] Make Vol 5 끝부분에 소개한 아이와 함께 할 수 있는 50가지 위험한 실험이라는 책이 나왔다. '위험'이라는 간이 철렁하는 문구가 적힌 제목과는 달리 이 책에는 교과서에 나오지 않는 재미 있는 실험이 '위험하지 않게' 만들도록 여러 가지 조언이 아낌없이 나온다. 심지어 미국 내의 법규나 규칙 뿐만 아니라 한국 내의 법규와 규칙까지도 등장하므로 계획과 안전 대비책을 세우는 과정에 도움을 받을 수 있다. 물론 어른들 관점에서 자동차 운전, 자동차 타이어 갈아 끼우기, 대중교통으로 여행하기 등과 같은 실험을 시시(응? 정말 시시할까?)하게 생각할지도 모르겠지만, 정말로 자기 자식들이 이런 실험을 하고 싶다고 조를 경우에는 화들짝 놀랄 것같다는 생각을 해보며 속으로 낄낄거렸다.

책 구성은 두 페이지가 한 쌍으로 되어 있으며 왼쪽은 실험 목표, 개요, 절차, 주의 사항, 보충 설명이 자리잡고 있고, 오른쪽에는 줄이 그어진 노트가 있어 필기 도구를 사용해 실험 절차나 결과, 떠오르는 아이디어 등을 정리할 수 있도록 도와준다. 아이들의 실험이 되어야 하므로 어른들은 아이들 뒤에서 충실한 집사(!)처럼 행동하며 실험 방법을 간섭하지 않아야 한다는 주의 사항만 지키면 자연스럽게 알아서 실험이 진행될 것 같다. :)

이 책의 집필 의도가 가장 잘 드러나는 문장을 서문에서 골라봤다.

주도권과 능력은 무엇일가요? 저는 현실에서 마주치는 문제에 접근하는 태도로 이를 가늠합니다. 주도권을 가진 사람은 문제의 맥락을 살펴본 후에 필요한 (혹은 사용 가능한) 도구와 재료를 확인하고 해결방안을 찾는 데 온 힘을 기울일 것입니다. 그리고는 소규모 실험을 통해 해결방안의 핵심 이슈를 테스트해보고, 제대로 작동하는 해결법을 찾아내겠지요. 사소한 문제는 극복하고, 실패는 피드백으로 받아들여서 진행 중인 해결 방안에 반영할 것입니다. 하지만 주도권을 못 잡는 사람은 쉽거나 눈에 보이는 해결책이 없을 때 바로 포기하거나, 자신의 첫 번째 제안이 무너지는 순간 문제 자체를 쉽게 포기할 수도 있습니다.
인생에서 문제에 직면했을 때, 딱 그 상황에 맞는 정확한 크기의 밧줄이나 완벽한 도구가 준비되어 있지는 않습니다. 실제로 완벽한 해결책이 눈 앞에 있는 경우는 드물어서, 필요한 것 없이도 상황을 해결하거나 확신 없이도 앞으로 나가는 방법을 찾게 됩니다. 우리는 모두 손에 쥐고 있는 것으로 상황을 해쳐나가는 법을 배웁니다. 그리고 이것이 바로 뭔가를 만들게 되는 동력이자 실체입니다.

결론: 적정한 위험을 감내하며 안전하게 탐험하는 방법을 익히는 과정은 평생 써먹을 '문제 해결 능력'이라는 기본틀을 마련하는 중요한 이벤트라고 보면 틀림 없기에 아이들에게 주도권과 능력을 갖추도록 도와주는 이 책을 강력하게 추천한다.

EOB

화요일, 4월 02, 2013

[독서광] 드루팔 사용하기

오늘은 에이콘 출판사에서 보내온 행운의 상자(응?)에서 꺼낸 책 2번인 '드루팔 사용하기: 드루팔 웹사이트 제작과 모듈 활용'에 대해 소개하겠다. 드루팔(Drupal)은 개인 또는 커뮤니티가 웹사이트의 다양한 자료들을 손쉽게 관리, 조직, 출판할 수 있도록 다양한 기능을 제공하는 오픈소스 프로그램이다. CMS(Content Management System)으로 유명한 이 소프트웨어는 전세계적에서 다양한 서비스에 사용 중이지만 한국에서는 토종 XE와 최근 뜨고 있는 워드프레스에 밀려 사용자가 많지 않기 때문에 일부 커뮤티티를 제외하고는 한글화된 정보를 공유하는 곳도 찾기 어렵다. 해외에서 인기를 끌고 있는 워드프레스의 경우에는 여러 웹 사이트/회사는 물론이고 서점에서도 국내 저서와 번역서가 제법 보이지만 드루팔은 이제 막 번역서가 처음 나왔으니 기술적인 여러 좋은 특성으로 인해 드루팔을 도입하려는 분들 입장에서는 이 책이 유일한 선택이 아닐까 싶다.

이 책의 부제인 '드루팔 웹사이트 제작과 모듈 활용'이 이 책을 가장 잘 나타내는 표현이 아닐까 싶다. 이 책은 드루팔의 아키텍처와 모듈 제작 방식과 내부 구조를 세부적으로 파고드는 기술서는 아니며, 드루팔을 사용해 자신의 목적(예: 게시판 만들기, 멀티미디어 자료 개시, 제품 리뷰, 모임 관리, 전자 상거래 사이트 구축)에 맞는 사이트를 빠르고 효율적으로 만드는 방법을 소개하는 활용서라고 보는 편이 타당하다. 따라서 일반적인 오라일리 동물 책과는 달리 완결된 예제 사이트를 단계별로 구축하는 방식으로 서술하고 있기에 드루팔을 처음 접하는 사이트 관리자에게도 적합하다는 생각이다. 각 예제마다 드루팔(특히 버전 7)이 제공하는 다양한 모듈을 효과적으로 연결해 사용하는 방법을 제시하고 있으므로, 이 책을 다 읽을 무렵이면 드루팔의 모듈 시스템에 대해 어느 정도 감을 잡을 수 있을 것이다. 물론 활용서라는 특성으로 인해 뭔가 문제가 생기거나 자기 뜻대로 되지 않을 경우 기술적으로 문제 해결이 가능한 수준까지 독자를 끌어올리기는 힘들어 보이므로, 일단 이 책을 출발선으로 삼아 직접 시도하면서 시행착오를 반복해야지만 원하는 최종 목적지에 도착할 수 있을 것이다.

프로젝트를 기반으로 하는 책의 구조상 1장과 2장까지만 읽고나면 그 다음부터는 순서대로 책을 읽을 필요는 없어보이며, 자신에게 필요한 부분만 선별해서 골라 읽어도 무방하다. 에이콘 출판사 드루팔 사용하기에 가서 목차를 확인해보면 대충 어떤 내용이 전개될지 감이 올 것이며, 여기서 소스코드를 내려받거나(다운로드 아이콘을 클릭) 아니면 원서 공식 사이트인 usingdrupal에서 코드를 내려받아서 풀어보면 책을 구매하기 전에 미리 어떤 프로젝트를 다룰지 맛보기도 가능하다.

팁: 본문을 다 읽고 나서 다른 부록은 모르겠지만 부록 B는 꼭 시간내어 정독하기 바란다. 모듈을 평가하고 선택하는 과정이 드루팔 활용에 있어 아주 어려우면서도 중요한 작업이므로 향후 시간과 노력을 크게 절약할 수 있기 때문이다.

결론: 드루팔을 처음 시작하려는 분들께 적극 추천한다!