처음으로 네이버 데뷰에 왔다

Keynote

연사 : 송창현님 CEO @ 네이버랩스

Ambient Intelligence(생활환경지능)를 강조

  • Understanding

    사물, 상황, 위치 인식 / 이해

  • Anticipatory

    적시에 답 / 추천 / 액션 제공

  • Natural UX

    자연스러운 인터페이스 => Clova, papago

Green dot

  • 네이버의 여러 서비스를 dot 의 UI 로 제공

위치와 이동에 대한 기술에 집중

위의 노력의 결과를 공개

  • 어제 업데이트 된 네이버 지도

    네이버 지도에서 예약 서비스를 이용 => 지도에 표시가 됨

  • Naver Map Enterprise API 11월 13일 출시 예정

    지도, 길찾기, Places Mobile 지도 로딩 Open API, 모바일 SDK 무제한 무료 제공

아직 풀지못한 실생활과 공간과 이동의 연결에 대한 문제

  • 우회전이 많이 막히는 길을 안내해주면 좋겠다.
  • 네이버 랩스가 지금까지 준비해온 패키지
  • mobile, autonomous vehicle, autonomous robot => MAP(지도)
  • 측위 + 지도 + 내비게이션

    indoor navigation 등을 만들고 싶다 => xDM Platform 을 구매하면 가능(하다고 한다.)

  • 증강 현실

    Coex 에서 Indoor AR 을 이용한 길찾기를 동영상으로 보여줌. => 신기하고 좋다.

키즈폰 AKI kit 가 이 xDM Platform 을 아주 잘 쓰고 있음 (준비중이라 함)

SELF-UPDATING MAP

  • 지도 업데이트 : 시간, 물리적 비용이 엄청 남 => 많은 기업들이 Self-updating map 을 할 수 있도록 연구/개발하고 있음

    Using Deep learning, semantic segmentation, Robot, 3D Mapping, etc.

자율주행 자동차

  • HD Map => Hybrid HD Map
  • Trueortho map

ADAS (Advanced Driver Assistance System)

  • 자율주행 자동차가 아니더라도 안전을 위해 도입할 수 있는 기술
  • Ordinary HUD(눈의 초점에 따라 HUD 맵도 움직임) -> AHEAD(네이버에서 개발, 눈의 초점과 상관없이 도로를 기준으로 HUD 맵이 고정되게 보임)

Robot AMBIDEX

  • 끝이 무거운 막대를 손바닥 위에 올려서 균형을 잡는 영상을 보여줌 => 대단…

첫번째 세션 : 해커의 관점에서 바라보기

연사 : 박세준님 CEO @ Theori (무려 CMU 출신이시다..)

  • Theory : 보안 스타트업

발표자료 : https://www.slideshare.net/deview/131-119007645

ice breaking

  • 본인, 회사 소개
  • 대중에 알려진 해킹

    안 좋은 것

  • 진짜 해킹

    분석 -> 이해 => 즐거움, 보람

해커의 종류

  • Black hat (aka. 나쁜 해커)
  • Gray hat (법적 테두리 주변..)
  • White hat (aka. 보안 전문가)

개발과 해킹의 경제론

  • 개발자는 데드라인, 시간/금전적 비용 제약 등 : 불리함
  • 개발자는 10을 만들면 10을 모두 안전하게 만들어야 함
  • 해커는 1개만 뚫으면 됨

취약점은 버그의 일종

소프트웨어 해킹

  • 모바일
  • 네이티브

하드웨어 해킹

  • 핀과 칩으로부터 펌웨어
  • 펌웨어

두번째 세션 : 서비스 오리엔티드 블록체인을 위한 스케일링 문제 해결

연사 : 이홍규님 CEO @ 언체인

  • dApp

dApp : 4300만개의 계좌가 열려있음

  • 블록체인이 대중적인 플랫폼이 아님
  • 얼리 어답터도 dApp 서비스를 사용하기는 어렵다.

icebreaking 어떤 블록체인이 필요한가?

  • 사용자가 안심하고 쉽게 사용 가능

    private key 안심 금고 login, blockchain 속도 등 동일한 UX

  • dApp 을 만들기 쉽고 사용자들에게 소개할 수 있음

    smart contract 안정성 개발 편의성

