월별 글 목록: 2016년 4월월

아이패드를 외장모니터로 사용하기 Duet Display

Duet Display

Duet Display

아이폰/아이패드를 컴퓨터의 외장모니터로 사용할 수 있게 하는 앱은 많이 있는데 그중에서 가장 쓸만한 Duet Display에 대해 소개합니다.

Duet Display는 아이폰/아이패드와 USB 케이블을 이용해서 연결하기 때문에 속도도 아주 빠르며 충전도 되는 일석이조의 효과가 있습니다. 또한 일반 외장 모니터와 동일하게 시스템에서 인식 해서 모니터의 정렬도 원하는대로 변경할 수 있습니다.

위의 영상을 보면 유튜브 영상을 Duet 으로 실행한 아이패드와 맥사이에 위치 시켜도 화면의 지연이 없이 잘 재생됩니다.

Duet Display iOS 앱은 한번만 구매하면 아이폰/아이패드에서 모두 사용할 수 있습니다. 가격은 $17.59달러로 현재 환율로는 2만원 정도로 저렴한 편은 아니지만 이정도 가격을 지불할 가치는 있습니다.

기본적인 외부모니터 기능 이외에 제가 매력적이라고 생각하는 기능은 다음과 같습니다.

  • 미러링 기능 : 컴퓨터에서 보고 있는 화면을 아이폰/아이패드에서 그대로 표시할 수 있어서 외부에서 반대편에 앉은 사람에게 컴퓨터와 동일한 화면을 보여주는 상황에서 유용할것 같습니다.
  • 터치 가능 : 단순히 외장모니터가 아니라 Duet에 표시된 화면에 터치를 하면 그게 컴퓨터에 마우스 클릭으로 동작합니다. 그래서 터치를 사용하면 더 편한화면은 Duet에서 사용하면 좋습니다

iOS 8.0 이상의 모든 아이폰/아이패드를 지원하고 컴퓨터는 맥 OS X 10.9, 윈도우 7 이상이면 됩니다. 현재는 아이패드 프로 해상도도 지원하는등 지원이 잘되고 있습니다.

게시글의 아마존, iTunes 링크들을 통해 구매를 하시면 제휴(Affiliate) 프로그램에 의해 저에게 일정 금액이 적립될 수 있습니다. ^_____^

개발자를 위한 아이패드 프로 12.9인치 앱 리뷰

아이패드 프로 12.9인치는 스마트 키보드가 있어 개발자들이 활용하기에 유용한데요. 개발자들이 사용하기 좋은 앱을 소개해드리려고 합니다.

동영상으로 실제 실행하는 영상을 촬영했으니 참고하세요

코딩용 에디터 Coda

Coda는 저도 구매만 하고 사용하지 않는 앱이지만 유용하게 사용하실분들도 있을까 싶어서 소개합니다. Coda는 간단한 에디터, 터미널 접속, 브라우저를 하나의 앱에서 실행할 수 있습니다.

아이패드에서 간단한 HTML, CSS 파일을 만들고 내장 브라우저에서 확인후 바로 업로드할 수 있고 이미 서버에 있는 파일을 수정할 수도 있습니다.

SSH 클라이언트 Prompt 2

Prompt 2는 SSH 클라이언트로 서버에 접속할 수 있습니다. 데스크탑에서 사용하던 SSH 프로그램 못지 않은 기능으로 왠만한 작업은 다 가능합니다.

  • 단축키 지원(esc 키도 단축키로 사용할 수 있어요)
  • 한글 지원
  • 다양한 테마, 글자 크기, 글꼴 변경 지원
  • 터치를 이용한 복사 및 붙여넣기
  • Key를 이용한 서버 접속
  • 터치 ID를 이용한 앱 잠금
  • 클립을 이용해 자주 사용하는 문자열 저장 및 원터치 붙여넣기
  • 화면분할
  • 접속유지(접속이 끊길것 같으면 푸쉬로 알려줘서 접속 연장)

Prompt 2는 개발자라면 꼭 살만한 앱이라고 생각합니다. 언제 어디서든지 서버에 접속할 수 있다는건 노트북을 항상 들고 다니지 않아도 된다는 이야기겠죠?

S3, FTP 접속 프로그램 Transmit

Transmit은 FTP, AWS S3에 접속하는 프로그램입니다. 원격에 있는 데이터를 확인하거나 다운로드, 업로드, 편집이 가능합니다. 터미널을 이용해서 할 수도 있겠지만 이 프로그램을 이용하면 좀더 편하게 탐색하고 확인할 수 있습니다.

윈도우 원격접속 프로그램 Microsoft Remote Desktop

Microsoft Remote Desktop은 IE나 공인인증서가 필요한 경우 원격에 있는 윈도우에 접속하는 프로그램입니다. 윈도우를 원격에 두고 필요할때 접속하기에 좋습니다.

터치도 지원하고 한글 변환도 잘되서 사용하는데 거의 불편함이 없을정도입니다.

마치며

4개의 앱을 소개했지만 제가 자주 사용하는 프로그램은 Prompt 2Transmit 입니다. Coda는 개념을 이해못했고 제 사용목적에 맞지 않는것 같더라구요.

이외에도 개발자에게 유용한 앱이 있다면 알려주세요 ~

게시글의 아마존, iTunes 링크들을 통해 구매를 하시면 제휴(Affiliate) 프로그램에 의해 저에게 일정 금액이 적립될 수 있습니다. ^_____^

트랙볼 마우스 3종 비교 – 켄싱턴 슬림블레이드, 익스퍼트 무선, 로지텍 M570

컴퓨터를 많이 사용하다보면 제일먼저 무리가 오는 곳이 손목입니다. 마우스를 많이 움직이면 손목아래 부분이 닳고 손목도 많이 아프죠. 저도 몇년 전까지는 비슷한 증상에 힘들어 하다가 트랙볼 마우스를 쓰면서는 거의 사라졌습니다. 저는 켄싱턴 슬림블레이드(Kensington SlimBlade Trackball Mouse)를 사용하고 있는데요. 최근 트랙볼 마우스 2개를 더 사서 장단점을 비교해봤습니다. 추가로 구매한 트랙볼은 켄싱턴 익스퍼트 무선(Kensington Expert Wireless Trackball), 로지텍 M570(Logitech M570 Wireless Trackball) 입니다.

