지난 26일(2014/7/26), 지앤선과 KSUG가 함께 진행했던 세미나에서 발표한 람다 관련 내용입니다.
첫 시간에 정대원님이 발표하신 람다 기본에 다루지 않은 내용만 정리했는데 지난 번에 올렸던 자료(http://www.slideshare.net/gyumee/java-8-lambda-35352385)의 후편으로도 볼 수 있을 것 같습니다.
제 발표는 장표만으로 내용을 가늠하기 어려운데 그래도 이번에는 청각 장애인들도 참여한다고 해서 장표에 글자를 많이 넣으려고 했습니다.
동작 파라미터와 람다(Java 8 in Action)
자바8 in Action을 읽고 정리해본 내용입니다.
자바8은 함수형 패러다임과 멀티 코어에서의 병렬 처리를 돕는 방향으로 출시되었습니다.
‘자바 8 in Action’ 책을 읽고 ppt로 정리해봤습니다.
어떻게 해서 람다와 메서드 레퍼런스 개념까지 자바8에 도입이 되었는지 설명하는 문서입니다.
주요 키워드
동작 파라미터화(Behavior Parameterization), 값 파라미터화, 익명 클래스, 람다
동작 파라미터와 람다(Java 8 in Action)
자바8 in Action을 읽고 정리해본 내용입니다.
자바8은 함수형 패러다임과 멀티 코어에서의 병렬 처리를 돕는 방향으로 출시되었습니다.
‘자바 8 in Action’ 책을 읽고 ppt로 정리해봤습니다.
어떻게 해서 람다와 메서드 레퍼런스 개념까지 자바8에 도입이 되었는지 설명하는 문서입니다.
주요 키워드
동작 파라미터화(Behavior Parameterization), 값 파라미터화, 익명 클래스, 람다
이것이 자바다 Chap.14 람다식 Lambda expression(java)(KOR)MIN SEOK KOO
이것이 자바다 Chap.14 람다식 Lambda expression(java) 발표용 PPT
간단하게 정리한 것.
이것이 자바다 책을 기반으로 작성한 강의용 PPT입니다.
부족한 게 많으니 쓰실 때에는 추가하셔서 쓰세요~
참고 자료 : 이것이 자바다
사진 첨부 : http://palpit.tistory.com/
스트림 API는 람다 표현식을 적극적으로 활용해서 만들어진 자바의 새로운 API 입니다.
스트림 API를 통해서 자바에서도 맵/리듀스 방식으로 대량의 데이터를 순차 또는 병렬 처리를 할 수 있게 되었는데요, 이번 발표를 통해 스트림 API가 무엇인지- 어떻게 써먹는지에 대해 가볍게 씹고 뜯고 맛보고 즐기셨으면 좋겠습니다. :)
예제코드 : https://github.com/arawn/jdk8-stream-api
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로Oracle Korea
OpenJDK로 Java 언어 개선 주도권이 넘어간 후 Java의 개선 속도가 몰라보게 빨라지고 있습니다. Java를 언어, 런타임, 표준 API로 나눌 때 프로그래머에게 가장 중요하다고 볼 수 있는 언어 관점에서 Java가 앞으로 어떻게 개선될 지, Java의 미래를 알아보려고 합니다.
이것이 자바다 익명 객체 + Chap.11 기본 API 클래스(java) 발표용 PPT.
간단하게 정리한 것.
이것이 자바다 책을 기반으로 작성한 강의용 PPT입니다.
부족한 게 많으니 쓰실 때에는 추가하셔서 쓰세요~
참고 자료 : 이것이 자바다
사진 첨부 : http://palpit.tistory.com/
이것이 자바다 Chap.16 스트림&병렬처리 Stream¶llel processing(java) 발표용 PPT
이 자료는 인코딩 과정에서 슬라이드가 다 날라가 버려서 중간중간이 날라갔습니다......
간단하게 정리한 것.
이것이 자바다 책을 기반으로 작성한 강의용 PPT입니다.
부족한게 많으니 사용하실 때에는 추가하셔서 쓰세요~
참고 자료 : 이것이 자바다
사진 첨부 : http://palpit.tistory.com/
이것이 자바다 Chap.14 람다식 Lambda expression(java)(KOR)MIN SEOK KOO
이것이 자바다 Chap.14 람다식 Lambda expression(java) 발표용 PPT
간단하게 정리한 것.
이것이 자바다 책을 기반으로 작성한 강의용 PPT입니다.
부족한 게 많으니 쓰실 때에는 추가하셔서 쓰세요~
참고 자료 : 이것이 자바다
사진 첨부 : http://palpit.tistory.com/
스트림 API는 람다 표현식을 적극적으로 활용해서 만들어진 자바의 새로운 API 입니다.
스트림 API를 통해서 자바에서도 맵/리듀스 방식으로 대량의 데이터를 순차 또는 병렬 처리를 할 수 있게 되었는데요, 이번 발표를 통해 스트림 API가 무엇인지- 어떻게 써먹는지에 대해 가볍게 씹고 뜯고 맛보고 즐기셨으면 좋겠습니다. :)
예제코드 : https://github.com/arawn/jdk8-stream-api
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로Oracle Korea
OpenJDK로 Java 언어 개선 주도권이 넘어간 후 Java의 개선 속도가 몰라보게 빨라지고 있습니다. Java를 언어, 런타임, 표준 API로 나눌 때 프로그래머에게 가장 중요하다고 볼 수 있는 언어 관점에서 Java가 앞으로 어떻게 개선될 지, Java의 미래를 알아보려고 합니다.
이것이 자바다 익명 객체 + Chap.11 기본 API 클래스(java) 발표용 PPT.
간단하게 정리한 것.
이것이 자바다 책을 기반으로 작성한 강의용 PPT입니다.
부족한 게 많으니 쓰실 때에는 추가하셔서 쓰세요~
참고 자료 : 이것이 자바다
사진 첨부 : http://palpit.tistory.com/
이것이 자바다 Chap.16 스트림&병렬처리 Stream¶llel processing(java) 발표용 PPT
이 자료는 인코딩 과정에서 슬라이드가 다 날라가 버려서 중간중간이 날라갔습니다......
간단하게 정리한 것.
이것이 자바다 책을 기반으로 작성한 강의용 PPT입니다.
부족한게 많으니 사용하실 때에는 추가하셔서 쓰세요~
참고 자료 : 이것이 자바다
사진 첨부 : http://palpit.tistory.com/
Java 9 버젼에서 변화된 내용들을 가볍게 정리하는 형태로 만들어봤다.
소프트웨어 캠퍼스 강사팀 4기의 발표자료 이기도 하다.
소프트웨어 캠퍼스(https://www.facebook.com/groups/softwarecamp/)는 강의와 스터디등을 통해 서로를 성장시켜갈 수 있는 커뮤니티가 되려는 곳이다.
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Yongho Ha
요즘 Hadoop 보다 더 뜨고 있는 Spark.
그 Spark의 핵심을 이해하기 위해서는 핵심 자료구조인 Resilient Distributed Datasets (RDD)를 이해하는 것이 필요합니다.
RDD가 어떻게 동작하는지, 원 논문을 리뷰하며 살펴보도록 합시다.
http://www.cs.berkeley.edu/~matei/papers/2012/sigmod_shark_demo.pdf
어느덧 스무살이 된 자바. 좋든싫든 프로그래밍의 세계에 몸담고 있는 이상 부딪히지 않을 수 없는 언어인데요, 이 자바에 대한 올바른 모습의 이해화 앞으로 나아가야 할 방향을 모색해본다는 의미에서 "모던 자바의 역습"이라는 타이틀로 실시한 온라인 세미나의 슬라이드 자료입니다.
진행자: 김대우(http://lekdw.blogspot.kr/)
정도현(http://moreagile.net)
이번 세미나는 게임개발자이신 김대우님을 모시고 진행하게 되었는데요 자바 언어와 관련 하여 다음과 같은 주제로 두시간에 걸쳐 발표를 진행합니다.
- 간단히 살펴보는 자바20년의 발자취
- 자바를 둘러싼 진실 혹은 거짓(성능,생산성,품질)
- SI영역 이외에서 자바의 가치
- 모던자바의 역습: 자바8과 함수형 프로그래밍
- 자바 개발의 새로운 패러다임들
2시간만에
자바 데이터처리를
쉽게 배우고 싶어요.
가위,바위,보와 승률 (난수와 배열, ArrayList)
주머니속의 데이터 (HashMap)
데이터 다루기 (Sort, Collection Framework)
데이터를 두고보자 (Database와 SQL)
자바로 데이터베이스 사용하기 (JDBC)
JDBC를 조금 더 편하게 (MyBatis)
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
16번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
자바 개발자가 파이썬 개발을 배우면서 실무에 활용하고 집필을 하면서 겪었던 경험담 및 생각을 코드와 함께 풀어본다. 자바에 익숙한 사람이 파이썬을 배우고 있거나, 자바와 파이썬의 사이에서 고민을 했던 사람들에게 비교를 위한 기본 정보를 제공한다. 더 나아가 컴파일 언어와 스크립트 언어의 차이점, 개발 생산성을 측정할때 간과하는 컴파일 시간 및 순수 코딩 시간에 대한 통찰을 이끌 생각이다.
여러 언어에서 null 안전성을 주요 마케팅 쟁점으로 내세우면서 null 안전성이 관심을 많이 받고 있습니다.
자바에서도 null을 잘 다루어야 소프트웨어 결함을 줄이고 견고하게 만들 수 있는데 null의 위협에서 코드를 안전하게 지키는 설계 지침을 정리하고 안전하다고 확인하는데 도움이 되는 도구를 소개합니다.
432. API의 고민, 하위 호환성
“객체지향 모델은 신중히 설계해서 클래스 라이브러리가
변한다고 이미 컴파일된 애플리케이션이 망가지지 않도록
해야 한다. 정말로, 애플리케이션은 망가뜨리지 말아라.”
---Ira Forman, Michael Conner, Scott Danforth, and Larry Raper, Release-
to-Release Binary Compatibility in SOM, in Proceedings of OOPSLA '95.
An object-oriented model must be carefully
designed so that class-library transformations
that should not break already compiled applications,
indeed, do not break such applications.”
433. API의 고민, 하위 호환성
“Adding new fields,
methods, or constructors
to an existing class or
interface. “
기존 클래스나 인터페이스
에 새 필드, 메서드, 생성자
추가시 하위 호환성이 깨진
다.
434. 깨어진 하위 호환성
자바 인터페이스의 호환성 문제
자바 인터페이스의 모든 메서드는 공개(public) 추상
(abstract) 메서드이므로 새로운 메서드를 추가하면 이 인터페
이스를 구현한 모든 클래스는 추가된 메서드를 구현해서 새로 컴
파일 해야 한다.
435. 자바 인터페이스 개선 전략
1) 호환성 무시! 내가 고치겠다는데 뭐… (쓰는 사람도 없고)
2) 새 술은 새 부대에, 새 메서드는 새 인터페이스에…
기존 인터페이스를 확장한 새 인터페이스 생성, 버전 인터페이스
3) 기본 추상 클래스 제공
고객이 인터페이스를 구현하는 대신 기본 제공되는 추상 객체를 확장하도록 권장
4) 그리고 전통적인 자바 API의 방법…
고치지 않는다…
436. 하위 호환성을 버려야 할 위기
람다의 도입은 단순한 표현 방법 추가 이상의 의미
“OOP 방식 외 새로운 추상화 기법 도입”
자바 SDK의 기본 API의 대대적인 변형 필수
하지만 자바가 하위 호환성을 버릴 수는…
656. 기본 메서드와 트레잇(Trait)
OOP에서 다른 클래스의 기능을 확장하는데 사용되는 메서드
의 집합
보통 인터페이스와 믹스인 중간에 해당한다. 인터페이스는
메서드 선언만 있고, 트레잇은 정의까지 포함한다. 믹스인은
상태를 가지지만 트레잇은 보통 상태를 가지지 않는다.
657. 기본 메서드와 트레잇(Trait)
OOP에서 다른 클래스의 기능을 확장하는데 사용되는 메서드
의 집합
보통 인터페이스와 믹스인 중간에 해당한다. 인터페이스는
메서드 선언만 있고, 트레잇은 정의까지 포함한다. 믹스인은
상태를 가지지만 트레잇은 보통 상태를 가지지 않는다.
658. 인터페이스 정적 메서드
기본 구현과 함께 인터페이스에도 정적 메서드 정의 가능
편의 메서드(utility method)를 위한 이름 공간(Name
space)로서의 인터페이스
interface
693. 범용 함수형 인터페이스
java.util.function 패키지에 범용으로 사용될
다양한 함수형 인터페이스 기본 제공
ConsumerT
BiConsumerT,U
FunctionT,R
BiFunctionT,U,R
PredicateT
SupplierT
UnaryOperatorT
BinaryOperatorT
void accept(T t)
void accept(T t, U u)
R apply(T t)
R apply(T t, U u)
boolean test(T t)
T get()
T apply(T t)
T apply(T t1, T t2)
695. 기본 타입 변환 함수 인터페이스
Double
FunctionT,R: T 타입을 R타입으로 바꾸는 함수 인터페이스
Int
Long
Double
Int
Long
IntToDoubleFunction
LongToDoubleFunction
DoubleToIntFunction
LongToIntFunction
DoubleToLongFunction
IntToLongFunction