71
박박박 박박박 박박박박박 박박박박 LinkedIn www.linkedin.com/in/justindoit 박박 박박박박 박박박 박박박박박 박박 박박박

토종 개발자가 바라본 실리콘밸리 개발 트랜드

Embed Size (px)

Citation preview

Page 1: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

박호준 시니어 소프트웨어 엔지니어 LinkedIn www.linkedin.com/in/justindoit

토종 개발자가 바라본실리콘벨리 개발 트랜드

Page 2: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

2

오늘은 ,

간략한 소개 링크드인 빅데이타 활용 사례 링크드인 개발 프로세스 소개 프로젝트 개발 스택 공유 질의 응답

Page 3: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

3

소개 링크드인 비지니스 데이타 분석팀 시니어 소프트웨어 개발자 ( 현재 )

실리콘벨리 스타트업 프론트엔드 개발자 (Gala-net, SugarCRM)

뉴욕 주립대 컴퓨터 공학 학사 한국에서 5 년간 웹 개발자 및 DBA ( 네오액트 , 지니키즈 , WCG)

Page 4: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

4

링크드인 소개

11yearsold

Page 5: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

5

링크드인 소개

330,000,000Members

Page 6: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

6

링크드인 소개

25,000,000,000Page Views

Page 7: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

7

링크드인 소개

20,000,000,000Connections

Page 8: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

8

링크드인 소개

4,000,000Companies

Page 9: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

9

링크드인 비지니스 모델

LTSTalent Solution

LMSMarketing Solution

LSSSales Solution

Hire Market Sell

Page 10: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

webdev @ Linked[in]VerticalTeams

HorizontalTeamsPlay at Linkedin

Dust.li

Team Money

Sales Navigator

BrandingAnd Marketing

pEMBERly

RecruitPlatform

Slideshare

REST.li

Linkedin Profile[in]Mail

Davinci

Page 11: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

11

링크드인 빅데이터 팀

Page 12: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

What can we do with Linkedin

data

?

Page 13: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Sales

Talent flow between companies

Page 14: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Product & engineering

Page 15: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Is it simple?Member attributes Page View events data

Page 16: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Photo Credit: https://www.flickr.com/photos/johnjoh/1060267344

Our data vineyard

Page 17: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Data infra: collect & ferment data

Collect & Ferment DataKafka + Hadoop

Serve DataPinot

Taste DataEasy-to-use visualization

Page 18: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Data Computation

ETL

HDFS

YARN

Map-Reduce Spark Tez

Pig Hive Cubert

Page 19: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Data infra: collect & ferment data

Collect & Ferment DataKafka + Hadoop

Serve DataPinot

Taste DataEasy-to-use visualization

Page 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

Page 21: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Reporting UI: serve & taste data

Collect & Ferment DataKafka + Hadoop

Serve DataPinot

Taste DataEasy-to-use visualization

Page 22: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

I want to access big data without running SQL

Business need

Page 23: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Start a new dashboard with one click

Page 24: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Select what metrics/dimensions you want

Page 25: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Charts are rendered in just a few seconds

Page 26: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Zoom into a single chart

Page 27: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Filter on various dimensions

Page 28: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

28

링크드인 개발 프로세스

Page 29: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

How build a product at Linkedin Daily Scrum

Page 30: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

How build a product at Linkedin

매일 오전 스크럼을 통한 의견교환

Page 31: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

How build a product at Linkedin

매일 오전 스크럼을 통한 의견교환 개발자 스스로 결정하는 완료시점

Page 32: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

How build a product at Linkedin

매일 오전 스크럼을 통한 의견교환 개발자 스스로 결정하는 완료시점 언제 어디서든 진행상황을

공유가능

Page 33: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

How build a product at Linkedin

Page 34: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

How build a product at Linkedin

Page 35: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Rest.li (Data API)

https://github.com/linkedin/rest.li/wiki

Page 36: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

Rest.li (Data API)

Page 37: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

코드 리뷰

https://www.reviewboard.org/

Page 38: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

코드 리뷰

Page 39: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

