2011년 6월 29일 수요일

Facebook이 아시아에서 급성장하고 있다고

우선은 말이 필요없다. 다음의 표가 모든 것을 정리하고 있다.


가장 눈에 띄는 것은 인도나 일본이라고 말할 수 있겠다. 인도가 인구가 많아서 그런가? 급격히 늘어나고 있다. 그리고 증가추세만 본다면 일본도 굉장하다. 2011년 들어서 기존 사용자만큼의 새로운 사용자들이 생겨났다. 우리나라는 의외로 8위. 3백만명 정도이다.

나이가 많은 분들은 트위터에서 놀고 있는 것일까? 젊은 사람들은 싸이에서 놀고 있는 것일까? 3백만명이라는 숫자는 물론 많은 숫자지만 생각외로 적다는 느낌이 든다.

개인적으로는 2위의 인도네시아가 놀랍다. 인도네시아가 이렇게나 인구가 많았었나? 기존에 그럴싸한 SNS가 없었나보다. 인구를 찾아보니 2억 2천 7백 정도. 인구의 17퍼센트 정도가 사용하고 있는 것이네. 우리나라보다는 확실히 높은 비율이다.

전세계인이 함께 사용하는 서비스가 되어가는 건 확실하다. 이제 아프리카 쪽만 인프라가 좋아지면 되는 것이다. 페이스북이 언제까지 위치를 고수할까? Google+가 나오면 판세가 달라질까?

2011년 6월 23일 목요일

NFC 어플리케이션

다음 논문을 읽고 남기는 생각.

Csapodi, M.; Nagy, A.; , "New Applications for NFC Devices," Mobile and Wireless Communications Summit, 2007. 16th IST , vol., no., pp.1-5, 1-5 July 2007
doi: 10.1109/ISTMWC.2007.4299077
URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4299077&isnumber=4299029

NFC의 장점으로 매번 이야기하는 것은

  1. 네트워크를 따로 구성하지 않아도 된다는 것
  2. 비교적 빠르다는 것
  3. 아주 근접한 상태에서만 통신이 되기 때문에 안전하다는 것

정도이다. 간단히 줄이면 "Simple and Secure". 이러한 장점으로 기기 간의 상호 인증을 할 때 NFC는 좋은 수단이 된다. 직접 터치하는 방식이기 때문에 man in the middle attack, eavesdropping에 다른 방법론보다 비교적 강하다. 기기 간 상호 인증 (키 교환)을 자연스럽게 사람이 개입하여 인증해주게 되는 것이다.

NFC는 2002년 가을 Sony와 Phillips, 두 회사가 협정한 기술이라 한다. 둘은 ECMA Internation에 표준 초안을 제출하는 것을 시작으로 표준화를 진행했고 두 개의 프로토콜 NFCIP-1, NFCIP-2가 각각 ISO/IEC 18092, ISO/IEC 21481로 제정되었다 한다.

또, NFC 포럼이 2004년 3월 설립되어 HP, NXP (Phillips), Sony, Texas Instruments, Nokia, NEC, Samsung, Motorola, MasterCard, VISA, Panasonic, Microsoft, Gemalto, Vodafone, Siemens 등이 참여하고 있다고 한다. 모바일 통신 업체 그리고 통신 기기를 만드는 업체가 포함되어 있다. 개인적으로 재밌는 건 MasterCard, VISA가 참여하고 있는 것인데, 모바일 결제를 할 때 비교적 안전하고 신속하게 통신 과정을 진행 할 수 있다는 점에서 NFC가 모바일 결제 분야에서 핵심 기술로 인정받고 있다는 것을 알 수 있다.

NFCIP-1 프로토콜은 Philips의 Mifare 기술과 Sony의 FeliCa contactless IC card 기술과 호환된다고 한다. 각자 기술을 개발하다가 둘을 아우르는 프로토콜을 만들게 된 것 같다. 두 기술은 이미 교통 카드나 출입 보안 카드 등에 사용되고 있었다고 한다.

NFC의 접촉 범위는 20cm 정도.

많은 양의 통신이 필요하거나 빠른 통신이 필요한 경우 블루투스나 와이파이 등 기존 기술을 사용하는 것이 좋은데, 이런 설정을 두 기기가 빠르게 공유하기 위해서 NFC가 역시 좋은 수단이 된다.

NFC가 passive mode를 제공한다는 것도 장점이다. 모바일 기기는 배터리에 민감하기 때문에 one party의 파워로 양쪽이 통신할 수 있는 것은 큰 장점이다. NFC 통신을 할 때 한 쪽이 모바일, 한 쪽이 전원을 공급 받는 고정된 기기인 경우 이 성질은 큰 장점으로 작용할 것이다.

