Deview

development Yobi


  • Github과 비슷한 종류의 설치형 오픈소스
  • Play2에 Java 사용(ORM은 Ebean)
  • ORM 때문에 고생함
  • Github이라는 강력한 상대, 영혼없는 개발자
  • 개밥먹기 - 제품향상위한 제일 좋은 방법
  • 개발자 모두가 기획, 디자인 ,개발, 테스트
  • 코드리뷰
  • Play2 버그로 인해 많이 고생(Java 지원이 약함)
  • scala template으로 인한 어려움
  • 문서작업은 plain text 기반

android performance


  • Jelly Bean부터 많이 좋아짐
  • Bitmap decoding performance
  • GC 개선 - concurrent
  • SDK, NDK, Renderscipt(LLVM)
  • Chrome Browser 구조 - render, browser process
  • Vsync - schedule for input and drawing
  • Blink 및 Chrome 이 좋은 참고자료
  • gpu computing에 주목

realtime document


  • Operational Transformation - 구현이 어려움
  • Operation 만 전송, OT function 으로 변환해 동기화
  • client - javascript
  • server - java(logic재사용 문제, 표현력이 약함) -> drop
  • server - node.js ( document model 재사용가능,  high order function) -> 채택
  • node.js - non blocking I/O, websocket(socket.io)
  • OT open source - Etherpad, sharejs, ot.js, chageset(ot모듈만 가져다 쓰기 좋음)
  • summet note(github)

cloud foundry


  • open source pass - vmware
  • v1, v2
  • Nats - 모든 컴포넌트가 바라보는 곳으로 SPOF
  • Router - go(v2), SSL 제약, nginx를 revers proxy로 두어서 보완
  • Stager - DEA에 흡수(v2). build pack
  • DEA - warden container별 관리 실행, LXC가 아닌 cgroup 사용
  • service gateway, controller - provisioning, warden container 관리
  • controller는 ROR로 개발되어짐

java script로 하는 naver office


  • Performance problem
  • 응답없음 - function call 내 명령 기준
  • dynamic rendering - chunk rendering, setTimeout
  • dom 객체 과다 문제 - 보이는 부분만 렌더링, buffer 영역
  • reflow, repaint - batch dom manipulation, repaint와 reflow 격리
  • theme - document style sheet 의 메소드 사용
  • local font detecting - ruler span 사용, 높이/너비 변경 확인
  • clipboard 처리 - hidden iframe 사용, type에 따른 처리
  • vector element event - 이벤트는 사각형 기준이 문제, svg는 pointer event prop 사용(파폭과 크롬에서는 div에서도 됨)



  • IE 에서는 특정 클래명 검사, elementFromPosition, fireevent 사용
  • 앞으로 Javascript는 application개발의 미래다(desktop, mobile등)

Nosql and hadoop


  • operational vs analytic
  • sqoop 통해 couchbase등 nosql 과의 연동
  • 분산처리로 인해 sqoop이 전통적 ETL에 비해 big data에 유리
  • Ansible 사용해서 couchbase 설치
  • javascript를 사용해서 map, reduce for couchbase 시연
  • node.js express 사용해서 결과 시연

multi thread programming


  • Lock의 문제
  • Data race condition
  • Compiler 최적화
  • CPU 사기(최적화)
  • Synchronized - performance problem
  • CAS
  • Lock Free programming - 어렵다
  • TBB, PPL - 범용적, 성능이 저하
  • functional programming(Erlang..)

netflix


  • 실시간 분석
  • 시험삼아 소규모 deploy, 모니터링 패턴 비교
  • mr scheduling 도입 - 지니
  • hive query - latency 문제
  • visualization (3d 지구) - 위치등
  • monitoring - discover outstanding data, intelligent alert
  • kibana 로 상세탐색
  • data pipeline - suro(open source 예정)
  • log가 map 형식
  • druid - column oriented storage, bitmap index
  • monitoring - servo and atlas 사용
  • software load balancer - eureka



  • kafka - 수집담당
  • elastic search
  • zookeeper - zkclient를 curator로 대체

Tajo


  • hive is too slow
  • hive 문제점...
  • vectorized 연산, 별도 스케줄링 엔진, cost based, sequence disk access...
  • open source 적용시 문제 - irq 할당 버그, kernal option disable
  • SIMD, LLVM 최신 기술 적용 - C++ 변환중

ram cloud


  • low latency at small scale
  • log structure, fast recovery, partitioned recovery
  • backup on disk
  • clean mechanism
  • replicated state machine
  • Raft - Consensus algorithm(paxos is difficult)
  • Logcabin - configuration server(like zookeeper)

recommendation system


  • skill endorsed
  • supervised machine learning - 과거 데이터 기반으로 미래를 예측
  • Hadoop 기반 - infra 기반과 분석기반이 분리
  • feature 선정 - feature 추출 - 수집 - 모델생성 - 서비스 반영
  • 초기에 기초자료 없는 경우 다른 produc의 결과 및 메뉴얼 작업을 기초 데이터로 세팅
  • Feature 수집은 kafka 이용 - 저장은 hdfs - 분석은 pig, java, r 등
  • flow는 azkaban을 사용해서 관리
  • 생성된 모델데이터로 만든 추천데이타는 voldmort에 저장
  • machine learning algorithm은 속도, 정확성 두 요소 고려
Made with Slides.com