동영상으로 리뷰 해봤는데 시간이 없으신 분은 동영상은 스킵하고 아래 글을 읽어주시면됩니다.

동영상에서는 슬림블레이드가 더 비싸다고 했는데 현재(2016년 4월 17일) 아마존 가격 기준으로는 슬림 블레이드가 더 저렴하네요 ㅎㅎ; 참고로 아마존에서 3가지 제품 모두 한국까지 7~8 달러 정도만 추가하면 직배송이 가능합니다.

켄싱턴 슬림 블레이드

  • 장점
    • 높이가 낮다
    • 볼이 커서 움직임이 좋다
  • 단점
    • 스크롤 방법이 볼을 수평으로 움직여야 되서 신경써야 된다
    • 스크롤 할때 가짜로 스크롤 소리가 나는데 이걸 끌 방법이 없다

켄싱턴 익스퍼트 무선

  • 장점
    • 볼이 커서 움직임이 좋다
    • 스크롤 방법이 링을 움직이는거라 신경쓸 필요가 없다
    • 블루투스, 무선 리시버 2가지 방법으로 무선 연결이 가능하다
  • 단점
    • 볼에 스크래치가 생긴다(처음 받았을때 부터 있던거라 다른분들은 어떨지 모르겠네요. 저만 그럴수도 있구요)(추가: 클리앙 댓글에 보면 역시 제가 사용하는 제품이 불량이었던것 같네요. 다른분은 괜찮다고 합니다.)
    • 볼의 스크래치 때문인지 볼 자체의 내구성이 안좋은건지 슬림 블레이드 보다 소리가 심하다(추가: 클리앙 댓글에 보면 역시 제가 사용하는 제품이 불량이었던것 같네요. 다른분은 괜찮다고 합니다.)
    • 스크롤 링의 유격이 있다(추가: 클리앙 댓글에 보면 이건 이전 익스퍼트 시리즈도 마찬가지라고 합니다.)
    • 높이가 높다
    • 블루투스 모드로 연결할 경우 TrackballWorks를 사용할 수 없다

로지텍 M570

  • 장점
    • 가볍다
    • 기존 마우스 쓰던사람도 쉽게 적응할것 같다 모양이 똑같아서
  • 단점
    • 볼이 작아서 커서 움직이는데 여러번 손가락을 옮겨야 한다
    • 기능 버튼 2개를 누르기가 힘들다
    • 휠 버튼 동작이 마음에 안든다

결론은 트랙볼 사용하고 싶다면 꼭 좋은거 쓰세요. 로지텍 M570은 피하시고 켄싱턴 슬림블레이드나 익스퍼트 무선을 고르시면됩니다. 익스퍼트 무선은 제가 받은것만 볼이 이상했을수도 있으니 다른 리뷰들을 더 확인해보시기 바랍니다. 제가 익스퍼트 무선 2번 살 돈은 없어서 제꺼가 불량인지 아닌지 확인까지는 못하겠네요 ㅜㅜ

 

게시글의 아마존, iTunes 링크들을 통해 구매를 하시면 제휴(Affiliate) 프로그램에 의해 저에게 일정 금액이 적립될 수 있습니다. ^_____^

아이패드 프로 29W 충전기 리뷰

애플 29W 충전기 리뷰

애플 29W 충전기 리뷰

지난달 애플은 USB-C to 라이트닝 케이블 제품을 선보였습니다. 이 케이블과 뉴맥북에 사용하는 29W의 USB-C 전원 어댑터를 함께 이용하면 12.9인치 아이패드 프로를 좀더 빨리 충전할 수 있다는 장점이 있다고 해서 한번 테스트 해봤습니다.

우선 각 제품의 링크와 가격은 다음과 같습니다.

애플 답게 어마어마한 가격이죠; 심지어 지금까지 제일 비쌌던 케이블인 썬더볼트 케이블의 가격도 뛰어 넘는 가격입니다. 게다가 빠른 충전의 장점을 얻기 위해 29W 어댑터 까지 구매해야 하는걸 생각하면 10만원에 가까운 돈을 투자해야합니다.

다행히도 저는 뉴맥북이 집에 있어서 29W 전원 어댑터는 따로 사지 않아도 되서 케이블만 구매 했는데요. 다른 분들을 위해 제가 충전 속도를 직접 확인해봤습니다. 리뷰에 사용된 아이패드 프로는 12.9인치 LTE 모델입니다.

영상을 선호하시는 분들은 아래 유튜브 영상을 참고해주시고 충전 속도만 빠르게 보고 싶으시면 아래로 스크롤해서 충전 속도만 확인하시면됩니다.

충전 속도

아이패드 프로 12.9 인치를 구매하면 따라오는 전원 어댑터는 12W인데요. 29W와 12W의 충전 속도 비교결과 다음과 같습니다.

화면이 꺼진 대기상태 에서의 충전 소요 시간 (12W vs 29W)

  • 20%(50분 vs 23분)
  • 50%(2시간 10분 vs 58분)
  • 80%(3시간 36분 vs 1시간 22분)
  • 100%(5시간 vs 2시간 17분)

결과를 보고 정말 놀라웠습니다. 2배차이가 났으며 완전 충전 시간은 2배 이상의 차이가 있었습니다. 12W로 20% 충전 할 시간에 29W는 50% 까지 충전됩니다!

다른 애플 제품도 충전 가능한가?

이쯤 되니 라이트닝 케이블을 사용하는 다른 애플 제품들도 빠르게 충전 가능한지 궁금해졌습니다. 애플의 설명에는 12.9 인치 아이패드 프로만 언급 되어 있었지만 다른 제품들도 왠지 빨리 되는건 아닌가 하는 호기심이 있었거든요.

