brunch

You can make anything
by writing

C.S.Lewis

by Seon Oct 01. 2017

#7. Line Developer Day  2017

Line Developer Day 2017에 다녀왔습니다.

2017년 9월 28일

Line Developer day 2017(이하 라인 콘퍼런스)에 다녀왔습니다.


국내에서는 매년 DEVIEW에 신청을 했었지만 줄곧 추첨에서 떨어져서 참석을 못했기 때문에, 이 곳에 참가 신청했을 때도 역시 기대하지 않고 신청을 했었는데 운 좋게 참석하게 되어서 기대가 되었던 콘퍼런스였습니다. 2014년부터 진행돼온 라인 콘퍼런스는 올해로 4번째가 되었습니다. 저는 처음으로 참석한 터라 어떻게 진행되는지 궁금한 부분도 많았습니다.


참가가 가능하게 되면 아래와 같은 메일이 옵니다. (당첨이 아니라 당선[当選]이라는 글자가 나만 어색한 건 아니겠지..)

[当選のお知らせ] LINE DEVELOPER DAY 2017 (9/28)

このたびは、「LINE DEVELOPER DAY 2017」に参加申し込みいただき、ありがとうございました。
定員を超えるご応募をいただいたため運営事務局にて抽選を行った結果、当選された皆様にお送りいたしております。

이번에 [LINE DEVELOPER DAY 2017]에 참가 신청해주셔서 감사드립니다.
정원을 넘는 응모를 받아 운영 사무국에서 추첨한 결과 당첨된 여러분께 메일을 보냅니다.


9월 28일 시부야 역에 있는 [히카리에] 빌딩으로 향합니다.


관심분야도 있었고, 잘 모르지만 흥미로운 세션이라 들었던 부분도 있습니다. 제대로 이해하지 못해 잘못된 부분이 있다면 가감 없는 피드백 주시면 감사하겠습니다.


Line Messenger


라인 콘퍼런스는 모든 진행을 라인 메신저로 공지를 하고 진행합니다.

초대권부터 안내, 설문조사, 추첨권, 발표자료 공유 등을 행사가 진행되면서 계속 실시간으로 공지를 하고 공유를 합니다.


라인 콘퍼런스 초대를 받게 되면, 라인 메신저로 접속해서 개인 계정을 등록하게 되면 다음과 같은 채팅방이 생성되고 이 채널에서 계속 진행을 받을 수 있습니다.



또한 라인의 리치 메뉴를 활용해서 행사장의 지도나, 행사 일정, 주변 가게 정보, 설문조사, 문의 등을 실시간으로 대화 형식으로 확인할 수 있습니다.


라인 메신저를 활용한 행사 진행은 의외로 신선했고 편리했습니다.

한 세션이 끝날 때마다 해당 발표자료를 공유하는 링크를 실시간으로 받을 수 있었고, 다른 세션에서는 어떤 행사가 진행되는지도 실시간으로 받아 볼 수 있어서 정말 편리하게 활용했던 것 같습니다.


접수처에서 접수 등록을 하게 되면 


방문증과 히카리에 상품권 천 엔권 2장을 줍니다.

아마 히카리에 상품권은 점심 식사를 위해 준 듯하네요.


행사 일정


라인의 CTO 박의빈 씨가 개회사를 시작합니다.


이번 콘퍼런스의 주된 주제는 Clova(Cloud Virtual Assistant)인 듯합니다. 오전 10시 40분부터 시작된 발표는 식사시간 11시 50분까지 Clova와 봇, AI에 관련된 내용으로 모두 채워져 있습니다. 아마존의 알렉사를 적용한 '에코'라던가 구글 홈 어시스턴스를 적용한 '구글 홈'등과 마찬가지로 일본에서는 라인의 Clova를 적용한 'WAVE'라는 스피커를 준비하고 있습니다. 지난 7월에 일본 내에서 1만 5천엔 정도의 가격으로 한정 예판을 했었는데, 조만간 일반 판매도 시작할 예정이라고 하네요.


