기술·개발

웹 폰트 추출기

웹사이트를 둘러보다 마음에 드는 폰트가 있으면 다운로드할 수 있도록 (지나치게) 간단한 툴을 제작해보았다.

폰트 정보가 담긴 CSS stylesheet를 찾아 서버 내 웹폰트 경로를 추출하여 다운로드한다. 폰트 다운로드 링크가 닫혀있는 경우에는 메뉴에 폰트명이 표시되지만 다운받을 수는 없다.

Python 3가 설치되어있다는 전제하에 딱 한 줄이면 사이트에서 폰트를 다운받을 수 있다.

예를 들어 카카오서체를 다운받고 싶다면 카카오서체가 적용되어있는 카카오 같이가치 사이트를 다음과 같이 스크립트에 입력하면 된다.

./extract_webfont.py 'https://together.kakao.com'

툴은 여기에서 다운로드할 수 있다. 아파치 2.0 라이센스로 공개된 스크립트의 확장이다.
서체마다 저작권에 유의하여 사용할 것.


Google Duplex: 인공지능-인간간 대화를 꿈꾸다

3일쯤 전에 있었던 구글 IO 2018 키노트에서는 구글 포토의 신기능, 어시스턴트의 새로운 목소리, 새로 디자인된 TPU 3.0 등등 많은 업데이트가 있었다.

아니나 다를까 AI와 딥러닝은 이 모든 업데이트들을 관통하는 핵심 제재였다. 안드로이드 신기능 중 상당수는 어시스턴트, 렌즈와 같이 AI에 뿌리를 두는 기술들이었고 새로 발표한 TPU 역시 딥러닝에 특화된 하드웨어라는 점에서 그러했다.

이처럼 AI 관련 업데이트가 많을거라 예상은 했지만, 개 중에서 특히나 눈을 휘둥그레지게 한 기능이 있어 간단히 다뤄보고자 한다. 바로 Google Duplex라 명명된 기능인데, 상용화된다면/혹은 상용화되기 전부터 상당히 큰 파장을 일으킬 것으로 생각된다.

 

Google Duplex?

OpenTable 등 온라인 예약 서비스 시장이 꽤나 활발한 북미 시장에서도 소규모 영업장과 같이 온라인 예약을 지원하지 않는 경우에는 사람이 직접 전화를 걸어서 예약을 해야했다. 그런데 Google Duplex는 사람에게 명령을 받은 구글 어시스턴트가 직접 영업장에 전화를 걸어서 예약을 한다.

백문이 불여일견이다.

 

영상에서 소개된 실제 Duplex-사람간 통화에서 주목할만한 점은

  1. 액센트, 인토네이션이 완벽에 가깝다. 타사의 음성 기반 어시스턴트를 사용할 때 느껴지는 약간의 어색함이 없다.
  2. hmm, um.. uh, 같은, 사람이 생각할 때에 사용할만한, 의미 전달과는 관계가 없는 표현을 사용할 수 있다. (자연어처리, 음성생성 분야에서는 이런 단어들을 speech disfluency라 한다)
  3. 상대의 발화에 따라 대답까지의 딜레이 시간을 조절한다. “여보세요?”같은 짧은 발화에는 빠르게 대답하는 한편, “정오에는 예약이 불가능해요”같은 긴 발화에 대해서는 대답하기까지의 딜레이가 조금 더 길다.
  4. 뜻 밖의 시나리오에도 대응할 수 있다. “5명 이상인 경우에만 예약이 가능해요. 그냥 매장에 오세요”라는 말에 “그냥 가면 오래 기다리나요?”라고 물어볼 수 있다.

사실 대화 내용 전체가 주목할 만 하다. 그저 놀랍다.

 

Duplex의 아키텍처

개인적으로는 알파고 이상의 충격을 받았던 터라 그 아키텍처가 심히 궁금해서 찾아보았는데, 아직까지 공식적으로 공개된 디테일은 거의 없었다.

구글 공식 AI 블로그에 공개된 매우 단순화된 아키텍처는 다음과 같다.

뉴럴넷에 인풋으로 들어가는 Feature는 세 가지 정도로 분류할 수 있다. (1) 대화 상대방의 음성 신호. (2) 1의 음성 신호로부터 추출한 발화 텍스트. 텍스트 추출에는 구글이 직접 개발한 ASR(automatic speech recognition)이 사용된다. (3) 발화가 이루어진 환경, 문맥과 관련된 정보들. 이전까지 나눈 대화라던가, 어시스턴트가 사람에게 하달받은 명령, 대화 중인 영업장의 업종, 대화 중인 시간 등의 정보가 사용되는 듯하다.

이 Feature들로 RNN(recurrent neural network)을 돌린다고 한다. (아직 개발 중이니 당연하겠지만 디테일이라곤 찾아볼 수 없는 설명이다. 나중에라도 세부 내용을 좀 더 알려줬으면 좋겠다) RNN은 인풋으로 들어온 상대방의 발화에 대해 어시스턴트가 대답할 내용을 텍스트 형태로 출력한다.

RNN에서 출력된 텍스트를 구글의 TTS(text-to-speech) 시스템이 음성 신호로 변환한다, 즉 “읽는다”. 사람만큼이나 자연스럽게 말하게 하기 위해 딥마인드의 WaveNet과 구글브레인의 Tacotron을 사용하는 음성합성 엔진을 사용한다고 한다.