아이패드 미니 1세대, 아이폰 6S Plus를 이용해서 테스트 해본 결과 해당 기기들에서는 29W로 충전하는것에 대한 효과가 전혀 없었습니다. 최근 새로 나온 9.7 인치 아이패드 프로는 제가 구하지 못해서 알수 없지만 아마 안되지 않을까 싶습니다.

사야되나?

아이패드 프로 12.9 인치를 저처럼 자주 사용한다면 가격이 부담되더라고 구매하는것이 좋다고 생각합니다. 자주 사용하는 사람일수록 급할때 충전속도가 느리면 답답하니까요. 아이패드 프로를 자주 사용하지 않고 그냥 가끔 보거나 충전 느려도 그만인 분들은 굳이 구매하시지 않아도 될것 같습니다.

뉴맥북과 아이패드 프로를 가지신 분들이라면 구매할 가치가 있습니다. 어댑터를 같은걸 사용하니 하나는 회사에 하나는 집에 놔두고 USB-C 라이트닝 케이블이 있으면 뉴맥북과 아이폰, 아이패드를 바로 연결 할 수 있는 장점도 있습니다.

애플이 다음번 아이폰이나 아이패드부터 어댑터의 USB를 USB-C로 바꾸었으면 좋겠습니다. 그렇지 않으면 아이패드 프로를 위해서 전용 어댑터 + 전용 케이블을 구비하고 다녀야 하니까요. 왠지 다음번 맥에는 하나정도는 USB-C 단자가 있지 않을까 싶습니다.

이번 테스트에는 슬픈 이야기가 있어

처음 테스트 하기로 마음 먹고는 집에 있는 디카의 타임랩스 기능을 이용해 3초에 한번씩 사진을 찍으면서 충전되는 속도를 비교하려고 계획 했습니다. 그리고 드디어 주말에 리뷰를 진행했는데 아이패드 프로 충전 속도가 워낙 느리다 보니 제가 가지고 있는 디카(삼성 NX500)의 타입랩스로 촬영할 수 있는 최대 시간인 1시간 동안에는 겨우 20% 충전 되는것이 고작이었습니다.

그리고 삼각대를 고정하려고 컴퓨터와 옷이 있는 방 절반이 점유 되서 주말내내 비좁게 지내야 했죠 ㅜㅜ

삼각대로 아이패드 프로를 촬영하는 영상

삼각대로 아이패드 프로를 촬영하는 영상

완전 충전하는데 걸리는 시간이 궁금했고 일반적으로는 충전할때 화면을 켜두지 않으니 화면이 꺼져 있을때 배터리 충전 속도가 알고 싶었습니다. 그래서 직접 배터리 충전 속도를 체크하는 간단한 앱을 만들고 알림을 통해 5분마다 해당 시간의 배터리 잔량과 시간을 기록하도록 했습니다.

배터리 충전량 테스트 앱

배터리 충전량 테스트 앱

이번 테스트에서 가장 힘들었던건 다름아닌 배터리를 빨리 소모시키는것이었습니다. 평소에는 그렇게도 빨리 줄어들던 배터리가 왜이렇게 안줄어 드는지…. 배터리 많이 먹는 게임, 동영상 프로그램을 아무리 틀어놔서 완전히 배터리가 소모되는데 1시간 이상?(정확히는 모르겠지만 제 체감상 3시간은 걸렸던거 같아요) 걸렸고 다시 충전기 리뷰 하는 시간도 꽤 들어서 제가 주말에 제일 많이 사용하는 아이패드 프로를 사용 할 수 없어서 불편한점이 많았습니다.

이번 리뷰는 평소보다 시간이 몇배는 더 걸렸습니다.

3(아이패드 프로, 아이패드 미니, 아이폰) * 2(배터리 방전, 배터리 완충) * 2(12w, 29w) = 12

같은 테스트를 12번 반복하고 중간에 잘못해서 다시 하다 보니 시간이 오래 걸렸네요. 중간에 포기하고 대충할까도 생각했지만 이왕한거 아까워서 제대로 해봤습니다. 주말에 잠깐씩 하다보니 3주나 걸렸어요;

다음에 또 충전 속도 관련해서 리뷰를 하게 된다면 배터리를 엄청 빨리 소모되게하는 앱도 만들까 생각이 들더라구요…

리뷰 RAW 데이터

리뷰에 사용된 앱에서 남긴 시간대별 배터리 충전량 데이터입니다.

아이패드 프로 12.9인치 29W 충전 데이터

2016-04-10 14:34:17 / 2%
2016-04-10 14:37:09 / 4%
2016-04-10 14:42:08 / 8%
2016-04-10 14:47:14 / 13%
2016-04-10 14:52:14 / 17%
2016-04-10 14:57:15 / 21%
2016-04-10 15:02:15 / 26%
2016-04-10 15:07:14 / 30%
2016-04-10 15:12:14 / 35%
2016-04-10 15:17:11 / 39%
2016-04-10 15:22:26 / 44%
2016-04-10 15:27:09 / 48%
2016-04-10 15:32:13 / 52%
2016-04-10 15:37:09 / 56%
2016-04-10 15:42:08 / 60%
2016-04-10 15:47:10 / 63%
2016-04-10 15:52:14 / 67%
2016-04-10 15:57:14 / 70%
2016-04-10 16:02:11 / 73%
2016-04-10 16:07:13 / 76%
2016-04-10 16:12:13 / 80%
2016-04-10 16:17:14 / 82%
2016-04-10 16:22:12 / 85%
2016-04-10 16:27:08 / 88%
2016-04-10 16:32:07 / 90%
2016-04-10 16:37:11 / 92%
2016-04-10 16:42:06 / 94%
2016-04-10 16:47:11 / 95%
2016-04-10 16:52:13 / 96%
2016-04-10 16:57:07 / 97%
2016-04-10 17:02:06 / 98%
2016-04-10 17:12:10 / 99%
2016-04-10 17:17:39 / 100%

아이패드 프로 12.9인치 12W 충전 데이터

