LINE Corporation이 2023년 10월 1일부로 LY Corporation이 되었습니다. LY Corporation의 새로운 기술 블로그를 소개합니다. LY Corporation Tech Blog

Blog


LINE Developer Week 2015

LINE 대만 지사에서 API 개발과 애플리케이션 분석 업무를 담당하고 있는 Augustin Wang입니다. 저는 2015년 11월 LINE Developer Week를 보내면서 보고 느낀 점과 즐거웠던 기억을 블로그에 담아보려 합니다.

한국 도착

드디어 그토록 기대했던 LINE Developer Week 첫날이 밝았습니다! 인천국제공항에 도착한 후 한 시간 정도 버스로 이동하여 서현역에 위치한 한국 사무실에 도착했습니다. 사무실 내부는 귀여운 라인 프렌즈 캐릭터와 각종 아이템으로 아기자기하게 꾸며져 있었습니다.

이곳에서 일본, 중국에서 온 여러 동료들을 만날 수 있었습니다. 중국어, 영어, 일본어, 한국어가 섞인 대화가 오갔지만 LINE 엔지니어들 간에 언어 장벽은 느껴지지 않았습니다.

LINE Developer Day

이 한 주 동안 가장 기억에 남는 행사는 서울에서 개최된 LINE Developer Day였습니다. 다양한 국가와 기업에서 일하는 수백 명의 개발자들이 LINE의 최신 기술 트렌드를 보기 위해 모여들었습니다. 지금부터 키노트와 오후 세션에서 발표한 내용을 간단하게 소개하겠습니다.

키노트 세션

키노트 (박의빈, CTO)

LINE Developer Day 2015 키노트의 주제는 "LINE, The Platform of Today"였습니다. LINE의 박의빈 CTO께서 LINE이 달성한 성과를 수치를 인용하면서 소개했습니다. 예를 들어, 하루 170억 건의 메시지를 처리한다고 하는데, 이는 LINE이 일상 생활에서 없어서는 안될 서비스로 자리잡았음을 보여주는 것이었습니다. 게다가 여기에 안주하지 않고 더욱 많은 개발자와 컨텐트 공급자를 위해 LINE 플랫폼을 개선해 나가고 있습니다. 박의빈 CTO의 키노트는 내년에 열릴 LINE Developer Day에서는 스마트 모바일 생태계를 선보일 것이라고 하면서 마무리되었습니다.

LINE Development Chronicle (김동현)

이 세션에서는 김동현 님이 지난 4년 동안 LINE이 발전해온 과정에 대해 발표했습니다. LINE의 기원은 단순한 요구 사항에서 시작했습니다. 그것은 바로 '누구나' 사용할 수 있는 메신저였습니다. 아이부터 어르신까지 LINE을 사용하게 되었으니 큰 성공을 거두었다고 볼 수 있습니다. 또한 LINE은 두 개의 혁신적인 '위치 공유'와 '읽음 확인' 서비스를 도입했습니다. 이 기능은 LINE 사용자의 빠른 증가에 크게 기여했습니다. 하지만, 다른 한편으로는 여러 기술적인 과제를 낳기도 했습니다. LINE 엔지니어들은 지난 수 년 동안 발생한 각종 문제를 조사하고 여러 최신 기술을 적용함으로써 아키텍처와 애플리케이션을 끊임없이 개선했습니다. 이 덕분에 LINE 서비스의 안정성과 속도가 향상되었습니다.

LINE Bubble 2 Development Story (이태웅)

이태웅 님이 발표한 LINE Bubble 2 Development Story는 가장 흥미로운 세션 중 하나였습니다. LINE Bubble 2의 최초 계획은 개발 착수로부터 3개월 내에 출시하는 것이었습니다. 하지만 이런저런 변경이 생기면서 제작 기간이 1년으로 늘어났습니다. 예를 들어, 원래 게임 컨셉은 주방에서 요리하는 브라운이었습니다. 하지만 팀원들 사이에서 게임 사용자의 관심을 지속적으로 끌기에는 부족하다는 의견이 나와서 모험을 테마로 한 스토리로 변경해야 했습니다. 이 게임은 2015년 4월 23일 공식 출시했습니다.

오후 세션

LINE Channel Platform and More (박영섭, Takahashi Jose Luis)

이 세션에서는 박영섭 님과 Takahashi Jose Luis 님이 채널 게이트웨이, LINE 플랫폼, Business Connect의 개념과 용도에 대해 설명했습니다. Business Connect 서버는 채널 게이트웨이를 통해 LINE의 다양한 내부 서비스와 데이터를 주고받습니다. 