요약하자면 그냥 [음성신호와 발화내용과 문맥 -> RNN -> 대답할 텍스트 -> TTS -> 대답 음성]이 전부다. Duplex의 실제 통화 음성을 들었을 때의 충격에 비하면, 현재까지 발표된 내용에서는 기술적으로 대단한 부분은 딱히 없다. 이후의 발표가 더욱 기대되는 이유다.

추가적으로 실제 통화가 이루어지는 중에 사람이 개입해서 올바른 대화를 지시할 수 있도록 real-time supervised learning을 사용했다고 한다.

 

한계

Duplex도 한계는 명확하다. Duplex가 이렇게 자연스러운 대화를 할 수 있는 도메인은 오직 “특정 영업장에 서비스를 예약하고자 할 때”, “영업시간 등의 영업장 정보를 묻고자 할 때 뿐이다. 상기된 것과 다른 목적의 대화 또는 목적이 없이 시작되는 일상 대화(small talk)는 할 수 없다.

사실 이건 Duplex의 문제라기보다는 현 시대 인공지능의 한계, 또는 자연어처리 문제의 내재적인 복잡성이라고 생각할 수 있다. 작년 11월에 아마존이 주최한 Alexa Prize 2017에서는 음성 어시스턴트 알렉사가 가장 오랫동안 일상적인 대화를 이어나가게 하는 팀에 총 백만달러의 상금을 걸기도 했었다 (1등 팀이 10분 22초라는 성적을 냈다). 50만 달러를 가져갈 수 있었던 이유가 고작 10분간의 대화라니, 이 문제가 얼마나 어려운 문제인지 알려주는 예시라 할 수 있겠다. 누군가는 사람과 20분 자유대화를 할 수 있는 프로그램을 개발하는 것은 “달 착륙 수준이 아니라, 화성 여행을 하는 것이나 마찬가지”라고 평가했었다.

 

의의와 영향

Duplex가 발표됨에 따라 기술과 규제의 측면과 사회윤리적 측면에서 다양한 논의를 해볼 수 있는 주제가 던져졌다고 본다. 여기서는 짧은 시간동안 생각해본 몇 가지만 다뤄보았다.

첫 번째는 인공지능이 할 수 있는 것의 영역에 대한 이야기다.

인공지능과 딥러닝이 일궈온 놀라운 성과가 있었음에도, 지금까지 혁신적인 성과가 있었던 것은 주로 이미지/영상 인식 및 생성 분야였다 (CNN, DCGAN). 물론 문맥이 있는 데이터, 특히 자연어 처리에서도 이에 버금가는 성과가 있었다고 알고는 있었지만, 사람이 대화 상대가 기계일지도 모른다는 생각조차 하지 못할 정도로 발전했는지는 미처 알지 못했다.

인공지능이 뭔가를 할 때마다 나오는 말 같아서 식상하지만, Duplex는 이런 점에서 다시 한 번 ‘인공지능이 할 수 있는 것’의 영역을 크게 넓혔다고 생각된다. 어쩌면 이번에 넓힌 영역의 크기는 알파고가 했던 것 그 이상일지도 모른다.

두 번째는 사회적, 윤리적 영향에 대한 이야기다.

1)

Duplex가 발표되고 나서, 트위터를 비롯한 몇몇 포럼에서는 많은 의견이 오갔다. 기술 발전에 놀라워 하는 의견이 대부분이었지만 몇몇은 끔찍한 아이디어라고 평가하기도 했다. Duplex를 끔찍해하는 사람들의 의견에는 인간 특유의 것이라 믿었던, 즉 인간성에 대한 배신감이 서려있다. 더 이상 실시간 대화는 (특정 분야의 대화에 한해서는) 사람만의 것이 아니다.

바둑에서도 한 차례 이런 일이 있었지만 그 때는 이처럼 거부감이 크지는 않았다. Google Duplex에 대한 거부감이 큰 것은 Duplex가 정복한(것으로 보이는) 분야가 하필 대화이기 때문일 것이다.

인간의 언어를 사용한 대화는 실로 인간만 하는 행위이(었)다. 지능이 높은 동물들도 대화를 한다고는 알려져 있지만, 우리의 언어를 사용하지는 않았다. 사람의 말로 자연스럽게 대화할 수 있는 능력은 곧 인간성을 구성하는 핵심 중 하나였다. 곧, 대화에 자연스럽게 참여하는 모든 대상은 사람으로 간주할 수 있다는 뜻이었다.

물론 Google Duplex 이전의 어시스턴트도 자연스러운 대화가 가능했다. 하지만 이때는 목적을 가지고 대화를 시작하는 주체가 항상 사람이었다. 어시스턴트는 인간의 명령을 대기하고 있을 뿐이었다. 초기발화주체가 항상 사람이라는 일방성이 존재했기 때문에 우리는 발화 상대가 인간이 아님을 알 수 있었고, 따라서 거부감이 느껴지지 않았다.

Google Duplex를 탑재한 어시스턴트는 “인간성”을 획득함과 동시에, 기존 어시스턴트에 존재했던 발화의 일방성을 깨버렸기 때문에 문제가 된다. 이제는 인공지능이 먼저 목적을 가지고 발화를 시작한다. 경우에 따라서는 사람을 수동적인 존재로 만드는 듯한 느낌까지 준다. 사람(영업장의 직원)이 인공지능(구글 어시스턴트)의 발화를 기다리는 것 같은 상황이 연출된다.

2)