2016-04-08 22:06:47 / 2%
2016-04-08 22:27:01 / 9%
2016-04-08 22:32:13 / 11%
2016-04-08 22:37:11 / 13%
2016-04-08 22:42:12 / 15%
2016-04-08 22:47:26 / 17%
2016-04-08 22:52:16 / 19%
2016-04-08 22:57:16 / 21%
2016-04-08 23:02:32 / 23%
2016-04-08 23:07:13 / 25%
2016-04-08 23:12:11 / 26%
2016-04-08 23:17:13 / 29%
2016-04-08 23:22:17 / 30%
2016-04-08 23:27:13 / 32%
2016-04-08 23:32:10 / 34%
2016-04-08 23:37:16 / 36%
2016-04-08 23:42:13 / 38%
2016-04-08 23:47:09 / 39%
2016-04-08 23:52:17 / 42%
2016-04-08 23:57:16 / 43%
2016-04-09 00:02:15 / 46%
2016-04-09 00:07:16 / 48%
2016-04-09 00:12:15 / 49%
2016-04-09 00:17:18 / 51%
2016-04-09 00:22:11 / 52%
2016-04-09 00:27:11 / 55%
2016-04-09 00:32:17 / 57%
2016-04-09 00:37:12 / 58%
2016-04-09 00:47:13 / 62%
2016-04-09 00:52:15 / 64%
2016-04-09 01:02:14 / 68%
2016-04-09 01:07:14 / 69%
2016-04-09 01:12:14 / 71%
2016-04-09 01:17:13 / 73%
2016-04-09 01:22:12 / 74%
2016-04-09 01:27:11 / 76%
2016-04-09 01:32:08 / 78%
2016-04-09 01:37:27 / 79%
2016-04-09 01:42:13 / 81%
2016-04-09 01:47:09 / 82%
2016-04-09 01:52:12 / 84%
2016-04-09 02:02:17 / 87%
2016-04-09 02:07:13 / 88%
2016-04-09 02:12:19 / 90%
2016-04-09 02:17:17 / 91%
2016-04-09 02:22:11 / 92%
2016-04-09 02:27:13 / 94%
2016-04-09 02:32:13 / 95%
2016-04-09 02:37:07 / 96%
2016-04-09 02:42:21 / 97%
2016-04-09 02:47:08 / 98%
2016-04-09 02:52:29 / 99%
2016-04-09 03:02:09 / 100%

게시글의 아마존, iTunes 링크들을 통해 구매를 하시면 제휴(Affiliate) 프로그램에 의해 저에게 일정 금액이 적립될 수 있습니다. ^_____^

샤오미 분당 팝업 스토어 방문

샤오미가 최근 분당 AK 플라자에 팝업스토어를 열고 있다고 해서 가봤습니다. 위치는 서현역 AK 플라자 꼭대기에 가전제품 파는 쪽에 있었어요.

샤오미 팝업 스토어 입구

샤오미 팝업 스토어 입구

처음에는 어디 있는지 못찾을까봐 걱정 했는데 가전제품 층에 가니까 샤오미 팝업스토어에만 사람이 많은게 한눈에 찾을수 있었어요 ㅎㅎ

팝업 스토어 전시제품

팝업 스토어 전시제품

샤오미의 제품중 실제로 보지 못했던 제품들이 많이 있더라구요. 위에 사진은 셀카봉, 수질 측정기, 건전지, 멀티탭, 여행용 캐리어, 20,000 용량의 보조배터리입니다.

셀카봉은 블루투스로 연결하는건지 봉에 버튼이 달려있었어요. 멀티탭은 어차피 한국에서 사용하는게 의미가 없을것 같아서 대충 봤는데 중국 전자제품 많이 쓴다면 유용할것도 같더라구요. 그리고 소문으로만 듣던 여행용 캐리어! 이건 기대를 많이 했는데 가격도 안적혀 있구 딱히 장점이 보이지는 않더라구요. 재질도 생각보다 약해보였고 용량도 적었어요. 비슷한 크기의 샘소나이트 캐리어보다 덜 들어갈것 같은? 마지막으로 2만 짜리 보조 배터리는 처음 봤는데 엄청 두껍더라구요 ;; 2만 용량 까지 필요하나 싶은데 차라리 1만 짜리 2개를 사는게 좋겠다는 생각이 들었어요

팝업 스토어 전시제품

팝업 스토어 전시제품

못보던 블루투스 스피커도 있었는데 여기서는 노래를 틀어놨는데 생각보다 좋더라구요. 제가 알던 샤오미 블루투스 스피커보다 더 좋은 제품인데 소리도 좀 좋은것 같고 크기도 약간 크더라구요. 헤드셋도 전시되어 있었어요. 그냥 방치된 느낌이라 본인 핸드폰에 직접 꼽아서 들을수도 있을것 같았어요.

샤오미 체중계

샤오미 체중계

체중계는 보고 살짝 당황했어요. 제가 샀던 샤오미 체중계는 어디가고 이상한 모양의 체중계만 있었거든요. 제가 산게 구형이고 여기 보이는게 신형인건지… 개인적으로는 제가 산 체중계가 더 이뻐보이더라구요.

팝업 스토어 전시제품

팝업 스토어 전시제품

마지막으로 대망의 샤오미 TV !! 베젤도 얇고 두께도 얇아서 좋아 보였어요. 이번에 새로 나온다는 모델은 아니고 예전 모델인거 같은데 티비를 다시 산다면 같은 가격에 더 큰 샤오미 TV를 살것 같아요. 샤오미가 정식으로 한국 진출해서 a/s 까지 잘되면 TV는 샤오미가 경쟁력이 있겠더라구요. 참고로 영상을 틀어놓지는 않고 그냥 꺼져있는 상태였어요. 전원은 연결되 있는것 같던데 왜 안틀어 놨는지 모르겟어요. 그리고 대륙의 실수라고 불리는 샤오미 블루투스 스피커, 이어폰, 보조배터리가 있었어요. 보조배터리는 5000 짜리를 처음에 한정수량으로 9,900에 할인 했었나 본데 이제 행사는 종료 됬데요.

팝업 스토어 행사

팝업 스토어 행사