출처 : https://www.slideshare.net/linecorp/the-technologies-in-clova

위의 그림처럼 라인은 AI를 단순히 머신러닝으로 단정 짓지 않고 생활 속에서 가상으로 지원되는 모든 기능을 AI로 정의하고 LINE 플랫폼이 생활의 일부로 파고들 수 있도록 많은 노력을 하고 있다고 느껴집니다.

Clova의 프로젝트 론칭이 작년 9월임을 감안하면, 약 1년이라는 짧은 기간 동안 만든 플랫폼 치고는 많은 진전이 느껴짐을 알 수 있었습니다. 많은 데이터를 활용할 수 있다는 점은 언제나 부러운 일입니다.


저는 다음과 같은 세션을 참석해서 들었습니다.

- Central Dogma : 라인의 Git을 베이스로 한 고가용성 서비스 구성 레파지토리

- Data Processing behind LINE Game Platform

- 개발자에 의한, 개발자를 위한 LINE x Microsoft x AI

- 동영상을 보면서 채팅할 수 있는 PIP 기능 개발에 대하여

- 라인의 블루투스를 활용한 사례에 대한 소개

- 도커(docker)를 활용한 병렬 Selenium 테스트

- 시큐리티를 위한 데이터 분석 / 로그 분석 플랫폼 Monolith와 라인 스팸 대책 현황

- BOT and the new Comfortableness


원래 모든 세션을 정리해서 이곳에 적어볼까 했었는데 글이 너무 길어질 것 같아 인상 깊었던 4가지 세션 정도만 아주아주 간단하게 정리해 볼까 합니다. 

아래의 모든 스크린샷은 라인 콘퍼런스에서 발표한 자료로 표현했습니다. 


Central Dogma : 라인의 Git을 베이스로 한 고가용성 서비스 구성 레파지토리


자료 링크

개발자라면 웬만하면 대부분 알고 있는 이희승 씨가 Central Dogma에 관해 설명하면서 세션은 시작됩니다. 

라인이 공개한 웹문서를 살펴보면, Central Dogma란 Git, Zookeeper, HTTP/2를 베이스로 한 오픈소스 고성능 버전 관리 레파지토리라고 정의하고 있습니다. 

간단하게는 json이나 yaml, xml 같은 설정 파일을 저장하는 레파지토리입니다.


Cental Dogma의 특징은 다수의 master로 구성되어 있다는 점입니다. 따라서 저장된 데이터의 안정성이 보장되며, 서버의 리부팅 없이도 설정을 적용할 수 있다는 장점이 있다고 말하고 있습니다. 따라서 데이터를 읽는 속도를 좀 더 빠르게 실현할 수 있으며, 클라이언트 측의 load-balacing도 컨트롤할 수 있습니다. 하지만, 쓰기 속도가 느리다던가, master들과의 동기화로 인해 context 전환 등에 대한 시간이 걸릴 수 있다는 단점도 존재합니다. 



JGit를 백앤드 스토리지로 사용하고 있으며, 브랜치는 서포트하지 않고 revision으로만 관리를 함으로써 사용자에게 편의성을 도모했다고 발표자는 강조하더군요.

현재 시점에서는 라인에서 설정 변경에 대한 파일 저장관리를 Central Dogma로 운영하고 있지만 꼭 강제적으로 사용하지는 않고 있다고 합니다. 


아파치 2.0 오픈소스이기 때문에 누구나 참여가 가능하다고 하니 관심 있는 분들은 아래의 깃허브에 들어가서 분석해 보거나 컨트리뷰트하는 것도 괜찮을 듯합니다.

https://github.com/line/centraldogma


Data Processing behind LINE Game Platform

관련 자료

라인의 게임 플랫폼의 기능은 인증, 소셜 그래프, 과금, 모니터링을 기본으로 하고 있다고 합니다. 하지만 작년부터 새로운 플랫폼을 개발하고 있는데 개발을 하면서 겪었던 데이터 프로세싱에 관련된 몇 가지 개발 이슈를 공유하는 자리였습니다.