Scale Out

Trials (시도들)

  • 라이덴 네트워크
  • 플라즈마, 플라즈마 캐시
  • 샤딩

사이드체인, 인터체인

샤딩

  • 쿼크체인
  • 질리카

세번째 세션 : Javascript 배틀 그라운드로부터 살아남기

연사 : 박재성님 @ Naver

  • Mocha -> Live Script -> Javascript
  • 표준화 타임라인

자바스크립트 변천사 간략히 소개

  • 2005 - 2013 jQuery, Prototype, MooTOols, …
  • 2013 - Now Angular, React, Vue, …

  • Evergreen Browser 개념의 등장 (과거와 달라진 버전의 중요성)

오늘날의 JS 개발

  • 프레임워크 + 개발도구
  • npm 패키지 사용 -> 조립

개발 방식의 진화

  • Library -> Framework
  • Virtual DOM 등

2018년 동향

  • 버전 구분 중요성 감소 (ES20XX 이후)
  • 과거(버저닝에 큰 변화)와 달리 feature 단위로 릴리즈
  • Transpiler(Babel)은 최신 스펙 사용 이슈 해결
  • Evergreen Browser 는 스펙을 빠르게 구현

WebAssembly

  • 어느 브라우저에서나 빠르게 실행되는 바이너리로 컴파일

정적 타입 사용

  • Typescript, Purescript, ReasonML 등

React, Vue, Angular, Web Components, Polymer 의 특징 소개

  • Angular, Vue.js -> 웹 컴포넌트로 컴파일 가능

0CJS (Zero Configuration JS

  • Webpack : 설정, 또 설정
  • Parcel : 무설정 지향

모바일 애플리케이션

  • NativeScript
    • Angular-friendly
  • React-Native
    • create-react-native-app
    • TV 플랫폼 (Android, Apple) 지원

데스크톱 앱

  • 모두 Chromium 기반
  • 일렉트론
  • NW.js

    웹앱을 빠르게 데스크톱앱으로 전환시 강점

PWA (Progressive Web Application)

  • Safari, Edge 지원 추가로 드디어 기본 사용환경 갖춤
    • is ServiceWorker ready?
  • 아직은 미미하지만, 앞으로 사용 증가할 것으로 예측됨
  • 다양한 도구의 등장

    Workbox, HNPWA, PWA Starter Kit, pwa-helpers, …

WebXR Device API

  • WebVR 을 대체
  • Immersive Web

매몰비용 오류의 함정

  • magpie syndrome

네번째 세션 : 네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB

연사 : 이덕현님 DBA @ Naver Business/Data Platform

네이버에서의 Data platform

  • Cache(Redis, ARCUS) - RDBMS(Mysql, Oracle, Cubrid)
  • NoSQL (mongo, hbase(하둡 기반))

몽고를 쓰게된 이유

  • schemaless

    Pros : 미리 데이터의 구조를 정의하지 않아도 됨 Cons : 저장 용량이 큼 (저장 효율 떨어짐)

  • sharding, secondary index, transaction 처리 가능

    auto sharding 가능 transaction : ~3.6 까지 1개의 document 에 대한 트랜잭션 보장(row level lock) transaction : 4.0 부터 단일 replica set 에서 Multi-document transaction 보장

  • json 지원
  • IDC 간 Auto failover (IDC DR : disaster recovery) 가 가능한 Data platform 임

    네이버에서도 중요한 서비스에 도입하려고 시도하는 단계 몽고 db 는 IDC가 3개 이상의 홀수 개수만큼 필요함

네이버에서 몽고db를 사용하며 겪은 에피소드들 (약 2-3년 전부터 사용)

  • Mongos 관리

    Mongos : 샤딩을 사용할 경우 단순 라우터 기능 제조사 권장은 Mongos 를 client 와 같이 배포를 권장하고 있으나 네이버에서는 사용하고 있지 않음

L4와 getmore

  • Sharding 에서의 L4 (network switch) 사용을 초기에는 권장했으나 getmore 이슈로 제거

    getmore 할 때마다 오버헤드 발생 getmore : 20건 단위로 데이터 전달하는 과정 ( find() -> getmore() )

  • => L4 제거

mongos <-> shard 커넥션 (유용한 팁)

  • Mongos 와 shard server 사이에 커넥션 관리에 문제가 있음
  • 아래의 옵션을 적용하여 사용 (튜닝)
    shardingTaskExecutorPoolHostTimeoutMS: 3600000
    ShardingTaskExecutorPoolMaxSize: 20 (default : Unlimited) - 단위 : 개 per core
    ShardingTaskExecutorPoolMinSize: 10 (default: 1) - 단위 : 개 per core
    
  • mongos 와 shard 사이의 커넥션 수가 갑자기 늘어나는 현상 거의 사라짐
  • ex) 실제로 추석연휴때, 평소 사용량이 없던 서비스가 급작스럽게 사용량이 늘어나서 mongo 증설해야한다는 연락을 받았다는 썰.