행사도 진행하고 있었는데 크게 매력적인지는 않더라구요 ^^

그리고 사진을 못찍었는데 샤오미 나인봇도 전시되어 있었고 직원이 타고 있었어요. 한쪽 공간에서는 나인봇을 직접 타볼수도 있게 되있었구요. 저는 못타봐서 뭐라 말할수 없지만 어린 여자애가 타는데도 잘 안넘어지는거 보면 괜찮을것 같더라구요. 정확한 가격은 모르겠는데 직원이랑 다른분이 이야기 하는거 들어보니까 66만원 인가 그런거 같아요.  a/s도 된다고 하는것 같았구요

샤오미 제품을 직접 눈으로 확인할 수 있어서 좋은 경험이었습니다. 팝업 스토어로 그치지 말고 정식 매장도 많이볼 수 있으면 좋겠네요 ~ 참고로 AK 플라자 분당점 팝업 스토어는 4월 13일 까지 운영한다고 합니다 ~

게시글의 아마존, iTunes 링크들을 통해 구매를 하시면 제휴(Affiliate) 프로그램에 의해 저에게 일정 금액이 적립될 수 있습니다. ^_____^

다음 번 플랫폼은 채팅 – 월간이모 4월호 기고글

월간이모 4월호에 기고했던 내용을 블로그에 옮겼습니다.


스마트폰이 보급되면서 카카오톡, 왓츠앱, 위챗, 라인 같은 채팅앱들이 인기를 얻었습니다. 모바일의 특성에 잘 맞고 통신사가 주도했던 SMS의 폐쇄적 구조가 영향을 준 결과였죠. 하지만 혜택은 애플과 구글로 대표되는 모바일 운영체제를 장악한 회사들이 구축한 플랫폼에 돌아갔습니다. 개발자들은 모바일 앱을 만들었고 Mobile First라는 디자인 트렌드가 생겨나기도 했습니다.

웹 기반의 복잡한 서비스들은 모바일의 작은 화면과 웹에 익숙하지 않은 사용자들을 만나면서 단순한 인터페이스를 지향했습니다. 하지만 이제 모바일도 복잡한 인터페이스라고 생각하게 되었고 더 간결한 인터페이스를 지향하는 새로운 플랫폼이 다가오고 있습니다. 그것은 바로 채팅, 정확히 말하면 채팅봇입니다. 이미 다 알고 있는 이야기 아니냐고 할 수도 있겠지만, 지금까지의 채팅이 혼자서 다하는 포탈 느낌이었다면 채팅봇은 모바일 운영체제처럼 플랫폼이 되어 다양한 서비스들을 제공할 것입니다.

국내외의 여러 사람이 2016년에 채팅 또는 채팅봇이 대세가 될 것이라고 말합니다.

과한 느낌도 있지만 이러한 흐름이 있다는 겁니다. 기존의 채팅앱들도 이것저것 잘하고 있었는데 왜 갑자기 이러는 걸까요? 저는 그 이면에 슬랙이 있다고 봅니다. 슬랙에는 다양한 외부서비스들을 연동할 수 있는데 이런 것들을 사용하다 보니 일반 사용자들에게 채팅이 줄 수 있는 장점이 보이기 시작한 거죠. 물론 슬랙에서 하는 것들은 대부분 IRC에서도 가능했던 것들이지만 IRC는 Geek 한 개발자들이 주로 사용하던 것이었다면 슬랙은 이걸 개발자가 아닌 IT 업계 사람들에게도 사용할 수 있게 해주었고 모바일에 최적화해서 잘 만들었다는 점이 다릅니다. 그리고 이러한 것들이 슬랙이 아닌 채팅 서비스들에서 일반 사용자들에게도 줄 수 있는 장점이 있다고 느끼기 시작한 겁니다. 마침 스마트폰의 대중화와 앱 시장의 성숙화로 개인이 설치하는 앱이 많아지고 인터페이스도 복잡해지면서 간단한 인터페이스로 한군데서 다하고 싶다는 욕구가 생기고 있었죠.

텍사스 오스틴에서 열린 SXSW 2016 에서도 이와 관련한 이벤트가 몇개 있었습니다.

첫 번째 이벤트 제목을 보면 채팅봇 개발자라는 단어가 보입니다. 이미 봇을 개발하는 사람들과 이를 부르는 용어가 존재한다는 것에 의미가 있습니다.

채팅과 봇에 대한 정의가 명확하지 않은 부분이 있어서 확실히 하고 넘어갈 필요가 있습니다. ‘The Future of Chat Isn’t AI’ 글에서는 “Chat apps will come to be thought of as the new browsers; bots will be the new websites. This is the beginning of a new internet.” 라고 하며 채팅과 봇과 플랫폼의 관계를 잘 설명하고 있습니다. 카카오톡 같은 채팅앱은 익스플로러, 크롬 같은 브라우저이고 봇은 네이버, 다음 같은 웹사이트입니다. 우리가 익스플로러, 파이어폭스, 크롬을 번갈아가며 사용해도 네이버는 똑같이 보이듯이 카카오톡, 라인 같은 채팅앱을 변경하면서 사용해도 봇은 같은 기능을 제공하게 될 것입니다. 이러한 생각의 연장 선상에서 모바일 운영체제가 가진 폐쇄적 특징에서 조금 벗어나, 웹보다는 폐쇄적이지만 기존 모바일보다는 공개된 형태의 플랫폼이 될 가능성이 크다고 봅니다. 그 결과 대부분 개발자는 채팅앱을 만드는 게 아니라 채팅봇을 만들게 될 겁니다. 브라우저 만드는 회사가 많지는 않은 것처럼요.

채팅봇의 어떤 점이 매력적인지 정리해봤습니다.

  • 즉시성
  • 간결한 인터페이스
  • 많은 사용자