요즘들어 젊은 세대의 통화공포증에 대해 연구가 진행 중이라고 한다. ‘공포증’이라 이름붙일만한 수준은 아니지만 본인도 통화를 꺼리고 메신저를 선호하는데, 비슷한 생각을 하는 이들의 의견을 종합해보면 그 이유는 이렇다.

  • 발화는 수정이 불가능하다.
  • 물음과 답변 사이의 긴 딜레이가 용납되지 않는다. 준비할 수 없는 느낌이다.
  • 주로 메신저를 사용하는 등, 안하다보니 통화가 필요한 상황에서도 하기가 겁난다.

Duplex는 마치 이 문제를 해결하기 위해서 개발된 듯하다. 대부분의 “통화가 필요한 상황”은 예약이나 영업시간 질문 등을 위한 것이니, 어시스턴트가 전화를 대신 해주면 전부 해결된다. 유일한 문제는 이게 근본적인 해결책이 아니라는 데에 있다.

 

혼란 속에서 커뮤니티엔 이런 토의주제가 등장했었다:
“당신이 대화하는 대상이 사람이 아니라는 것을 의무적으로 밝히도록 해야 하는가?”

 

맺으며

구글에 의하면 Duplex 기능은 지난 몇 년간 개발되어 왔고, 앞으로도 상용화까지는 상당한 시간이 더 필요할 것이라고 한다.

당장의 문제는 아니지만 자율주행차 논의와 함께 대화봇 논의도 지금보다 활발히 진행될 필요가 있다고 본다. 충분히 대비해서 해로울 것은 없다.

Duplex가 끼칠 영향이 마음 한 켠에선 걱정되는 한편, 실은 이 기술이 가져다줄 미래가 기대되는 마음이 훨씬 더 크다. 당장 오늘 해야하는 전화도 Google Duplex가 있었다면 (그리고 한국어를 지원한다면) 난 주저않고 어시스턴트에게 부탁했을 것이다.

아키텍쳐가 더 자세하게 공개가 된다면 이 내용도 기회가 될 때 다루고싶다.

 

EFA로 내게 맞는 스마트폰 카메라 찾기

해를 거듭하면서 스마트폰 성능이 눈에 띄게 향상되고 있다. 특히나 아이폰에 탑재되는 A-시리즈 APU의 성능은 작년부터 PC를 위협해오더니 급기야 13인치 맥북 프로를 벤치마크 상에서 앞지르기에 이르렀다. 일정 가격 이상의 대부분의 스마트폰 성능이 상향 평준화 되어버린 지금, Kantar가 2014년 수행한 북미 시장에서의 설문조사를 보면 스마트폰 구매 선택은 성능 외적인 부분에서 주로 결정되는 것으로 보인다.

특히 카메라 성능은 고가의 스마트폰을 구입하는 데에 있어서 결정적인 역할을 하는 요인으로 생각된다. 2016년 이전에는 코빼기도 보이지 않던 DxOMark 카메라 벤치마크가 이제는 많은 리뷰에서 빠짐없이 등장하는 현상이 이를 뒷받침한다. 비록 DxOMark에서 다양한 성능 카테고리에 대해서 카메라를 테스트하기는 하지만, 벤치마크와 실제 사용자 경험은 차이가 있을 수 있다. 테스트 점수가 높다고해서 내게 만족스러운 카메라가 되는 것은 아니라는 의미이다.

어떤 카메라가 내게 맞는 카메라인지에 대해 대략의 답을 제공하기 위해 DxOMark 벤치마크 데이터에 대해 탐색적 요인 분석(exploratory factor analysis; EFA)을 해보았다.

분석을 시작하면서 답을 찾고자 한 질문들은 이렇다.

  1. 각 브랜드는 스마트폰 카메라를 제작할 때 어떤 성능요인(색감, 선명도, …)에 중점을 두는가
  2. 각 브랜드의 스마트폰 카메라는 시간에 따라 어떤 방향으로 발전해왔는가
  3. 어떤 스마트폰 브랜드끼리 서로 비슷한 사진을 찍어내는가

주로 애플과 삼성을 중점으로 분석을 진행했다. 이 외의 브랜드의 스마트폰 카메라 분석을 원한다면 다음 gist를 참조하시길. 분석과 코드를 정리해 두었다 [벤치마크 크롤러][노트북].

 

최근 데이터들의 3-factor EFA 결과

DxOMark는 2017년 9월에 새로운 테스트 프로토콜을 제시한 바 있다. 테스트 프로토콜에 따른 테스트 점수 변동이 있을 수 있으므로, 이전 프로토콜에서 만들어진 데이터(이 글에서는 “과거” 데이터라 호칭한다)와 새로운 프로토콜(“최근”)에서 만들어진 데이터를 따로 분석하기로 했다.

Varimax 방법으로 새 프로토콜에서 얻은 데이터들을 회전시킨 EFA 결과, 다음과 같은 factor loading을 얻을 수 있었다.

output_39_0

각 요인에 크게 연관되어 있는 manifest variable에 따라 요인을 해석해서 이름을 붙였다.
FA1: AF, texture, exposure&contrast 등에 강한 음의 상관관계가 있으므로 “Bad Focus”.
FA2: artifacts, noise 등에 강한 양의 상관관계가 있으므로 “Sharp, Clear”.
    FA3: flash, texture 등에 강한 양의 상관관계가 있으므로 “High Detail”.
즉, FA1 값이 클수록 포커스가 잘 안잡히는 카메라, FA2가 클 수록 선명하고 또렷한 카메라다.

현재 시점 (2017/12/29)에 DxOMark에 올라온 모든 최근 스마트폰 카메라의 점수를 요인 점수로 변환해서 그래프로 나타내 보았다.

output_43_0

