Hot Trend Lambda Expressions, Compare C# With Java

Post on 18-Jul-2015

801 views 10 download

Transcript of Hot Trend Lambda Expressions, Compare C# With Java

1

Hot Trend Lambda,Compare C# With Java

중앙일보JunSeok.Jung

2

정준석korcosin@gmail.com

2011.01 ~ 2011.10 : LG전자 R&D연구소 (아주 잠깐)

2011.11 ~ 2015.05 : WISEnut( Search-Tech 팀 )

2015.05 ~ 2016.07 : 에듀윌 ( 개발팀 )

2016.07 ~ ING : 중앙일보 ( 기술개발팀 )

- Crawling Technical Specialist

- Web Developer

- Polyglot Programmer… 가 되고 싶은…

- .NET과 JAVA 이중 스파이

INDEX

3

1. Lambda Expression?

2. Why Learning Lambda

3. C# Lambda

4. Java Lambda

5. Expected to .NET 5.0

6. Expected to Java 1.9

오늘 할 이야기

4

이 강연을 들어야 할 사람

5

숨바꼭질 中 손현주의 행위

6

7

8

장악 당한 집의 개수는?

9

장악 당한 집의 개수는?

10

장악 당한 집의 개수는?

11

장악 당한 집의 개수는?

Stream API with Lambda ( Java 8 )

12

Lambda?

13

Lambda?

14

Lambda?

〃 어떤 문제를 해결하기 위한 과정을수학적 함수를 이용하여 표현한 수식 〃

15

Why?

Compact Code

Multi Core CPU

Trend

?

16

17

18

C# Lambda - History

Delegate ( C# 1.0 )

19

C# Lambda - History

Anonymous Method ( C# 2.0 )

20

C# Lambda - History

Lambda ( C# 3.0 )

21

C# Lambda – ex1 ( 과거의 정렬 )

22

C# Lambda – ex1 ( 람다의 정렬 )

Type Inference ( C# 3.0 )

Sort With Lambda

23

C# Lambda – ex2

LINQ ( C# 3.0 )

24

C# Lambda – ex2 ( LINQ의 예 )

25

C# Lambda – ex3

Extension Method With Lambda

26

C# Lambda – ex4

27

C# Lambda – ex4

LINQ to SQL ( C# 3.5 )

28

C# Lambda

LINQ to XXX ( C# 3.5 )

SQLXML

Object

EntitiesDataSet

29

C# Lambda – ex4 ( 고급 LINQ to SQL )

30

C# Lambda – TIP

foreach( var x in y ) VS ToList().ForEach

ImperativeProgramming

FunctionalProgramming

31

C# Lambda – ex5

Query Syntax

32

C# Lambda – ex6

33

C# Lambda – ex6

LINQ to XML ( C# 3.5 )

34

C# Lambda – ex7

PLINQ ( C# 4.0 )

35

C# Lambda

C# Lambda/LINQ가 주는 교훈

DeclarativeProgramming

Elegance

F#의 탄생 Java 위협* 주관적인 제 생각^^;;

36

37

Java Lambda – ex1 ( 과거의 Thread )

38

Java Lambda – ex1 ( 람다의 Thread )

Functional Interface

39

Java Lambda – ex1

Functional Interface

Interface Abstract Method1 1

java.util.function.*

40

Java Lambda – ex2

Type Inference

41

Java Lambda – ex2 ( Type Inference )

42

Java Lambda – ex3 ( 과거의 정렬 )

43

Java Lambda – ex3 ( 람다의 정렬 )

44

Default Method

Method Reference

Java Lambda – ex3 ( 람다의 정렬 심화 )

45

Java Lambda – ex4

Stream API

46

Java Lambda – ex4

Stream API

Internal IterationAnti ImperativeProgramming

Lazy Programming

Not How,Do What

47

Java Lambda – TIP

Internal V.S External

48

Java Lambda – ex4 ( Stream API )

49

Java Lambda – ex4 ( Stream API )

50

Java Lambda – ex4 ( Stream API )

51

Java Lambda – ex4 ( Stream API )

52

Java Lambda – ex5

Parallel Stream

53

Tip

Stream V.S Parallel Stream

무조건 쓰는 것은 X Fork-Join 기법

Parallel Stream이 짱?

54

Tip

Parallel Stream의 고려 사항

1. 데이터 크기

2. 소스 데이터 구조

3. 객체화

4. 코어의 개수

5. 등등…

- 충분한 데이터가 있을 때

- 데이터 소스를 쉽게 나눌 수 있는 구조일 때

- int,float,double > Integer,Float,Double

- 접근할 수 있는 코어가 많을 수록

55

Tip

Parallel Stream 좋아요!

ArrayList / Array / IntStream.range

56

Tip

Parallel Stream 그럭저럭 쓸만한데..?

HashSet / TreeSet

57

Tip

Parallel Stream 피해주세요

LinkedList Random Access불가능!

58

Expected to…

59

60

61

62

63

64

Stream API

65

Stream to SQL

66

Why Learning Lambda?

67

Why?

Compact Code

Multi Core CPU

Trend

?

68

Why?

Compact Code

Multi Core CPU

Trend

Polyglot

69

Reference Data…

70

Thanks to…

WISEnutCo-worker

Silicon ValleyStudy Group

Spring Camp ETC…

71

Thank You !!

잔잔한 바다에서는

좋은 뱃사공이 만들어지지 않는다.

- 영국 속담 -