즉시성이 ‘매력적인가?’ 라는 생각을 할 수도 있지만, 기존 채팅과 비교하여 봇이 바로 응답해준다는 것은 충분히 매력적입니다. 자주 물어보는 고객문의를 채팅으로 자동으로 응답하는 것은 FAQ를 제공하거나 사람이 채팅으로 응답하는 것과는 다릅니다. 이벤트가 발생했을 때 봇을 통해 즉시 알려주는 것은 기존의 앱이나 모바일 웹이 푸쉬에 의존하고 있는 것과 비슷하지만 푸쉬가 모바일 운영체제에 의존적이라는 것에 비해 채팅은 기본 기능으로 가지고 있다는 점이 다릅니다.

텔레그램 하단버튼

텔레그램 하단버튼

텔레그램이나 위챗 등에서 사용 중인 인터페이스는 텍스트와 간단한 버튼을 이용합니다. 많은 기능을 담아내기 위한 인터페이스와 추상화로 사용자들이 기능을 제대로 사용하지 못했던 것을 생각하면 간결한 인터페이스의 장점이 있습니다. 하지만 아직 이런 인터페이스도 어떤 형태가 될지는 명확하지 않습니다. IRC나 슬랙처럼 사용자들이 정해진 명령어를 입력하게 할지, 아니면 자연어 분석을 할지, 그저 간단한 버튼을 보여줄지 아직 모릅니다.

다재다능하고 장점이 많은 플랫폼이라 해도 사용자가 없으면 아무 의미가 없습니다. 앞서 이야기했던 IRC와 슬랙의 예처럼 말이죠. 채팅 서비스들은 이미 소셜네트워크보다 많은 월간 활성화 사용자를 가지고 있다는 조사결과가 있습니다.

소셜네트워크보다 더 많은 월간 활성화 사용자를 가진 채팅

소셜네트워크보다 더 많은 월간 활성화 사용자를 가진 채팅

그렇다면 채팅봇으로 어떤 서비스를 제공할 수 있을까요? 아직 이에 대해서는 의문입니다. 페이스북 메신저는 게임을 바로 호출하는 것을 테스트하고 있고, 텔레그램 봇스토어에는 날씨, 게임, 유튜브 자동다운로드 등 다양한 형태의 봇들이 올라와 여러가지 시도를 하고 있습니다. 하지만 이 중 어떤 것을 사용자들이 잘 받아들일지는 아직 모르는 상황입니다. 채팅을 통해 유용한 정보를 제공하는 킬러봇(킬러앱 같은 개념)이 2016년에 나오지 않을까 기대하고 있습니다.

슬랙이나 개발자들이 많이 사용하는 채팅봇 사례를 살펴보겠습니다.

슬랙과 개발자들의 특성상 생산성을 향상해주는 것들이 많지만, 텔레그램 봇스토어에는 게임, 쇼핑, 검색, 뉴스 등 일상생활에 밀접한 것들이 많고, 채팅 형태로 뉴스를 제공하는 Quartz 등 별도의 앱에서도 채팅 형태의 인터페이스가 시도되고 있습니다.

기술적인 측면에서 살펴보자면 봇에 대한 개발 수요가 있다 보니 Hubot, Lita, BotKit 등 관련 개발 라이브러리도 생기고 있습니다. 봇은 인터페이스가 간결해 UI 개발에 대한 부담이 줄어들고, API도 단순해 처음 개발은 수월한 편입니다. 그러나 여러 단계를 다루는 경우 이를 처리하는 부분이 복잡해질 수 있어, 위와 같은 봇 프레임워크들도 많이 쓰일 것입니다.

채팅봇의 흐름은 클라이언트 위주 개발에서 다시 서버 개발 위주로 전환된다는 의미도 있습니다. 초기 PC 시절 데스크톱 운영체제에서 사용하는 클라이언트 기반 앱들이 주류였다가 웹 시대가 되면서 서버 개발 위주로 그다음 모바일에서는 다시 클라이언트 개발 위주로 전환되는 흐름이 있었는데요. 채팅봇은 다시 이 흐름을 서버 위주로 전환하게 됩니다. 사용자와의 접점인 클라이언트 영역은 SMS가 될 수도 있고 채팅앱이 될 수도 있지만, 그것을 가능하게 하는 것은 모두 서버에서 제공하게 될 것이기 때문입니다.

최근 사물인터넷(IoT)과 사용자 접점 장치(스마트폰, 시계, 태블릿), 개인화 서비스 등이 점차 발달하고 있습니다. 이런 흐름 속에서 간결한 인터페이스를 가진 채팅은 그 가능성이 큽니다. 다양한 장치마다 최적화된 경험을 제공하기는 너무 어렵기 때문에, 사용자의 인지능력이나 개발 속도 등을 고려해보면 간결한 인터페이스로 서버에서 서비스를 제공할 수 있는 채팅은 큰 장점을 갖고 있습니다. 웹과 같이 새로운 기능을 제공할 때 사용자들이 앱을 업데이트할 필요 없이 바로 적용할 수 있고, 빠른 피드백을 얻을 수 있습니다.

다음번 플랫폼이 채팅이 될 것이라는 가정하에 글을 적었습니다. 실제로는 안 일어날 수도 있습니다. 하지만 요즘 많이 언급되는 가상현실(VR), 인공지능(AI), 동영상보다는 채팅이 다음 플랫폼이 될 가능성이 큽니다. 이 기술들은 특정 영역에서 장점은 있겠지만, 일반 대중이 얼마나 받아들여 자주 사용하게 될 지는 의문이 듭니다. 그렇다고 채팅이 모바일 앱이나 웹을 대체할 것으로 생각하지는 않습니다. 모바일 앱이 인기지만 여전히 웹에 맞는 서비스가 존재하듯이, 채팅도 마찬가지일 것입니다.

2016년은 채팅봇의 시대가 될까요? 그런 시대가 오기 위해서는 일반 사용자들이 가장 많이 이용하는 페이스북 메신저에서 비공개로 제공 중이라는 ChatSDK가 공개되고, 많은 사용자를 대상으로 인기를 얻는 채팅봇이 나와야 가능성이 커진다고 봅니다. 2016년 1분기가 끝나가는데 가시적으로 보이는 게 없어서 저도 잘 모르겠지만, 이 글을 읽고 있는 여러분이라면 가장 먼저 그 흐름을 눈치챌 수 있을 겁니다.