같은 색 포인트는 같은 회사에서 제작된 스마트폰이다. 이 그래프에서 각 브랜드의 장단점을 파악할 수 있다. 예를들어 구글의 경우 Sharp, Clear 점수가 조금 떨어지지만 포커싱과 디테일이 매우 우수하다. 반면 애플은 포커싱이 비교적 안좋은 반면 Sharp, Clear과 디테일이 우수한 것을 볼 수 있다. 삼성과 구글의 지향점이 서로 비슷한 듯하다.

각 브랜드의 최근 카메라 제작 트렌드를 좀 더 자세히 들여다보기 위해 삼성과 애플 제품만 따로 나타내보았다.

output_42_0

애플 아이폰 모델이 최신형에 이르면서 포커싱보다는 Sharp, Clear과 디테일에 중점을 두고 발전하는 것을 확인할 수 있다. 삼성 또한 갤럭시 S6 엣지에서 갤럭시 노트 8에 이르면서 Sharp, Clear보다는 포커싱과 디테일에 중점을 두는 모양새를 볼 수 있다.

 

과거 데이터들의 3-factor EFA 결과

최근 데이터와 동일한 방법으로 분석을 진행했다. Varimax rotated factor loading은 아래와 같다.

output_51_0

최신 데이터와는 조금 다른 해석을 사용해서 요인에 이름을 붙였다.
FA1: AF, texture, noise 등에 강한 음의 상관관계가 있으므로 “Bad Focus”.
FA2: color, exposure&contrast 등에 강한 양의 상관관계가 있으므로 “Colorful”.
    FA3: noise, flash, exposure&contrast 등에 강한 양의 상관관계가 있으므로 “Clear”.
즉, FA1 값이 클수록 포커스가 잘 안잡히는 카메라, FA2가 클 수록 선명하고 또렷한 카메라다.

DxOMark에서 테스트한 과거 모든 스마트폰 카메라를 스캐터플롯으로 나타내어 보았다.

output_54_0

삼성과 애플 제품들만 모아보았다.

output_55_0

삼성 제품들과 애플 제품들이 서로 다른 클러스터로 구별된다.
삼성은 포커스와 색감, 선명성에서 개선을 이뤄낸 것이 보인다. 최신 기종에 이를수록 개선 폭은 작아지는 것이 확인된다.
애플은 반면에 과거 기종부터 우수한 색감을 보인다. 주로 선명성과, 특히 포커싱 개선에 노력을 들인 것으로 보인다.

 

나에게 맞는 스마트폰 카메라 찾기

Moment라는 스마트폰 카메라 전문 렌즈 제작 스타트업은 “항상 휴대하는 카메라가 가장 좋은 카메라”라고 한 바 있다. 스마트폰 카메라의 우수한 휴대성을 강조한 말이다. “이왕 항상 휴대하는 거, 수치상으로 가장 좋은 카메라 대신, 내가 지향하는 사진을 찍을 수 있게 하는 카메라를 선택하는게 어떨까?”라는 생각에서 시작해서 벤치마크 숫자만으로는 파악할 수 없는 잠재적인 요인들을 요인분석으로 파악해 보았다.

색감을 중요시하는 사람은 전통적으로 우수한 색감을 자랑해온 애플 아이폰, 또는 세대가 거듭함에 따라 비약적인 색감 개선을 이뤄낸 삼성 제품을 선택할 수 있을 것이다. 또, 디테일을 중요하게 생각하는 사람은 디테일(FA1) 1위 제품을 만들어낸 구글 제품을 선택할 수 있을 것이다.

단순 벤치마크보다는 누군가의 스마트폰 선택에 도움이 되는 정보이기를 바란다.

23andMe로 무엇을 알 수 있나

기술이나 생명과학에 관심있는 이라면 스쳐지나가는 말로 한 번 쯤은 23andMe라는 것을 들어본 적이 있을 것이다. 23andMe는 개인 유전체 분석 서비스를 제공하는 생명과학 기업이다. 이전의 유전체 분석이 주로 ‘표준(reference)’이라 불리는 소수의 인간 개체에서 비롯된 유전체를 분석하는, 일반화가 필요한 작업이었다면, 개인 유전체 분석은 말 그대로 분석을 원하는 개개인의 유전체를 분석해서 개별화된 결론을 제공하는 서비스다.

kitlaydown.f45ac485ec3c

23andMe kit (23andme.com)

150~200 USD 상당의 서비스를 구입하면 23andMe에서 여러분의 집으로 키트를 보내준다. 그 키트에 침을 뱉어 샤카샤카 흔든 다음 다시 회사로 전송하면 그 침에 있는 유전정보를 바탕으로 가능한 모든 정보(심지어 여러분의 귓밥이 말랐는지 젖었는지까지!)를 리포트해준다,는 개념이다. 23andMe는 침을 기반으로 한 유전체 분석 키트를 상용화시켜 타임 지의 ‘올해의 발명품’에도 이름을 올린 바 있다. 그 외에도 구글 설립자 중 한명인 세르게이 브린의 아내의 회사로도 알려져있고 서비스 특성상 FDA와의 아슬아슬한 줄타기로도 여러차례 언론에 등장한 바 있다.

요 평범한듯 기발한 사업구상의 핵심 서비스는 크게 두 가지라고 할 수 있을게다.

첫째는 생물학적 계보 리포트다. 나의 뿌리는 어느 대륙에서 시작했는지, 어떤 민족의 유전형질이 얼마나 섞여있는지를 리포트해준다는 것이다. 더욱 거슬러 올라가 자신에게 네안데르탈인의 유전자가 얼마나 섞여있는지 또한 알 수 있다. 실용성보다는 재미를 목표로 만든 서비스가 아닐까 싶다.