Node.js driver

  • Node.js 모듈인 mongoose 는 성능 이슈로 인해 권장하지 않음
  • Node.js 드라이버 3.x 버전보다는 2.x 버전이 안정적임

    => 네이버도 2.x 버전을 사용하고 있음

Storage Engine

  • WiredTiger 엔진만 사용하고 있음
  • eviction problem

    eviction : memory buffer 에서 오래된 data 삭제하는 작업 Mongo 3.2.11 또는 3.4 이상 버전을 사용하면 해결됨(안정적 운영 하고 있음)

  • Checkpoint problem

    checkpoint: memory buffer 와 disk 사이의 데이터 불일치(dirty page)를 해소하기 위해서 memmory -> disk 로 data sync 하는 작업

eviction & Checkpoint

  • Mongo 에서 Buffer pool : 전체 메모리의 50% 사용 => 여기엔 자세한 이유가 있지만 설명하지 않음

    한 서버에서 2개 이상의 replica set 을 돌리지 않음 <= OOM 으로 몽고 데몬이 죽을 수 있음

Background Index

  • RDBMS의 onine index create
  • MongoDB 는 bacground index 생성 가능

    인덱스를 만드는 컬렉션이 포함되어 있는 전체 db에 lock이 걸림 (cf. mysql 은 해당 테이블에만 걸림)

Compact

  • 디스크 조각모음 같은 작업
  • 절대 수행하지 않음

Balancer

  • MongoDB의 Chunk MIgration은 많은 비용이 듬
  • 여러 이유로 Balancing 작업이 실패할 수 있음
    • Config server 에서 changelog 를 자주 살펴봄

Clustered Index

  • Clustered Index : 해당 key 값 기준으로 실제 데이터가 정렬되어 있음
  • MongoDB 는 Clustered Index 가 없어서 사용할 수 없음.
    • Clustered Index 가 중요하다면 MongoDB를 사용하면 안 됨

Unique Index

  • Sharding 환경에서 unique index 는 전체 shard 내에서 유니크하지 않음

    shard 내에서만 unique 함 보장. Application 에서 방어로직을 작성해야 함

개인정보 - 전자금융거래법 관련

  • MongoDB 3.6 버전의 authenticationrestrictions 기능 사용 중
  • bind_ip 는 DB ACL 을 제한하는 기능이 아님

전망 (주관적)

  • 잘 써야 함
  • 성능과 안정성 이슈 존재
    • Checkpoint 관련 issue 해결 시급
  • 우리나라에서 Main Stream 으로 도입될 가능성은 높지 않을 것 같다.

마지막 세션 : 웹 성능 최적화에 필요한 브라우저의 모든 것

연사 : 이형욱님 @ Whale

HTML Parse

  • incrementally parsing

Javascript Engine

Vsync

Raster

  • 비트맵을 찍는 과정이라 생각하면 됨

처음 가본 데뷰에 대한 인상

  • 내년부터는 꼭 듣고 싶은 세션으로 채워질 수 있을 때만 가야겠다.
  • 그래도 오랜만에 본 사람들이 많아서 좋았다.

Comments