추가. 이글을 작성한 게 3월 20일이고 그 후 10일 동안 많은 일이 있었습니다. 라인 컨퍼런스 2016행사에서 올여름에 채팅 봇 API를 제공하겠다고 발표했고, 마이크로소포트는 Build 2016행사에서 Skype BOT 서비스와 다른 봇 서비스를 연동하기 쉽게 하는 Bot Framework도 발표했습니다. 이제 남은 것은 4월에 있을 페이스북 개발자 행사인 F8에서 페이스북 메신저의 발표뿐입니다.

게시글의 아마존, iTunes 링크들을 통해 구매를 하시면 제휴(Affiliate) 프로그램에 의해 저에게 일정 금액이 적립될 수 있습니다. ^_____^

아이폰 6s, 6s+ iOS 9.3.1 비번없이 사진, 연락처 확인하는 버그

iOS 9.3.1 에서 비밀번호를 모르는 상태에서도 사진과 연락처를 확인하는 방법이 알려졌습니다. 시리를 이용해서 가능한데요. 제가 해당 상황을 재현해봤고 쉽게 성공할 수 있었습니다. 아래 영상을 확인해보세요.

영상에서 볼수 있듯이 생각보다 쉬운 방법으로 사진과 연락처에 접근이 가능합니다. 이 버그는 아이폰 6s, 6s+에 추가된 3D 터치로 인해 발생되는거라서 아이폰 6 이하 기종이나 아이패드는 해당사항이 없습니다.

정확한 상황을 말씀드리자면 최초에 시도는 트위터 계정을 연결? 할거냐는 식으로 물어보면서 비번을 입력하라고 해서 실패했습니다. 하지만 거기서 허용하고나서 부터는 위와 같은 현상이 재현되었습니다. 그 이후에는 트위터 검색을 시리에서 막는 옵션을 찾지 못했습니다. 평소에 시리에서 트위터 검색을 해두신 분들은 꼭 확인해보세요.

아직 애플에서 이와 관련된 패치가 발표되지 않았으니 이 버그를 통한 사진 유출을 막기위해서는 개인정보보호에서 사진의 시리 접근 권한을 해제하는것이 좋습니다.

해당 문제는 애플이 시리서버에 패치를 하면서 해결되었습니다. 이제 더이상 문제가 발생하지 않습니다. http://www.macrumors.com/2016/04/05/apple-fixes-siri-vulnerability/

게시글의 아마존, iTunes 링크들을 통해 구매를 하시면 제휴(Affiliate) 프로그램에 의해 저에게 일정 금액이 적립될 수 있습니다. ^_____^

일본어 RSS 번역해서 보기 – AWS Lambda 이용

저는 요즘 일본어 글을 보는 일이 많아졌습니다. 일본어라고는 히라가나 철자를 발음하는 수준이 전부지만 일본어로 된 좋은 글들이 많기 때문입니다. 다행히 일본어-한국어 번역기는 품질이 괜찮은 편이라 구글 번역기를 이용해서 내용을 이해하는 데 큰 무리가 없고 크롬을 이용하면 일본어 사이트인 경우 자동으로 한국어로 번역하도록 설정해서 볼 수 있지만 문제는 모바일입니다.

모바일 기기에서도 크롬을 사용할 수 있지만 사용하는 RSS 리더인 Feedly(, iOS, 안드로이드)는 모바일웹용 RSS는 제공하지 않고, 번역을 제공하는 다른 RSS 서비스나 앱을 찾을 수 없었습니다. 이러한 불편함을 해결하고자 일본어 RSS를 읽어서 제목만이라도 한국어로 번역해주면 RSS 목록에서 제목을 보고 관심 있는 글은 크롬으로 열어서 번역으로 보면 괜찮겠다고 생각했습니다. 제목만 한국어로 바꾼 새로운 RSS 파일을 생성하면 RSS 리더 서비스나 앱이 지원하지 않아도 번역된 내용을 볼 수 있는 장점이 있습니다.

RSS 번역 구조도

RSS 번역 구조도

일본어 RSS를 번역 후 새로운 RSS 파일을 만드는 건 어렵지 않은 일입니다. 번역 API를 사용해서 얻은 값을 파일에 다시 쓰기만 하면 되는 거니 까요. 문제는 서버를 어떻게 관리할 것 인지였습니다. 이런 간단한 프로그램을 위해 서버를 운영하는 건 비용이나 운영에 들어가는 시간이 아까웠습니다. 제가 원하는 조건은 다음과 같았습니다.

  • 서버 비용이 저렴 할 것
  • 따로 신경쓰지 않아도 잘 동작 할 것

서버 비용은 집에 남는 서버를 사용하거나 기존에 운영 중인 개인 서버를 사용하면 됩니다. 하지만 따로 신경 쓰지 않아도 잘 동작하는 서버라는 건 없었죠. 아무리 신경 쓰지 않는다고 해도 새로운 서버로 업그레이드하거나 정전, OS 업그레이드 등 다양한 상황이 발생할 수 있습니다.

그러던 와중에 생각난 것이 AWS Lambda입니다. Lambda는 소스코드만 올려두면 서버 설정 없이 AWS가 코드를 실행해주는 서비스입니다. 소스코드에 이상만 없으면 서버 관리할 필요 없이 알아서 동작하고, 비용도 실제 실행시간만큼만(100ms 단위) 지불되므로 제가 원했던 것처럼 몇 초 안에 실행이 끝나는 경우 별도의 서버를 운영하는 것보다 저렴합니다.

Lambda는 다양한 방법으로 코드를 실행할 수 있습니다. S3, API Gateway 요청, AWS IoT 이벤트 그리고 정해진 시간에 실행하는 방법 등이 있습니다. 정해진 시간에 코드가 실행되는 건 CloudWatch – Schedule을 선택 후 cron 문법에 맞는 문자열만 적으면 정해진 시간에 실행됩니다. CloudWatch가 뭔지 몰라도 상관없는 거죠.

Lambda 이벤트 소스 종류

Lambda 이벤트 소스 종류

