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

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

Apr 16, 2017

Download

Technology

Justin Park
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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

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

^^