둘째는 질병 리포트다. 이러이러한 대립형질을 가지고 있는 사람들은 어떠어떠한 질병을 가질 가능성이 높으니 미리 관리 좀 하시라!는 식의 개인화된 질병 리포트를 받는다는 것은 가타카를 비롯한 공상과학 영화에서도 자주 만날수 있었던 신나는 상상이다. 150~200달러라는 (굉장히 많이 저렴해졌지만) 여전히 값나가는 서비스를 제공받고자 검토하는 소비자의 입장에서는 대부분 이 질병 리포트를 목적으로 23andMe에 등록하는 것으로 보인다.

당신과 비슷한 유전체를 가지는 사람들이 잘 걸리는 질병을 바탕으로 개개인의 질병을 예측하는 것이기에 23andMe의 질병 리포트가 더욱 정확해지고 쓸모가 있어지려면 이 회사의 서비스를 이용하는 사람이 많아져야 한다. 다행(?)히도 올해 4월 서비스 이용자가 200만 명을 돌파하는 등 승승장구하는 모습을 보면 데이터의 신뢰성을 어느정도 높게 쳐줄 수 있을 듯 하다.

23andMe는 자체 데이터베이스를 기반으로 제공하는 리포트 외에도 사용자가 직접 자신의 유전체를 분석할 수 있도록 raw data를 제공하고 있다. 이 글은 23andMe에서 제공하는 서비스 외, 내가 직접 정보를 얻어오기 위해 작성한 파이썬 스크립트에 대한 이야기다. (서론이 매우 길었다)

23andMe Raw Data

본인은 아직 23andMe를 이용해보지 않았으므로(…) 다른 분이 인터넷에 공유해 둔 raw data로 몇 가지 간단한 리포트를 제공하는 파이썬 모듈을 만들어보고자 한다. 23andMe에서 제공하는 raw data는 다음과 같이 생겼다.

스크린샷 2017-05-20 오후 6.46.44

데이터에 대한 간단한 설명과 함께 탭으로 분리된 텍스트 형식의 데이터가 나온다. 내가 사용한 다른 분의 데이터는 2011년, 아마도 일루미나 HumanHap550 BeadChip을 이용해서 만들어진 것으로 보이며 레퍼런스 지놈으로는 NCBI36(hg18) 버전을 사용했다.

  • chromosome, position은 그 말 그대로 각각 염색체와 염색체상의 위치이다.
  • rsid(Reference SNP cluster ID)는 특정 SNP(single nucletide polymorphism; 연속하지 않은 한 염기에 변이가 일어난 것)의 구별자이다. 23andMe 뿐만 아니라 국제적으로 널리 사용되는 명명법이라고 한다. 주로 ‘rs’로 시작한다.
  • rsid가 등록되어있지 않은 SNP의 경우 23andMe 내부에서 자체적으로 할당한 id를 사용한다. 이건 ‘i’로 시작한다.
  • genotype은 해당 SNP에서의 genotype을 말한다. 두 글자는 각각 엄빠로부터 받은 SNP을 의미한다. 23andMe에서는 모든 genotype을 (+) strand를 기준으로 작성한다고 한다. dbSNP 등 다른 데이터베이스에는 (-) strand의 genotype으로 기재되어있는 경우도 있어 주의를 요한다.

MyGeno: 23andMe 분석 툴

이 데이터로 세 가지 종류의 리포트를 제공하는 python module (GenoMe)을 작성해 보았다. 튜토리얼 따라 명령어 몇 줄로 쉽게 이용할 수 있다. 23andMe 서비스를 이용하고 있는 사람이라면 raw data를 다운로드받아 사용할 수 있다.

1. Wellness Report

알코올 분해를 잘 하는지, 카페인 섭취는 어떻게 되는지, 유당 분해는 가능한지 등 약 8개 항목에 대해 리포트를 출력한다. 23andMe API를 이용했다. 출력 예시는 아래와 같다.

============================== WELLNESS REPORT ============================== 

< Alcohol Flush Reaction >
------------------------------------------------------------------------------------
The marker we tested comes in two different forms, the G variant and the A variant. The A variant results in an enzyme that is less efficient at breaking down acetaldehyde. The A variant is also known as c.1510G>A, Glu487Lys, and Glu504Lys. This marker has been studied the most in people of East Asian descent.
  rsID: rs671
  Yours: G;G - homozygous
  Detail: 2 | Alcohol Flush: Normal, doesn't flush. Normal hangovers. Normal risk of Alcoholism. Normal risk of Esophageal Cancer. Disulfiram is effective for alcoholism. | 60.2% of JPT

...

2. rsid로 검색

원하는 rsid의 SNP에 대해 나의 genotype과 함께 연관 형질을 출력한다.

rs28897696 | G;G | 0 | normal | 0.0% of JPT

3. 형질로 검색

궁금한 형질을 입력하면 이와 관련된 모든 SNP와 연관 정보를 출력한다. 다음은 “baldness”를 입력한 출력 결과.