이 중, 리뷰 보드와 길드 시스템에 대해 구현을 하게 되면서 필요하게 된 시스템을 직접 만들어 적용한 예를 설명하고 있습니다. 


1. 리뷰 보드 

리뷰 보드의 경우에는 댓글+평점으로 이루어지지만, 해당 평점에 대한 각 파트너 게임 운영사의 기준은 각각 다르기 때문에 일관적인 리뷰 보드를 만드는 것은 의미가 없다고 판단, 각 파트너 게임 운영사가 요구하는 기준을 유연하게 적용할 수 있는 시스템을 만드는 것을 목표로 했다고 합니다.


리뷰 보드의 아키텍처 요구 조건은 


1. 단시간에 많은 이벤트를 발생하기 때문에 쓰기 효율을 중요시할 것.

2. 통계를 쉽게 낼 수 있어야 할 것.

3. 유지 보수 관리에 용이할 것.


위의 3가지를 기준으로 아키텍처를 설계해야 했음을 설명합니다.

이 아키텍처를 위해 사용된 데이터베이스는 시간 순서에 최적화되어 있는 데이터베이스 즉, TSDB(Time Series Database)를 선정함에 있어서 적용했던 기준 등을 설명하고 있으며, 고려 대상이 되었던 데이터베이스와 결정하게 된 데이터베이스를 객관적으로 비교하는 설명을 들을 수 있었습니다. 


2. 길드 시스템

라인 플랫폼의 데이터 베이스 구성은 Hbase가 기본으로 구성되어 있습니다. Hbase는 단일 행 트랜젝션 방식이지만, 게임 상에서 길드 시스템(커뮤니티)의 특성상 멀티 트랜젝션이 불가피한 상황이 발생하게 되고, 그 이슈를 해결하기 위해 라인에서 직접 멀티 트랜젝션이 가능한 시스템을 구현한 스토리를 설명한 세션이었습니다. 



동영상을 보면서 채팅할 수 있는 PIP 기능 개발에 대하여


자료 링크

저는 스위프트 개발은 한 번도 해본 적은 없습니다. 하지만 동영상을 보면서 채팅을 가능하게 하는 구조가 어떻게 되는지 들어보고 싶어서 듣게 된 세션입니다. 다행히 안드로이드 개발을 아주 잠깐 해본 저에게도 쉽게 이해가 될 수 있도록 조리 있게 설명했던 발표자(MASAKI FUKE)가 꽤 인상 깊었던 세션이었습니다.



라인은 채팅방에서 채팅을 치면서 동영상(라인 비디오 메시지, 유튜브 링크 지원)을 앱 내에서 따로 보면서 채팅이 가능합니다. 라인은 이 기능을 지원하기 위해 약 6년 동안 유지해온 구조 소스를 버리고 새로 구성하기로 결정했다고 합니다. (개인적으로는 전체 라인 콘퍼런스에서 가장 인상 깊었던 부분이 아니었나 합니다.  발표자도 라인에서 일하면서 이렇게 결정할 수 있는 부분이 가장 행복하다고 하더군요.)


이 PIP(Picture in Picture) 기능을 구현하기 위해 가장 큰 이슈는 iOS9부터 지원해온 pip기능이 iPad만 공식적으로 지원하고 있는 상황에서 iPhone까지 구현해야 하는 방법과 구현했을 때 AudioSession 관리에 대한 문제가 가장 큰 이슈였다고 합니다. 



처음에는 발표자가 구상하고 혼자 진행했던 이 프로젝트는 나중에는 이 기능을 살리기 위해 모든 팀원들이 투입되는 상황까지 갔다고 발표자는 웃으면서 설명합니다. 또한, 비디오나 사운드 문제는 라인에 포함되어 있는 다른 프로젝트와도 의존관계가 많기 때문에 작지 않은 이슈들이 있었지만, 모처럼 구현한 이 좋은 기능을 묻히고 싶지 않아서 서로 협력했다는 부분도 덧붙입니다. 


BOT and the new Comfortableness