LINE 플랫폼 개발에서 핵심 사안은 개인 정보와 보안이었습니다. 사용자가 안심하고 오픈 플랫폼 서비스를 이용할 수 있도록 LINE 플랫폼을 담당하는 여러 팀이 최선을 다해 사용자의 개인 데이터를 보호하고 어뷰징 행위에 대처하고 있습니다.

LINE Game Cloud (최영호, Gall Johan)

이 세션에서는 LINE 게임 플랫폼의 새로운 아키텍처가 소개되었습니다. 새로운 플랫폼을 모색하게 된 계기는 LINE 게임의 빠른 성장이었습니다. 최영호 님과 Gall Johan 님은 다양한 게임에서 고르게 만족스러운 사용자 경험을 제공하는 것이 어려운 과제였다고 합니다. 두 발표자는 사용자의 만족도뿐만 아니라 개발자 삶의 질까지 보장할 수 있어야 완벽한 해결책이라고 강조했습니다. 게으른 본인들의 업무를 수월하게 만들기 위해서라도 혁신에 힘을 쏟아야 한다고 농담 삼아 말하기도 했습니다.

LINE for Windows 10 (권오익, 석영태)

Microsoft에서 Windows 10을 출시하면서 앱 스토어인 Windows Store를 새롭게 단장했습니다. 이는 곧 Windows용 앱 개발에 있어서도 새로운 출발을 의미하는 것입니다. 권오익 님과 석영태 님은 각각 클라이언트 개발자와 서버 개발자의 관점에서 Windows 10용 LINE을 개발한 경험을 공유했습니다.

Applying QUIC Protocol on LINE Games (송성호, 박태용)

이 세션에서는 LINE 게임 플랫폼에서 사용하는 QUIC 프로토콜을 소개하였습니다. QUIC은 커넥션 핸드셰이크와 패킷 손실을 처리할 수 있는 지능적인 메커니즘을 갖추고 있습니다. 특히 모바일 게임 통신 환경에서는 완벽한 방식이라 할 수 있습니다.

Armeria: LINE's Next Generation RPC Layer (이희승)

Armeria는 Java 8 및 Netty 4를 기반으로 하는 동기/비동기 RPC 라이브러리입니다. 이는 커넥션 폴링 및 도메인명 조회 문제를 해결해 주는 진정한 비동기 RPC라고 할 수 있습니다. 이희승 님은 샘플 코드와 클라이언트 데모를 보여주면서 Armeria 기능을 소개했습니다. Armeria는 LINE 개발에 이미 사용되고 있으며 오픈 소스로도 공개되었습니다.

Hardcore: Trend of Chinese Mobile Game (Chen Liu, CPO, Longtu Game)

Chen Liu 님은 중국 모바일 게임 시장의 최근 추세에 대해 이야기했습니다. 중국은 누구나 진출하고 싶어하는 거대한 시장입니다. Chen Liu 님은 우선 중국 시장의 현 상황을 분석하고, 이어서 LongTu Game이 양질의 IP(Intellectual Property, 지적 재산)를 발굴 또는 창출하여 RPG 같은 하드코어 게임을 제작한다고 소개하였습니다. 또한 중국 모바일 게임 시장의 새로운 요구에 맞춰 하드코어 장르의 특성을 지닌 미드코어 게임 개발에도 주력하고 있다고 설명했습니다.

Ampkit: Mobile VoIP Platform in LINE Messenger (곽정남)

Ampkit은 LINE 음성 통화 품질을 개선하기 위해 새로 개발한 VoIP 클라이언트 모듈입니다. 초기에 음질에 관한 불만이 일부 제기되었고, 이에 따라 LINE 엔지니어들은 프로토콜을 변경하고 'de-jitter' 버퍼를 조정했습니다. 그 결과 품질이 이전에 비해 크게 향상되었습니다. LINE은 품질을 더욱 개선하고 유용한 기능을 추가하기 위해 끊임없이 연구하고 있습니다.

Game Security Response Architecture AIR (오왕진, 서동필)

LINE 게임은 글로벌 플랫폼을 제공하기 때문에 정보 보안과 관련한 다양한 문제에 직면하게 됩니다. 사용자들이 국가별로 서로 다른 행동 패턴을 보이기 때문입니다. AIR 플랫폼은 클라이언트에서 서버까지 아우르는 해결책을 제시합니다. AIR는 부정 행위를 꾀하는 사용자 로그를 수집하고, 각종 로그를 자동으로 분석, 모니터링하며 사용자 환경에 영향을 미치지 않고 리포트를 생성하는 지능적인 메커니즘을 지원합니다. 루팅, 탈옥한 핸드폰을 이용해서 속임수를 쓰거나 어뷰징 행위를 하는 사용자가 많이 있는데, LINE에서는 이에 대한 해결책을 갖추고 있으며 앞으로도 지원을 계속할 것입니다.

Collaborative Mindset of Security And Others (원종일)

원종일 님은 데이터를 임의로 복구하거나 가로채는 것을 막기 위해 고안된 True Delete, Letter Sealing 기능을 소개하고 LINE Bug Bounty 프로그램을 통해 발견한 사실을 공유했습니다. 더불어 보안 문제에 대처하기 위한 협업의 기본 원칙에 대해서도 설명했습니다.

LINE Bug Bounty 프로그램을 진행하면서 알게 된 사실은 개발자와 보안 엔지니어가 취약점을 바라보는 관점이 서로 다르다는 것입니다. 원종일 님은 LINE이 지금까지 쌓아온 좋은 평판을 유지하기 위해서는 LINE 개발자가 반드시 보안 지식을 쌓아야 하며 보안 관련 버그를 중대한 문제로 다뤄야 한다고 말했습니다.

Performance Optimization for Real-Time Physics Simulation in Cocos2d-x (김선태)

김선태 님은 Cocos2d-x 물리 엔진을 개선한 과정에 대해 발표했습니다. LINE 엔지니어들은 기존의 물리 엔진에 멀티스레드 방식을 구현하는 동시에 물리 계산을 정확하고 효율적으로 수행하도록 Cocos2d-x 소스 코드를 수정했습니다. 또한 시뮬레이션으로 얻은 데이터를 통해 성능이 얼마나 개선되었는지 평가하는 과정을 보여줬습니다. 이러한 성능 최적화는 사용자의 만족도 향상으로 이어졌습니다.

모든 세션이 깊이 있고 알찬 내용으로 가득했습니다. LINE Developer Day는 많은 정보가 공유되는 유익한 행사였습니다.

해커톤

LINE Developer Day 행사 다음에는 LINE 해커톤(Hackathon)이 열렸습니다. 저는 서버 트랙의 사회자 역할을 맡아 해커톤을 진행했고, 참석자들에게 튜토리얼과 함께 프로젝트 개발 시 사용할 Business Connect Application Server 샘플 코드를 전달했습니다.

각 팀은 5 ~ 6 시간 동안 아이디어를 선정해서 구현하고 5분 동안 결과물을 발표했습니다. 프로젝트의 주제는 작업 효율화, 친구 찾기, 음식 주문, 정보 조회, 기념일 알림 등 다양했습니다. 해커톤에 참여한 모든 팀원들이 가장 좋은 아이디어를 구현한 세 팀을 골라 투표했습니다.

LINE 해커톤의 진행 요원으로서 배운 점들을 말씀드리자면, 첫째, 거의 모든 팀이 구현에 들이는 시간을 줄이기 위해 샘플 코드를 사용해서 개발했습니다. 따라서 튜토리얼과 완전한 샘플 코드가 개발자에게 반드시 필요했습니다. 둘째, 모든 팀이 LINE 플랫폼에 대해 설명을 들은 직후 바로 개발을 시작할 수 있었는데, 지난주 해커톤 진행 요원들이 LINE 플랫폼에 신규 채널을 충분히 만들어 두었기 때문이었습니다. 해커톤을 시작하기 전에 개발용 계정을 미리 준비하는 것은 중요한 일이었습니다. 마지막으로, 제한 시간 5분 내에 청중이 이해할 수 있도록 프로젝트 주제와 애플리케이션 기능을 설명해야 했는데, 이것은 생각보다 어려운 일이었습니다. 서비스에 대해 효과적으로 설명하고 홍보하는 능력이 개발 실력 못지않게 중요하다는 생각이 들었습니다.

에필로그

LINE Developer Week 마지막 날에는 LINE 올림픽이 있었습니다. L, I, N, E의 총 4개 팀으로 나누어 농구 경기와 풋살 경기를 했습니다. 모두가 마치 프로 선수처럼 진지하게 임했기 때문에 상당히 격렬하고 흥미진진했습니다.

LINE 올림픽의 종료와 함께 모든 일정이 끝났습니다. LINE Developer Week는 유용한 지식도 공유하고 동료들과 어울릴 수 있는 소중한 한 주였습니다.