코드 리뷰

Page 40: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

코드 리뷰

Page 41: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

41

A/B Testing ( 내부 테스트 )

Page 42: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

42

A/B Testing

Page 43: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

43

A/B Testing ( 전체 유저대상 )

Page 44: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

44

A/B Testing

Page 45: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

 재발생되는 버그를 잡기 위해 웹드라이버 테스트를 활용

45

테스팅 : Selenium WebDriver Tests

Page 46: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

46

LID (Linkedin Deployment)

Page 47: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

47

CRT

Page 48: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

48

[in]Graph (Monitoring)

Page 49: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

49

링크드인 개발 스택

Page 50: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

50

Web Frameworks, recommend? Play Spring Ruby on Rails Yii Node.JS …

Angular Backbone jQuery YUI Require Knockout Bootstrap …

Page 51: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

51

Comparison

http://todomvc.com/

Page 52: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

52

We’re using,

Page 53: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

53

개발 사례 : BackboneJS on PHP

Pure SPA

Metadata Manager

Data Manager

Page 54: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

54

개발 사례 : BackboneJS on Java Play

Hybrid Web Application

sbt-concat, sass compiler

Model Hierarchy

Page 55: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

55

개발 사례 : AngularJS on Java Play

Pure SPA

Grunt Builder

Less compiler by Grunt

Page 56: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

56

왜 리소스 관리자가 중요한가 ?

수많은 JS/CSS 라이브러리의 증가 라이브러리 버젼 관리 중복된 리소스 로딩으로 인한 페이지 로딩 지연

Page 57: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

57

파일 및 디렉토리 구성 (1)

리소스 종류별로 구분

Page 58: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

58

파일 및 디렉토리 구성 (2)

각 기능별로 구성

Page 59: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

59

메타 데이타 관리자 Sort the dependent modules ( 필수 모듈 순서대로 정렬 )

FlexListView

extends:ListView

ListView

DashableListView

extends:ListView

RecordListView

Extends:FlexListView

ListView

FlexListView

extends:ListView

DashableListView

extends:ListView

RecordListView

Extends:FlexListView

Page 60: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

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패턴 디자인은 다른 개발자와의 코드 교환이 쉬우며 ,각자가 관리 및 유지하기가 쉽게 해준다 .

왜 디자인 패턴을 사용해야 하나 ?

Page 61: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

61

디자인 패턴들 Factory

Singleton

MVC

Strongly OOP

Mixin

Event Driven

Page 62: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

62

객체 지향적 프로그래밍 코드를 재활용하고 재사용가능 직관적인 코드 디자인 시간당 생산량 증가

ListView

FlexListView

SubPanelListView

DashableListView

RecordListViewSelectionListView

Page 63: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

63

Mixin pool

Decorator: 믹스인 ( 플러그인 )

RecordListView

extends:ListViewErrorDecoration

Editable

MergeDuplicates

CreateViewAudit

FindDuplicates

Tooltip

ListView MergeDuplicateView

Timeago

ActivityStreamView

Page 64: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

64

성능 튜닝 중복된 이벤트 감시자를 줄인다 이벤트 감시자 최적화

Backbone: _events stack

Angular: $__watchers, and $scope variables in $digest cycle

다음은 얼마나 많은 감시자가 추가 되었을지 생각해 봅시다 .

Page 65: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

65

브라우져는 죄가 없습니다 .

Page 66: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

66

메모리 관리 개별적으로 할당한 메모리는

책임지고 해지 시켜준다

Page 67: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

67

메모리 관리 : 계속 유닛 테스트를 활용하여 메모리

누수 여부를 파악 한다

Page 68: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

68

디버깅 파이어버그 크롬 개발자 도구

Network filtering

Recording

Profiler

Local Storage in resources tab

Page 69: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

69

유닛 테스트 Jasmine, Karma, Sinon

Travis CI

Selenium WebDriver

Page 70: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

70

Q & A

Page 71: 토종 개발자가 바라본 실리콘밸리 개발 트랜드

71

개인적인 질문 편하게 이메일로 보내주세요

^^