rs6152 | G;G | 0.5 | able to go bald | 100.0% of JPT
rs2223841 | T;T | 1.2 | more likely to go bald before age 40 | 100.0% of JPT
rs6152 | G;G | 0.5 | able to go bald | 100.0% of JPT
rs2223841 | T;T | 1.2 | more likely to go bald before age 40 | 100.0% of JPT
rs2180439 | C;T | 2.5 | Increased risk of Male Pattern Baldness. | 44.2% of JPT
rs11683401 | C;T |  | --% of JPT
rs2073963 | G;G | 2.5 | increased risk of baldness | 18.6% of JPT
rs1511061 | T;T |  | --% of JPT
 * more details at https://www.snpedia.com/index.php/baldness

“food allergy” 등도 좋은 예시가 될 듯.

SNP 정보가 주로 서구권에 대해서 축적된 것을 감안하여 1000 genomes project의 데이터를 포함시켰다. 기본값으로 JPT(일본 도쿄의 사람들)를 사용해서, 군집 전체에서 나와 같은 genotype을 갖는 사람들의 비율을 보여준다. 23andMe 또한 데이터가 서구권에만 집중되었다는 비판을 받곤 하는데, 이에 아시아권 군집에서의 genotype 비율을 제공하여 참고치로 사용할 수 있도록 했다. JPT 외의 다른 군집을 사용하려면 여기여기를 참고.

이미 200만 명이 넘는 사람들의 유전체 데이터를 축적한 23andMe의 리포트에 비할 바는 아니지만, 새롭게 표현형과의 연관성이 밝혀진, 아직 23andMe에는 등록되지 않은 SNP, 혹은 23andMe에서 제공하지 않는 궁금한 형질에 대해서는 쉽고 빠르게 대략의 정보를 얻을 수 있을 것이다.

WWDC 2016을 되돌아보다