NFC가 탑재된 두 기기 간의 데이터 교환이 NFC를 이용한 주된 어플리케이션이지만 조금 구체적으로 응용한 예가 논문에 몇 가지 언급된다. 그 중 하나 재밌는 것은, PC와 연동하여 내 패스워드 정보 - 를 비롯한 웹 폼을 채울 수 있는 정보 - 를 내가 폰을 PC와 접촉시켜 둔 동안에만 해당 PC에서 적용되게 하는 것이다. 도서관 등의 공공 컴퓨터에 갔을 때 웹 서핑을 하게 되면 모든 웹 사이트에서 로그인을 다시 해야 한다. 귀찮지만 당연히 해야 하는 작업이다. 내 폰을 PC 옆에 마련된 NFC reader 위에 올려둠으로써 모든 로그인 절차가 자동으로 된다면 편리하지 않겠는가? 물론 폰을 분실했을 경우, 도난 당했을 경우가 아주 위험해진다.

위의 예처럼 터치를 통한 사용자 또는 기기 인증의 개념이 도입되면 폰이 일종의 보안 토큰이 되는 것이다. 클라우드 컴퓨팅이 발전하고 점차 컴퓨팅 기기는 네트워크가 가능한 더미 터미널이 되어가는 추세(크롬북이 얼마나 성공할 지는 모르지만) 라고 봤을 때, NFC 덕분에 거의 모든 사람이 소지하고 있는 스마트폰을 보안 토큰으로 활용할 수 있게 된 점은 확실히 사용자 편의성을 높이는데 한 몫을 할 수 있을 것이라 생각한다.

2011년 6월 21일 화요일

텍스트 파일에서 한글 글자만 뽑아내기 by Clojure

해결하고자 하는 문제는 텍스트 파일에서 한글 글자만 뽑아내는 것이다. 문서에 "한글은 영어로 Korean이라 합니다."라는 내용이 있다면 (한 글 은 영 어 로 이 라 합 니 다) 라고 뽑아내고 싶다는 것. 그리고 글자의 중복이 있으면 제거한다.  위 예제에는 중복이 없다. 코드는 아주 간단하다.

(ns korean-word-extractor.core
  (:gen-class))

