SlideShare a Scribd company logo
1 of 71
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 )
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. 등등…
- 충분한 데이터가 있을 때
- 데이터 소스를 쉽게 나눌 수 있는 구조일 때
- 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…
WISEnut
Co-worker
Silicon Valley
Study Group
Spring Camp ETC…
71
Thank You !!
〃
잔잔한 바다에서는
좋은 뱃사공이 만들어지지 않는다.
- 영국 속담 -
〃

More Related Content

What's hot

그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기
Sangkyoon Nam
 

What's hot (20)

The Future of C# and .NET Framework
The Future of C# and .NET FrameworkThe Future of C# and .NET Framework
The Future of C# and .NET Framework
 
Work With Engineer
Work With EngineerWork With Engineer
Work With Engineer
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
 
팀장 잔소리
팀장 잔소리팀장 잔소리
팀장 잔소리
 
예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스
 
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
 
[D2 CAMPUS] Dodge the Dodge - GoN
[D2 CAMPUS] Dodge the Dodge - GoN[D2 CAMPUS] Dodge the Dodge - GoN
[D2 CAMPUS] Dodge the Dodge - GoN
 
Java null survival guide
Java null survival guideJava null survival guide
Java null survival guide
 
Tech Update - The Future of .NET Framework (김명신 부장)
Tech Update - The Future of .NET Framework (김명신 부장)Tech Update - The Future of .NET Framework (김명신 부장)
Tech Update - The Future of .NET Framework (김명신 부장)
 
자바8 나머지 공개
자바8 나머지 공개자바8 나머지 공개
자바8 나머지 공개
 
그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기그루비로 안드로이드 앱 개발하기
그루비로 안드로이드 앱 개발하기
 
백엔드 서버 개발과 코틀린의 조합
백엔드 서버 개발과 코틀린의 조합백엔드 서버 개발과 코틀린의 조합
백엔드 서버 개발과 코틀린의 조합
 
[DS Meetup] iPad로 가벼운 분석환경 구축해보기
[DS Meetup] iPad로 가벼운 분석환경 구축해보기[DS Meetup] iPad로 가벼운 분석환경 구축해보기
[DS Meetup] iPad로 가벼운 분석환경 구축해보기
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면
 
도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택
 
TensorFlow.js & Applied AI at the Coca-Cola Company
TensorFlow.js & Applied AI at the Coca-Cola CompanyTensorFlow.js & Applied AI at the Coca-Cola Company
TensorFlow.js & Applied AI at the Coca-Cola Company
 
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
 
C++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaC++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & Nana
 
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기Pycon Korea 2018 - 비개발자에게 파이썬 가르치기
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기
 

Similar to Hot Trend Lambda Expressions, Compare C# With Java

[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Oop design principle
Oop design principleOop design principle
Oop design principle
Ryan Park
 

Similar to Hot Trend Lambda Expressions, Compare C# With Java (20)

Crawling with AWS Lambda
Crawling with AWS LambdaCrawling with AWS Lambda
Crawling with AWS Lambda
 
Java 8 & Beyond
Java 8 & BeyondJava 8 & Beyond
Java 8 & Beyond
 
LinqPad for DevOps
LinqPad for DevOpsLinqPad for DevOps
LinqPad for DevOps
 
비동기 어플리케이션 모니터링과 밀당하기
비동기 어플리케이션 모니터링과 밀당하기비동기 어플리케이션 모니터링과 밀당하기
비동기 어플리케이션 모니터링과 밀당하기
 
AWS Lambdas with a Static Outgoing IP
AWS Lambdas with a Static Outgoing IPAWS Lambdas with a Static Outgoing IP
AWS Lambdas with a Static Outgoing IP
 
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
 
Oop design principle
Oop design principleOop design principle
Oop design principle
 
llvm 소개
llvm 소개llvm 소개
llvm 소개
 
java_1장.pptx
java_1장.pptxjava_1장.pptx
java_1장.pptx
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP
 
java_1장
java_1장java_1장
java_1장
 
안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계
 
java_1장.pptx
java_1장.pptxjava_1장.pptx
java_1장.pptx
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영
 
Oop design principle SOLID
Oop design principle SOLIDOop design principle SOLID
Oop design principle SOLID
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 

Recently uploaded

파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
Wonjun Hwang
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 

Recently uploaded (6)

파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
 
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
 

Hot Trend Lambda Expressions, Compare C# With Java