자료 링크

라인의 봇에 대한 이념과 새로운 기능에 대해 미리 엿볼 수 있는 세션이었습니다.

개발자 대회를 통해 계속 소통하겠다는 의지와 함께, 작년 라인 콘퍼런스에 비해 발전한 모습과 변화된 부분에 대한 설명이 대부분이었습니다.

개인적으로 인상 깊었던 부분은 위에도 잠시 소개했던 '리치 메뉴'라는 기능이었습니다.


채팅창 아래에 위치한 이 기능은 채팅창 기본 기능 이외에 추가적으로 필요한 부분 등을 구현할 수 있으며, 귀찮은 텍스트 입력 필요 없이 필요한 정보를 얻을 수 있는 기능이라고 설명을 합니다.


하지만 현재는 이미 정해진 레이아웃 안에서 활용을 해야만 하고 해당 기능을 사용하기 위해서는 채팅창의 절반이나 차지해야 하는 불편한 점이 있는데 이 부분을 해결하겠다고 개발자분께는 설명을 하고 있습니다.


또한 단순히 버튼식의 레이아웃 구성이 아닌 다양한 디자인을 적용할 수 있도록 수정한다고 하니 라인을 자주 쓰시는 분들은 기대해봐도 좋을 듯합니다.



또한 개발자 API뿐만이 아닌 기획자나 디자이너가 프로토타입을 작성할 수 있도록 PC 설치형 애플리케이션도 올해 안이나 내년 초쯤 내놓는다고 하니 좀 더 다양한 리치 타입 메뉴를 볼 수 있을지도 모르겠습니다.


에필로그


모든 세션을 다 설명하고 구체적으로 정리하고 싶었지만 사정상 그럴 수 없었던 점이 아쉽지만, 나머지 세션 또한 부족한 부분보다는 만족스러운 부분이 더 많았던 것 같습니다. 

라인 심플 비콘을 이용해 Kirin과 협력하여 라인 페이로 결제할 수 있는 음료 자판기를 시판한 사례나, 좀 더 효율적인 웹 테스팅을 위해 병렬적인 Selenium을 활용한 사례, 유머 있던 발표자가 마이크로 소프트 Azure 사례를 설명했던 세션, 로그 분석을 위한 플랫폼 Monoith도 인상 깊은 세션이었습니다.


해당 시스템에서 필요한 기능이 있다면 오픈 소스를 활용해 구현을 하거나, 그 구현물을 오픈소스로 전환해 다른 개발자들과 끊임없이 소통하려는 모습은 언제나 훌륭한 모습입니다.

단순히 마케팅을 위해 콘퍼런스를 열지 않고 사내에서 구현한 사례 등을 발표하고 그 소스를 오픈함으로써 브랜드 가치를 높이는 부분도 개인적으로는 참 세련되어 보였습니다.


또한 성공사례나 구현물만을 소개하는 자리가 아닌 실패 사례를 가감 없이 내놓는 모습이나, 몇 년간 지속해온 프레임워크를 과감하게 교체하는 부분을 어필하는 부분은 좋은 인상으로 남아있네요.


개발자로선 풍부하게 쌓아놓은 데이터를 활용해 여러 시도를 하는 부분이 가장 부러웠기도 했습니다. 


덧붙여 모회사가 한국이어서 그런지 한국어 지원도 친절하게 잘 되어 있었고 (일본어 발표는 괜찮았지만, 영어 발표는 통역기의 도움을 받아야만 했던...) 주변에 간간히 들리는 한국말도 반가웠네요.


통역자 분들도 고생하셨어요~



요런 인증샷은 그다지 좋아하진 않지만. 기분좋은 선물 고마워요~


이날 발표했던 모든 자료는 SlideShare에 모두 공개되어 있습니다.

관심 있는 분들은 한 번들 어가서 살펴보는 것도 좋을 듯합니다. 


https://engineering.linecorp.com/ja/blog/detail/196

매거진의 이전글 #8. 워크숍(2) : 회사 창립 기념일
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari