10. webdev @ Linked[in]
Vertical Teams
Horizontal Teams
Play at Linkedin
Dust.li
Team
Money
Sales
Navigator
Branding
And
Marketing
pEMBERly
Recruit
Platform
Slideshare
REST.li
Linkedin
Profile[in]Mail
Davinci
19. Data infra: collect & ferment data
Collect & Ferment Data
Kafka + Hadoop
Serve Data
Pinot
Taste Data
Easy-to-use visualization
20. Products for members/customers with real-time
interactive analytics
• Who’s Viewed Your Profile
• Ads Reporting
• Jobs Analytics
Categories of interactive analytics products
Interactive business analytics for internal use
• How feature X is performing
Real-time business monitoring
• Page view changes across mobile devices
21. Reporting UI: serve & taste data
Collect & Ferment Data
Kafka + Hadoop
Serve Data
Pinot
Taste Data
Easy-to-use visualization
22. I want to access big data without
running SQL
Business need
60. Great Design patterns are reusable, modular
expressions of what’s going on in your code.
좋은 패턴 디자인은 재사용이 가능하고
무엇을 하려고 하는지 코드에 그대로 표현되어 나타난다.
They allow you to communicate to other
developers simply by the way you code,
in addition to being easily maintainable
themselves
패턴 디자인은 다른 개발자와의 코드 교환이 쉬우며,
각자가 관리 및 유지하기가 쉽게 해준다. 60
왜 디자인 패턴을 사용해야 하나?
62. 62
객체 지향적 프로그래밍
코드를 재활용하고 재사용가능
직관적인 코드 디자인
시간당 생산량 증가
ListView
FlexListView
SubPanelListView
DashableListView
RecordListViewSelectionListView
64. 64
성능 튜닝
중복된 이벤트 감시자를 줄인다
이벤트 감시자 최적화
Backbone: _events stack
Angular: $__watchers, and $scope variables in $digest cycle
다음은 얼마나 많은 감시자가 추가 되었을지 생각해 봅시다.
SugarCRM에서 BackboneJS, PHP API Framework을 이용하여 싱글페이지어플리케이션을 개발
11주년
3억3천만명, 200+ 국가, 23개 언어
년간 2백5십억 페이지뷰
200억, 액티브 30만개의 잡포스팅
4백만 회사 페이지, 만여개의 프로패녀설 스킬셋, 3백만개의 활동하고 있는 회사 프로파일 페이지
자료의 복잡성
Easybi steps -> 1. connect the source in pinot (bottle opener), 2. select time/dimension/metrics (choose glass), 3. group charts in one dashboard (taste)
Acquire
Parse
Filter
Mine
Represent
Refine
Interact
링크드인에서는 아파치 카프카 (which is built and opensourced at Linkedin)를 이용해 모든 실시간 자료를 기록하고 있습니다.
카프카를 포함한 모든 다른 데이타 리소스는 ETL (Extract, Transform, Load) 과정을 통해서 하둡 데이터 웨어하우스에 기록됩니다.
데이타 사이언티스트들은 주로 Pig, Hive or java MR 등을 사용하여 분석이 필요한 메트릭스 자료를 수집하고 계산해냅니다.
하지만 링크드인역시 엄청난 데이타 사이즈로 인해서 조인등 데이타 수집과정에 엄청한 시간이 소요되기때문에 Cubert라는 자체 프레임워크를 개발하여
분산 처리된 자료를 데이타 사이언티스트와 같은 빅데이타 수요자 인프라에 제공합니다.
그럼 복잡하고 다양한 데이타 분석자료를 어떻게 가공하고 만들어낼까요?
링크드인은 데이타 회사로 내부에서 일어나는 빅데이타를 여러가지 측면에서 활용하고 있습니다.
수많은 활동을 분석하여 트랜드를 공개하는 who’s viewed your profile: 이 제품을 통해 어떤 분야 있는 사람이 어떤 구직자들에게 관심을 가지고 있는지를 파악할 수 있게됩니다. Ads Reporting은 광고주에게 광고된 자료가 어떤 효과가 있는지를 객관적으로 분석하여 보여줌으로써 광고효과를 파악하게 해줍니다. 프리미엄서비스를 사용해보시면 이외에 수많은 수치 자료들을 확인해보실 수 있습니다..
다음으로 중요하게 사용되고 있는 분야는 PM들에게 현재 공개된 제품의 반응을 실시간적으로 파악하게 해줍니다.
Business Monitoring: 가장 중요한 부분중 하나인 비지니스 퍼포먼스 모니터링입니다. 실시간적으로 실제 성장과 가장 민감하게 연결된 자료를 파악함으로써 문제점 혹은 경쟁사의 영향력등을 파악하고 있습니다.
The origin of this infrastructure is in team money with monetization use cases. There were many analytics usecases from jobs, ads to recruiter that were demanding a single leverageable system. We did extensive research and couldn’t find any existing systems that’s designed specifically for this at that time. That’s how Pinot was born. Now the leverage is so huge that the WVMP page is powered by Pinot.
Little later, the Business Analytics team saw the power of the system, they wanted to take the data that is in hadoop and provide an ability to interact with it. We worked with them and setup a cluster to support Sponsored Content In Network Updates Dashboard. This is to help our PM’s interact with the data and get insights on how their product is being used.
Once that’s proven to be useful, now we are trying to use pinot to monitor on business metrics, like monitoring ads revenue drop across geo etc.
Easybi steps -> 1. connect the source in pinot (bottle opener), 2. select time/dimension/metrics (choose glass), 3. group charts in one dashboard (taste)
Acquire
Parse
Filter
Mine
Represent
Refine
Interact
Easybi steps -> 1. connect the source in pinot (bottle opener), 2. select time/dimension/metrics (choose glass), 3. group charts in one dashboard (taste)
Acquire
Parse
Filter
Mine
Represent
Refine
Interact
Dashboard name: Marketing
Hide left bar at first
Time range doesn’t match
Dashboard name: Marketing
Hide left bar at first
Time range doesn’t match
Dashboard name: Marketing
Hide left bar at first
Time range doesn’t match
Dashboard name: Marketing
Hide left bar at first
Time range doesn’t match
Dashboard name: Marketing
Hide left bar at first
Time range doesn’t match
원격으로 공유가능
툴은 인턴들 과제로 많이 할당됨
Startup은 Github를 주로 사용하는 추세
https://www.reviewboard.org/
Startup은 Github를 주로 사용하는 추세
https://www.reviewboard.org/
Startup은 Github를 주로 사용하는 추세
좋은것은 없다 다만 MVC 패턴이 잘갖춰진 프레임워크를 고르자
좋은것은 없다 다만 MVC 패턴이 잘갖춰진 프레임워크를 고르자
좋은것은 없다 다만 MVC 패턴이 잘갖춰진 프레임워크를 고르자
데모와 함께 소개
A joy is not to be attached deeply cause attachement brings suffer
JS 경우 event based async 랭귀지이기때문에 설계가 중요
Front-end also follows software design patterns