Lambda CloudWatch - Schedule

Lambda CloudWatch – Schedule

Lambda Cron 표현식

Lambda Cron 표현식

제가 만든 RSS 번역하는 소스코드는 다음과 같습니다. 참고로 Lambda가 지원하는 개발 환경은 Node.js(v0.10.36), Java(Java 8), Python(Python 2.7) 인데 Java(자바)는 그냥 하기 싫었고 Python(파이썬)은 3이 아니라서 한 번도 해본 적 없는 Node.js로 만들었습니다. Node.js는 처음이라 제가 잘못 작성한 부분도 많겠지만 참고 봐주세요 ^^;

```index.js
var http = require('http');
var xml = require('xml2js');
var DOMParser = require('xmldom').DOMParser;
var async = require('async');
var request = require('request');
var AWS = require('aws-sdk');
var s3 = new AWS.S3();

exports.handler = function(event, context) {
    var options = {
      hostname: 'b.hatena.ne.jp',
      path: '/hotentry/it.rss',
      headers: {
        'User-Agent': 'Mozilla/5.0'
      }
    }
    http.get(options, function(res) {
        res.setEncoding('utf8');
        var body = '';
        res.on("data", function(chunk) {
            body += chunk;
        });
        res.on('end', function() {
            var parser = new DOMParser({
                            locator:{},
                            errorHandler:function(level,msg){ }
                        })
            var doc = parser.parseFromString(body);
            var items = doc.getElementsByTagName('item');
            async.eachSeries(items, function iterator(item, callback) {
                var title = item.getElementsByTagName('title')[0]
                var form = {
                    q: title.textContent,
                    langpair: 'ja|ko',
                    de: 'myemailaddress'
                }
                request.post({ url:'http://api.mymemory.translated.net/get', form: form },
                    function (err, httpResponse, body) {
                        if (!err) {
                            var result = JSON.parse(body);
                            title.textContent = result.responseData.translatedText;
                        }
                        callback();
                    }
                )
            }, function done() {
                var xml = doc.toString();
                s3.putObject({
                    Bucket: 'seapy-static',
                    Key: 'rss/lambda_hatena_hotentry_it.xml',
                    Body: xml,
                    ACL: 'public-read',
                    ContentType: 'text/xml'
                }, function(err, data) {
                    if (err) console.log(err, err.stack);
                    else     console.log(data);
                    context.done(null, 'success');
                });
            });
        });
    }).on('error', function(e) {
        context.done('error', e);
    });
};
```

이 코드를 로컬 환경에서 실행하려면 좀 귀찮은데 이걸 해결하려면 lambda-local을 이용합니다.

번역 API는 구글 것을 사용하고 싶었지만, 유료라서 무료 범위에서 많은 단어를 제공하는 Mymemory를 사용했습니다. 필요한 모듈들은 npm을 이용해서 설치했고 해당 모듈들은 node_modules 폴더에 위치합니다.(aws-sdk는 로컬에서만 사용하고 실제 업로드 할 파일에서는 제외합니다. lambda 에서 이미 가지고 있거든요) 그리고 위의 코드와 node_modules 폴더를 하나의 압축파일로 만들어서 Lambda 서비스에 업로드 후 이벤트 소스를 CloudWatch – Schedule로 하고 20분에 한 번씩 실행하도록 하면 끝입니다. 진짜 끝이에요. 이제 20분 마다 일본어로 된 RSS를 한국어로 번역하고 S3에 저장합니다.

저는 서버가 어떻게 실행되는지 다운되지는 않았는지 업그레이드는 언제 할지 전혀 고민하지 않아도 되고 비용도 거의 무료로 사용합니다. AWS Lambda의 무료 범위가 꽤 넓거든요 ~

Lambda가 실행된 횟수와 실행시간은 Monitoring 탭에서 확인할 수 있고, 메모리 사용량이나 출력 등 자세한 로그는 CloudWatch에서 확인할 수 있습니다.

Lambda 모니터링

Lambda 모니터링

Lambda 로그

Lambda 로그

일본어 RSS의 제목을 번역한 새로운 RSS를 구독한 결과는 다음과 같습니다.

RSS 번역 결과 - Feedly 웹

RSS 번역 결과 – Feedly 웹

RSS 번역 결과 - Feedly 모바일

RSS 번역 결과 – Feedly 모바일

일부 번역이 안된 것들도 보이지만 주제를 아는 데 방해가 될 정도는 아닙니다. 문제는 “Mymemory Warning: You Used All Available Free Translations For Today.” 이라고 나오는 것들인데요. 제가 보는 하테나 IT 섹션 RSS의 업데이트 빈도가 너무 높아서 Mymemory 번역 API의 무료범위를 넘어가서 발생하는 문제입니다. 돈을 내면 쉽게 해결될 문제인데 저와 같은 목적으로 위의 RSS를 보고 싶은 사람들이 있다면 여러 명이 나눠서 내면 크게 비싸지 않을 것도 같습니다.

이번 개발을 하면서 느낀 건 2가지였습니다. 첫째는 Node.js 도 재미있다는 거였습니다. 이번 개발을 하기 전까지는 필요성을 못 느꼈는데 서버 운영하기 싫은 간단한 것들 만들 때 Lambda에 올릴 것들은 Node.js 배워서 해보면 재미있겠다는 생각이 들었습니다. 두 번째는 Serverless 트렌드가 일회성으로 끝나지 않고 앞으로 많은 비중을 차지하게 될 것이라고 느꼈습니다. 직접 해보니 특정 영역에서 확실한 장점이 보였습니다.

Lambda에 아쉬운 건 제가 좋아하는 Ruby(루비)를 아직 지원하지 않는다는 것입니다. 작년 AWS re:invent에서 Python 지원을 발표했으니 올해는 Ruby 지원을 발표하면 좋겠지만, Ruby는 아마 안될 거예요…

게시글의 아마존, iTunes 링크들을 통해 구매를 하시면 제휴(Affiliate) 프로그램에 의해 저에게 일정 금액이 적립될 수 있습니다. ^_____^