wwdc-2016-live-stream
[이미지 – http://wccftech.com/ ]

    올해의 WWDC는 기대한 대로 운영체제 업데이트의 향연이었다. 본디 매킨토시라는 이름으로 대중에 더 친숙한 퍼스널 컴퓨터의 OS X(macOS)과 모바일의 iOS, 두 운영체제를 다듬고 버전업하는 공간이었던 WWDC는 지지난해 watchOS와 tvOS의 합세로 무려 네 가지 운영체제의 축제판(혹은 난장판)이 되었다. 기조연설 내내 네 가지 서로 다른 이름의 “–OS!”를 외치는 애플 임직원들의 모습은 가히 인상적이었다. 관리해야 할 운영체제의 절대적인 숫자만 두 배로 늘어난 올해, 네 가지 주요 운영체제의 업데이트는 우려와 함께 기대를 낳기에 충분했고, 결국 발표에 대한 극히 양분된 평가를 낳기에 이른다.

물론 애플의 기조연설은 항상 양분된 의견을 가져왔었다. 다만 올해는 상황이 조금 달랐다. 본인이 접한 대부분의 반응은 분명 부정적이었다. “가장 기대되지 않는 iOS 업데이트”, “겨우 정착된 디자인을 한 방에 날려버린 다운그레이드” 등 올해로 10번째 돌을 맞은 iOS에 대해서는 물론 기조연설 전반에 대해서도 “역대 급으로 실망스럽다”는 의견이 지배적이었다.

모든 의견은 존중받아 마땅하고 귀기울여 손해볼 것 없다. 그러나 올해 WWDC는 실제 업데이트 될 운영체제의 긍정적인 가능성에 비해 지나치게 과소평가 된 경향이 있다고 본다. 첫 번째 아이폰 출시 이래 매 년 되풀이된 ‘혁신은 없었다’는 고정멘트에 희생되었다고 본다. 이에 본 글에서는 이미 지루해져버린 단어들에 묻혀버린, 그러나 새로운 가능성으로 거듭날 수 있음을 강조한 WWDC 기조연설 내용 몇몇을 조명하고자 한다.

사실 2016년 WWDC는 이미 6월에 지나갔다. 기술산업에서는 영원보다 길다는 약 3개월이 지난 지금이지만 애플이 두 시간동안 소비자와 투자자, 그리고 리뷰어들에게 무엇을 보여주었는지 찬찬히 되짚어보며 곧 있을 네 가지 운영체제들의 공식 릴리즈를 맞이해본다.

 

0. 들어가기 전에: WWDC는 ‘Developers Conference’다.

‘Mechanical Engineers Conference’가 아니라는 말이다.  WWDC는 World Wide Developers Conference의 준말로 1988년부터 무려 28년 간 애플이 소프트웨어를 업데이트하고 개발 요량을 전하는 개발자들의 장이다. 새로운 제품이 발표되지 않았다고 WWDC를 실망스럽다고 매도하는 의견은 납득하기 어렵다.

새로운 하드웨어에 대한 비평은 9월 이후에 있을 Special Event 다음에 해도 늦지 않다. 자타공인 “software company”인 애플이 뽐내는, 여러분의 디바이스에 곧 탑재될 소프트웨어의 기능향상을 팔짱끼고 지켜보는 것이 WWDC 감상의 포인트임을 글머리에 강조하고 싶었다.

 

1. watchOS 3

스마트워치는 과연 미래의 먹거리인가?

2014년 9월 Special event에서 아이폰 6와 함께 등장한 애플워치는 웨어러블 시장의 절반 이상을 독식하며 스마트워치 시장 성장의 일등공신이 되었다. 비록 투자자들이 기대한 바에는 한참 못미치는 판매실적을 보였지만 ‘스마트워치’라는 시장이 주목을 받을 수 있게, 독립된 시장으로 시작할 수 있게 된 데에 매우 큰 역할을 했다는 것은 무시할 수 없을 것이다. 그랬던 애플워치가 벌써 두 번째 생일을 앞두고 있다.

스마트워치가 미래의 먹거리라는 의견과는 달리 여전히 스마트워치 시장은 소비자에겐 작고 암울하다. 현대적인 형태의 스마트폰이 처음 등장했던 때와는 대조적으로 스마트워치는 소비자에게 그 필요성을 설득시키는 데에 실패했다. 스마트폰이 대체한 시계를 왜 다시 차야하는가? 영원불변한 가치의 고급시계를 두고 왜 1년이면 ‘낡은 것’이 될 스마트워치를 구매해야 하는가? 대 화면 스마트폰이 인기를 끄는 이 시대에 왜 1인치짜리 화면을 들여다 봐야 하는가? 스마트폰이면 모든 일을 할 수 있는데 왜 굳이 같은 일을 더 못하는 스마트워치를 구매해야 하는가? 현재의 스마트워치는 여전히 해답을 내놓는 데에 실패했다.

필요성을 제쳐두고라도 스마트워치는 전자제품으로서 해결하지 못한 한계가 많다. 지금 이 글을 쓰는 나는 근 1년 3개월간 스마트워치를 착용하고 있는데, 지난 사용기간동안 새로이 깨달은 단점들을 몇 가지 적어보자면 다음과 같다.

  • 스마트워치는 구조상 한 손으로 조작할 수밖에 없다. 이 때문에 손목 위에 항상 자리한다는, 매우 편리할 것 같은 특성에도 불구하고 실제로는 불편하다.
  • 스마트워치는 요구되는 성능에 비해 응답이 느리다. 급한 일은 휴대전화로 하는 것이 정신건강에 좋다.
  • 스마트워치는 개인적이기 어렵다. 통화를 주변에 방송하고 싶지 않다면 휴대전화로 받아라.

과연 이런 제품을 중심으로 하는 시장을 미래의 시장이라고 할 수 있을까?

watchOS 3와 애플의 대답

애플워치의 발표와 함께 공개된 워치만의 운영체제인 watchOS (당시엔 ‘Watch OS’라는 이름으로 공개되었다) 또한 애플워치와 함께 2년을 늙었다. 작년 발표된 watchOS 2에서는 큰 판올림 없이 서드파티 컴플리케이션과 네이티브 앱을 지원하는 것에 그쳤었다. 올해 6월 발표된 watchOS 3는 완전히 새로운 OS라고 해도 좋을 정도로 모든 방면에서 더 나은 방향으로 바뀌었다.

watchos_3
[이미지 – http://macstroke.com/ ]

    개발자들에게 watchOS 3 개발 시 주의사항을 설명하며 애플은 세 가지 원칙을 – glanceabilty, actionability, responsiveness  – 수도 없이 강조했다. 각각을 간단히 풀어보자면 아래와 같다:

  1. Glanceability
    “필요한 정보를 곧 바로 얻을 수 있도록 하라.”
    현재 강수확률, 다음 일정 등에 대한 정보를 곧바로 얻을 수 있게 애플은 모든 워치 앱이 컴플리케이션을 지원하는 것을 권장했다. 또한 새로 생긴 Dock에서 개괄적인 정보를 빠르게 얻을 수 있도록 앱의 초기화면 디자인에도 신경쓸 것을 당부했다.
  2. Actionability
    “자주 사용하는 기능을 더욱 쉽게 할 수 있도록 하라.”
    완료된 작업을 체크한다든지, 새로운 운동을 시작한다든지, 앱마다 가장 자주 사용하는 기능을 최소한의 터치만으로 곧바로 실행할 수 있도록 할 것을 당부했다. 그 결과 워치에 탑재된 대부분의 기본앱에서 원하는 기능을 실행하기까지의 과정이  1~3단계 단축되었다.
  3. Responsiveness
    “앱이 항상 최신 정보를 표시하고 사용자가 요구하는 즉시 반응할 수 있도록 하라.”
    애플은 늦어도 3초 이내(!)에는 사용자가 요구한 작업이 완료될 것을 요구했다. 자주 사용하는 앱은 램에 상주시키고 백그라운드에서 앱을 새로고침하도록 함으로써 터치와 동시에 반응하도록 앱을 디자인할 수 있다는 것을 강조했다.

잡스는 2010년에 아이패드를 발표하면서 아이패드는 노트북 컴퓨터만큼 파워풀하지는 않고 스마트폰만큼 휴대성이 뛰어나지는 않지만 “몇몇 작업에 있어서는 노트북과 스마트폰보다 훨씬 뛰어난” 장치임을 강조했다. 시계는 스마트폰보다 모든 작업을 잘 수행하기 위한 장치가 아니다. 시계는 몇 가지 매우 한정적인 작업을 스마트폰보다 더욱 빠르고 간단하게 수행하기 위한 장치다. 드디어 애플(과 다른 전자 기업들)이 스마트워치가 어떤 제품인지에 대해 이해하기 시작했다.

Pebble은 킥스타터로 첫 사업을 시작하며 현대 스마트워치 산업에 “스마트폰 알림을 효율적이고 빠르게 관리할 수 있어야 한다”는 원칙을 제시한 바 있다. 페블 이후 삼성 기어와 애플워치를 포함한 대부분의 스마트워치는 페블이 세운 원칙에 충실했다. 애플은 watchOS 3를 발표하면서 페블 이후 세계 모든 스마트워치가 나아가야할 새로운 방향을 정립했다. 앞으로의 스마트워치는 애플이 제시한 방향을 상당히 참고할 것이라 확신한다. 그렇게 서로에게 배우며 기술은 또 한 발짝 더 발전할게다.

Health & fitness, + emergency

스마트워치 3원칙으로 현대적인 스마트워치가 가져야할 속성을 정의했다면, 스마트워치가 주종목으로 삼아야 할 주제로 건강관리 및 피트니스 기능을 꼽았다. 사실 이미 한-참 전에 Fitbit에 의해 정립된 주제다. 특별한 것이 있다면 애플은 여기에 응급상황 대처 기능을 추가했다는 점이다.

실제로 얼마나 쓰일 지는 모르겠지만, 쓸모 없는 기능으로 남는 것이 가장 좋을 기능이지만, 단 한 차례라도 유용하게 쓰인다면 이 기능은 제 역할을 다한 것이리라. 기술적으로는 단순한 기능이지만 많은 사람들의 상당한 고민이 뒷받침된 결과일테다.

 

2. Apple values

애플 공식 홈페이지 맨 아래 한 구석에는 찾는 사람이 많지 않은 링크가 존재한다:

스크린샷 2016-09-04 오후 10.13.59
[이미지 – http://apple.com/ ]

바로 애플이 추구하는 가치들에 대한 링크다. 지난 3월, 애플은 March Event에서 재활용 프로그램과 Liam을 소개하며 환경을 강조한 바 있다. 이번 WWDC 기조연설은 무려 네 가지 가치 – 포용과 다양성, 접근성, 개인정보, 교육 – 를 강조한 연설이었다. 이중 앞선 세 가지에 대해 적어보려 한다.

Inclusion and Diversity

애플이 인종다양성, 성적지향존중, 양성평등을 강조하는 기업임은 자명하다. 애플은 연중 가장 규모가 큰 WWDC 기조연설을 플로리다 동성애 나이트클럽 테러사건을 추모하는 것으로 시작했다. 애플에 있어서 다양성이라는 가치가 얼마나 중요한지 엿볼 수 있는 순간이었다. 사람 대 사람으로서, 귀담아 들을만 했던 문구를 옮겨적어본다.

“우리는 우리의 다양성을 기립니다. 우리는 다양성이 우리를 더 강하게 함을, 모두를 앞서나가게 함을 압니다.”

“We celebrate our diversity. We know that it makes us stronger, and moves everyone forward.”

– Tim Cook, CEO of Apple Inc.

WWDC 이후의 이야기이지만 인종 및 양성평등, 성적지향존중에 대한 메세지를 담은 이모티콘을 대거 업데이트하기도 했다. 세계 최상위 기업이 자칫 배척받기 쉬운 가치들을 적극 지향하는 기업이라는 사실은 정말 축복이 아닐 수 없다. 상업적인 이유에서든 아니든 사회적 약자와 소수자를 포용하는 가치를 대중 전반에 퍼뜨리려는 노력은 존경받아 마땅하다.

Accessibility

애플의 다양성 사랑은 접근성(혹은 ‘손쉬운 사용’)에서도 극명히 드러난다. 새로운 운영체제들에서 대폭 향상된 손쉬운 사용 기능들모두가 사용할 수 있는 기술에 대한 애플의 의지를 차고 넘치게 보여주었다. 휠체어 사용자를 위한 피트니스 트래킹은 애플이 이 분야에 들이는 노력과 분야에서의 독보성을 보여준다.

Privacy

이번 기조연설에서 가장 혹평을 받은 기능은 Siri를 필두로 한 인공지능이 아닐까 싶다. “구글을 따라가는 데에 그쳤다”는 평가를 받은 것이 바로 애플의 인공지능 기술이다. 그러나 이러한 평가들은 중요한 것을 놓치고 있다. 개별 장치 수준에서, 서버에 정보를 업로드하지 않고 학습을 하는 인공지능을 상용화하려는 시도는 본인이 알기로는 이 정도 규모의 대기업 중에선 애플이 최초다. 비록 장치를 바꾸거나 초기화할 때마다 바닥부터 다시 학습해야 한다는 번거로움이 있지만, 사용자의 개인정보 보안을 신경쓰는 이런 기술을 나는 더 선호하는 바다.

wwdc-2016-slide-differential-privacy-on-device-intelligence
[이미지 – http://www.idownloadblog.com/ ]

    또한 애플은 이론적인 기술이었던 differential privacy(차등 개인정보; 취합된 데이터베이스에서 역으로 사용자 개개인에 대한 정보를 얻어낼 수 없도록 정보 수집 과정에 의도적으로 임의의 노이즈를 삽입하는 기술)를 iOS 10과 macOS Sierra 전체에 폭넓게 도입함으로써 서버에 사용자 정보를 얻어오는 경우에도 개개인의 정보가 안전히 취급될 수 있도록 했다.

 

3. 맺음

WWDC 2016은 애플이 스스로를 가감없이 드러내 보인 연설이었다. 최근 애플이 향하는 방향에 대한 인터뷰수 차례 공개된 바 있다. 애플의 지향점에는 관심이 있지만 기나긴 인터뷰를 읽기에 부담이 되는 사람에겐 WWDC 2016이 훌륭한 대답을 해줄 수 있을 거라 생각한다.

여러 장치 분야에 걸쳐 반복되는 기술 상향 평준화에 의해 혁신적이고 사람을 흥분시키는 기업으로서 애플의 시대는 지나갔을지 몰라도 세심한 배려를 담은, 생활을 변화시키는 기술 기업으로서의 애플의 시대는 쉽게 지지 않을 듯 하다.


– 애플에서 제공하는 WWDC 2016의 전체 영상은 여기에서 볼 수 있습니다.