(defn -main [& args]
  (let [file-name (first args)
 file-contents (slurp file-name)
 korean-chars (distinct (filter #(<= 0xAC00 (int %) 0xD7AF) (seq file-contents)))] ;; 0xAC00 ~ 0xD7AF: Hangul Range
    (println korean-chars)))

파일명은 argument로 받기로 하고, slurp을 이용해 모든 내용을 일단 얻어온다. 그 다음 한 줄의 코드가 사실 모든 일을 다 하게 되는데, 과정은 다음과 같다.
  1. 우선 clojure에서는 문자열에 seq 함수를 적용하면 바로 개별 문자를 list로 활용할 수 있다.
  2. 그 다음 한글을 필터링 해야 되는데 filter 함수를 사용할 수 있다. 0xAC00 ~ 0XD7AF는 Unicode의 한글 음절 범위이다. Unicode.org의 Hangul Syllables 문서를 보면 잘 나와있다.
  3. 이제 한글 문자만 뽑아냈는데 중복된 문자가 있을 수 있으니 distinct 함수를 활용하자.
문제가 해결되었다.
한글과 English가 섞여 있을 경우
한글만 extract할 수 있을까?
라는 내용을 담고 있는 test.txt 파일을 만들고 실행해보면,
D:\doma\korean-word-extractor>lein run test.txt
(한 글 과 가 섞 여 있 을 경 우 만 할 수 까)
와 같이 원하던 결과를 얻게 된다.

도심을 좀 벗어나고 싶군.

SDIM4265 by Jonguk Kim
SDIM4265, a photo by Jonguk Kim on Flickr.
전자파에서 좀 벗어나고 싶다. 연구실에는 컴퓨터에 둘러싸여 있고, 집에서도 크게 다를 것이 없다. 티비, 공유기, 청소기, 다리미, ...

뭔가 흙이 있는 곳에서 나무가 내뿜어주는 산소 마시며 책 읽었으면.

연구실 창밖의 에어컨 실외기가 요란하게 소음을 낸다. 피곤하다.

밴드 연습 녹화. 팬이야 & Funhouse

그간 몇 번의 연습이 있었는데 녹화는 처음한 것 같다. 내가 없는 Funhouse가 훨씬 좋구나, 흐흐.

1. 자우림 - 팬이야

2. Pink - Funhouse

다랭이논

SDIM4295 by Jonguk Kim
SDIM4295, a photo by Jonguk Kim on Flickr.
지리산 둘레길 제 3코스는 꽤나 산길이었는데, 걷는 와중에 이렇게 산을 계단처럼 만들어 놓고 물을 대어 농사를 짓는 곳이 많았다. 사람이 자연을 개척해나가는 능력은 참으로 놀랍다.

이런 방식의 논을 다랭이논이라고 부른다는 푯말을 걷다가 보았는데 맞게 기억하는 것인지 모르겠다.

NFC의 장단점?

다음의 짧은 논문을 읽고 떠오른 생각들 정리해본다. Vassils Kostakos, et al. "NFC on mobile phones: issues, lessons, and future research", 2007

NFC의 편의성

두 폰이 서로 데이터를 주고 받을 일이 있을 때, 블루투스나 NFC를 이용할 수 있다. 논문에서는 두 가지를 이용해서 전화번호를 교환하는 프로그램을 각각 작성한 후에 사람들에게 얼마나 편리한지 질문했다. (실험 결과에 대한 구체적인 이야기가 없었지만!) 전반적으로 NFC가 편리하다는 평이었다고 한다. 그 첫 번째 이유는 사용자가 별로 할 일이 없다는 것. 블루투스는 기기 간의 페어링(pairing)을 해야 한다. 반면 NFC는 접촉만으로 바로 데이터 교환이 가능하다. 단, NFC는 읽고 쓰기 중 하나를 선택하여 단방향(one-way) 통신만 가능하기 때문에 사용자가 개입하여 내가 데이터를 받을 것인지 줄 것인지를 선택해야 하는 문제가 있는데, 여기서는 두 장치가 서로 번갈아가며 주고 받기를 서로 알아서 하도록 프로그래밍했기 때문에 사용자가 할 일이 거의 없었다. 사용자 입장에서는 폰을 서로 갖다대는 것만으로 데이터 교환이 되는 것이 신기하고 편리했을 것이다. 그리고 이것이 두 번째 이유로 연결되는데, 터치로 데이터를 교환하는 것은 블루투스를 이용한 원격(물론 멀지 않은 거리지만) 교환보다 더 원시적인 방법처럼 보이지만 오히려 '중간에 다른 디바이스가 끼어들어 내 정보가 세어나가진 않을까?' 하는 우려를 줄여준다. 내가 보고 있는 상대방과 정확히 정보를 교환하고 있다는 느낌을 사용자에게 주는 것이다. NFC가 근거리 통신 방식이기 때문에 보안 측면에서 유리하다는 것은 이미 많이 언급된 내용이다.

QR code와의 비교

NFC를 사용하면 태그를 폰에 접촉하는 것만으로 바로 데이터를 가져올 수 있다. 반면 QR code를 읽기 위해선 카메라를 이용하는 리더 앱을 가동해야 하는 번거로움이 있다. 얼마전에 코엑스에 갔을 때 재밌게 본 시연이 있었는데, TV에서 나오는 아이유의 음악에 폰이 가까이 두니 관련 링크를 열어 보여주는 것이었다. 물론 여기에 사용된 아이유의 음악은 사람이 듣지 못하는 주파수 영역에 데이터를 주입해서 보내는 것이었고 폰은 그것을 듣고 데이터를 뽑아내는 것이었다.  아이디어는 재밌으나 폰에서는 데이터를 해석할 수 있는 앱을 역시 가동하고 있어야 한다. 이 앱은 카메라 대신에 마이크를 켜두고 있어야 한다는 것이 차이점일 뿐이다. 결국 사용자 편의성 면에서는 QR code와 별다른 차이가 없다고 볼 수 있다.

NFC의 단점? 1. 화면과 멀어지는 사용자

태그를 읽기 위해 - 혹은 다른 NFC 장치에게 데이터를 전송하기 위해 - 서는 접촉을 해야 하므로, 내 폰을 내 눈과 먼 거리에 두어야 할 경우가 발생할 수 있다. 데이터 교환 상황이나 완료 여부, 에러 발생 여부 등을 알아보기가 다소 힘들 수 있다. 물론 예로 든 수준의 알림은 화면에 큰 글자를 출력하거나 깜빡임을 이용하거나 소리를 내거나 진동을 발생시킴으로써 해결할 수 있다. 그러나 화면을 터치함으로써 어떤 interaction을 이어나가야 하는 경우라면 작업을 진행하기에 까다로워질 수 있다.  선택 버튼을 눌러야 한다거나 패스워드를 입력해야 한다거나 따위가 예가 될 수 있다. 결론적으로 interaction이 많은 작업보다는 접촉만으로 바로 데이터가 교환되고 바로 통신이 종료되는 어플리케이션이 적합하다.

NFC의 단점? 2. 악성 데이터

이 문제는 사실 NFC 만의 문제는 아니다. NFC를 이용할 때도 역시 조심하자 정도가 좋겠다. 태그로부터 읽히는 정보에는 스팸이나 악성 페이지로의 링크가 있을 수 있어 주의해야 한다. 조금 더 주의를 기울여야 하는 부분은 태그로부터 정보를 읽어오는 것뿐만 아니라 어떤 명령을 받아들일 수도 있다는 점이다. 어떤 사람의 명함에 폰을 대면 바로 그 사람에게 전화가 걸리거나 이메일을 보내거나 문자를 보낼 수 있도록 폰이 동작하는 것이 그 예가 되겠다. 접촉을 하는 즉시 폰이 어떤 행위를 하게 되는 것은 편리할 때도 많지만 악성 행위를 동작시키는 태그가 이용될 수도 있기 때문에 주의해야 한다.