Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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 ~ 20...
INDEX
3
1. Lambda Expression?
2. Why Learning Lambda
3. C# Lambda
4. Java Lambda
5. Expected to .NET 5.0
6. Expected to Ja...
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 )
SQL
XML
Object
EntitiesDataSet
29
C# Lambda – ex4 ( 고급 LINQ to SQL )
30
C# Lambda – TIP
foreach( var x in y ) VS ToList().ForEach
Imperative
Programming
Functional
Programming
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가 주는 교훈
Declarative
Programming
Elegance
F#의 탄생 Java 위협
* 주관적인 제 생각^^;;
36
37
Java Lambda – ex1 ( 과거의 Thread )
38
Java Lambda – ex1 ( 람다의 Thread )
Functional Interface
39
Java Lambda – ex1
Functional Interface
Interface Abstract Method
1 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 Iteration
Anti Imperative
Programming
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. 등등…
- 충분한 데이터가 있을 때
- 데이터 소스를 쉽게 나눌 수 있는 구조일 때
- ...
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…
WISEnut
Co-worker
Silicon Valley
Study Group
Spring Camp ETC…
71
Thank You !!
〃
잔잔한 바다에서는
좋은 뱃사공이 만들어지지 않는다.
- 영국 속담 -
〃
Upcoming SlideShare
Loading in …5
×

Hot Trend Lambda Expressions, Compare C# With Java

2,001 views

Published on

함수형프로그래밍의 관심이 증가함에 따라, 자바에서도 람다식을 도입하게 되었습니다. (Java 8)
대한민국을 대표하는 프로그래밍 언어 양대산맥인 C#과 자바의 람다식 사용법을 비교해보고, 앞으로 나아가야 할 방향성에 대해 생각해보는 시간을 가집니다.

Published in: Technology
  • Be the first to comment

Hot Trend Lambda Expressions, Compare C# With Java

  1. 1. 1 Hot Trend Lambda, Compare C# With Java 중앙일보 JunSeok.Jung
  2. 2. 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 이중 스파이
  3. 3. 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. 4. 4 이 강연을 들어야 할 사람
  5. 5. 5 숨바꼭질 中 손현주의 행위
  6. 6. 6
  7. 7. 7
  8. 8. 8 장악 당한 집의 개수는?
  9. 9. 9 장악 당한 집의 개수는?
  10. 10. 10 장악 당한 집의 개수는?
  11. 11. 11 장악 당한 집의 개수는? Stream API with Lambda ( Java 8 )
  12. 12. 12 Lambda?
  13. 13. 13 Lambda?
  14. 14. 14 Lambda? 〃 어떤 문제를 해결하기 위한 과정을 수학적 함수를 이용하여 표현한 수식 〃
  15. 15. 15 Why? Compact Code Multi Core CPU Trend ?
  16. 16. 16
  17. 17. 17
  18. 18. 18 C# Lambda - History Delegate ( C# 1.0 )
  19. 19. 19 C# Lambda - History Anonymous Method ( C# 2.0 )
  20. 20. 20 C# Lambda - History Lambda ( C# 3.0 )
  21. 21. 21 C# Lambda – ex1 ( 과거의 정렬 )
  22. 22. 22 C# Lambda – ex1 ( 람다의 정렬 ) Type Inference ( C# 3.0 ) Sort With Lambda
  23. 23. 23 C# Lambda – ex2 LINQ ( C# 3.0 )
  24. 24. 24 C# Lambda – ex2 ( LINQ의 예 )
  25. 25. 25 C# Lambda – ex3 Extension Method With Lambda
  26. 26. 26 C# Lambda – ex4
  27. 27. 27 C# Lambda – ex4 LINQ to SQL ( C# 3.5 )
  28. 28. 28 C# Lambda LINQ to XXX ( C# 3.5 ) SQL XML Object EntitiesDataSet
  29. 29. 29 C# Lambda – ex4 ( 고급 LINQ to SQL )
  30. 30. 30 C# Lambda – TIP foreach( var x in y ) VS ToList().ForEach Imperative Programming Functional Programming
  31. 31. 31 C# Lambda – ex5 Query Syntax
  32. 32. 32 C# Lambda – ex6
  33. 33. 33 C# Lambda – ex6 LINQ to XML ( C# 3.5 )
  34. 34. 34 C# Lambda – ex7 PLINQ ( C# 4.0 )
  35. 35. 35 C# Lambda C# Lambda/LINQ가 주는 교훈 Declarative Programming Elegance F#의 탄생 Java 위협 * 주관적인 제 생각^^;;
  36. 36. 36
  37. 37. 37 Java Lambda – ex1 ( 과거의 Thread )
  38. 38. 38 Java Lambda – ex1 ( 람다의 Thread ) Functional Interface
  39. 39. 39 Java Lambda – ex1 Functional Interface Interface Abstract Method 1 1 java.util.function.*
  40. 40. 40 Java Lambda – ex2 Type Inference
  41. 41. 41 Java Lambda – ex2 ( Type Inference )
  42. 42. 42 Java Lambda – ex3 ( 과거의 정렬 )
  43. 43. 43 Java Lambda – ex3 ( 람다의 정렬 )
  44. 44. 44 Default Method Method Reference Java Lambda – ex3 ( 람다의 정렬 심화 )
  45. 45. 45 Java Lambda – ex4 Stream API
  46. 46. 46 Java Lambda – ex4 Stream API Internal Iteration Anti Imperative Programming Lazy Programming Not How, Do What
  47. 47. 47 Java Lambda – TIP Internal V.S External
  48. 48. 48 Java Lambda – ex4 ( Stream API )
  49. 49. 49 Java Lambda – ex4 ( Stream API )
  50. 50. 50 Java Lambda – ex4 ( Stream API )
  51. 51. 51 Java Lambda – ex4 ( Stream API )
  52. 52. 52 Java Lambda – ex5 Parallel Stream
  53. 53. 53 Tip Stream V.S Parallel Stream 무조건 쓰는 것은 X Fork-Join 기법 Parallel Stream이 짱?
  54. 54. 54 Tip Parallel Stream의 고려 사항 1. 데이터 크기 2. 소스 데이터 구조 3. 객체화 4. 코어의 개수 5. 등등… - 충분한 데이터가 있을 때 - 데이터 소스를 쉽게 나눌 수 있는 구조일 때 - int,float,double > Integer,Float,Double - 접근할 수 있는 코어가 많을 수록
  55. 55. 55 Tip Parallel Stream 좋아요! ArrayList / Array / IntStream.range
  56. 56. 56 Tip Parallel Stream 그럭저럭 쓸만한데..? HashSet / TreeSet
  57. 57. 57 Tip Parallel Stream 피해주세요 LinkedList Random Access 불가능!
  58. 58. 58 Expected to…
  59. 59. 59
  60. 60. 60
  61. 61. 61
  62. 62. 62
  63. 63. 63
  64. 64. 64 Stream API
  65. 65. 65 Stream to SQL
  66. 66. 66 Why Learning Lambda?
  67. 67. 67 Why? Compact Code Multi Core CPU Trend ?
  68. 68. 68 Why? Compact Code Multi Core CPU Trend Polyglot
  69. 69. 69 Reference Data…
  70. 70. 70 Thanks to… WISEnut Co-worker Silicon Valley Study Group Spring Camp ETC…
  71. 71. 71 Thank You !! 〃 잔잔한 바다에서는 좋은 뱃사공이 만들어지지 않는다. - 영국 속담 - 〃

×