[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로Oracle Korea
OpenJDK로 Java 언어 개선 주도권이 넘어간 후 Java의 개선 속도가 몰라보게 빨라지고 있습니다. Java를 언어, 런타임, 표준 API로 나눌 때 프로그래머에게 가장 중요하다고 볼 수 있는 언어 관점에서 Java가 앞으로 어떻게 개선될 지, Java의 미래를 알아보려고 합니다.
[함수형 사고] 책을 읽고 진행한 PT
Java 8, Scala, Clojure, Groovy 등의 함수형 프로그래밍 언어에서 사용하고 있는 패러다임을 익힐 수 있습니다.
책을 요약하고 PT를 진행하려고 하니 미숙한 부분이 많으니, 자세한 부분은 책을 참고 부탁드립니다.
책에서는 주로 Groovy에 대한 코드가 많았는데, Scala에 조금 더 익숙하기 때문에 Scala로 작성한 코드가 많습니다.
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로Oracle Korea
OpenJDK로 Java 언어 개선 주도권이 넘어간 후 Java의 개선 속도가 몰라보게 빨라지고 있습니다. Java를 언어, 런타임, 표준 API로 나눌 때 프로그래머에게 가장 중요하다고 볼 수 있는 언어 관점에서 Java가 앞으로 어떻게 개선될 지, Java의 미래를 알아보려고 합니다.
[함수형 사고] 책을 읽고 진행한 PT
Java 8, Scala, Clojure, Groovy 등의 함수형 프로그래밍 언어에서 사용하고 있는 패러다임을 익힐 수 있습니다.
책을 요약하고 PT를 진행하려고 하니 미숙한 부분이 많으니, 자세한 부분은 책을 참고 부탁드립니다.
책에서는 주로 Groovy에 대한 코드가 많았는데, Scala에 조금 더 익숙하기 때문에 Scala로 작성한 코드가 많습니다.
오브젝트 책 10장 11장에 대한 내용을 발표로 만들어보았습니다.
자바를 사용하면서 객체지향프로그래밍이라는 단어는 수도 없이 들었지만, 여전히, 객체지향은 솜사탕을 만지는 느낌이였습니다.
'오브젝트' 책은 그런면에서 굉장히 실용적인 책이라는 점을 발견했고, 이를 Sliip 스터디에서 발표하게 되었습니다.
8. 어떤 이름 목록에서, 한 글자로 된 이름을 제외한
모든 이름을 대문자화해서 쉼표로 연결된 문자열을 구해보자!
문제!
Input :
List<String> = List(“starbucks”,”kakao”, “naver”, “a”, “abcMart”, “j”)
Output :
String output = “Startbucks, Kakao, Naver, AbcMart”
9. public static void main(String[] args) {
ArrayList<String> input = new ArrayList<>();
input.add("startbucks");
input.add("kakako");
input.add("naver");
input.add("a");
input.add("abcMart");
input.add("j");
System.out.println(cleanNames(input));
}
BaseLine Code
어떤 이름 목록에서, 한 글자로 된 이름을 제외한
모든 이름을 대문자화해서 쉼표로 연결된 문자열을 구해보자!
제한시간은 5분!
Output :
String output = “STARBUCKS, KAKAO, NAVER, ABCMART”
15. 3. 리듀스
val a = List(1,2,3,4,5,6,7,8,9,10)
a.reduce((a,b) => { a - b })
16. 그럼 다시 맨 처음 내놨던 문제를 풀어보자!
어떤 이름 목록에서, 한 글자로 된 이름을 제외한
모든 이름을 대문자화해서 쉼표로 연결된 문자열을 구해보자!
문제!
Input
List<String> = List(“starbucks”,”kakao”, “naver”, “a”, “abcMart”, “j”)
Output
String output = “STARBUCKS, KAKAO, NAVER, ABCMART”
제한시간은 5분!
20. 반복 처리에서 고계함수(High Order Function)로…
함수를 다루는 함수.
val input = List(1,2,3,4,5)
.map(_*_)
.filter(_ > 10)
val input = List(1,2,3,4,5)
for(a= 0; a < a.length; a++){
int sum = … 중략
}
함수 = 값
21. 지금까지 함수형 패러다임이 좋다는 것은 알겠는데,
어떻게 사고의 전향을 해야될까?
나도 모-르-음
그렇지만, 앞에서 말한 유용한 작업들을 활용해서 끊임없이 연습한다면 가능하다고 판단된다.
22. 이렇게 좋다는 왜 사람들은 FP을 안하는 걸까?
FP의 단점은 뭘까?
참고: https://devhue.github.io/blog/functional-programming
예) List(0.5, 1.0, 1.5) 라는 Input이 있고, 각 사이값을 구해볼까? Output은 List(0.5, 0.5)
23. 끄-읏!
질문 받습니다!
추천 강의 : https://tacademy.skplanet.com/live/player/onlineLectureDetail.action?seq=143