스프링 캠프 2019

스프링 캠프 2019

GraalVM과 스프링, 이상과 현실 - 김태완

GraalVM = openjdk 8 + gaal(새로운 고성능 컴파일러) + @

GraalVM = native image ?? 이 부분은 오해가 있는것 같다.

자바는 jit 컴파일러가 있는데 이 부분에서 javac에서 컴파일된 바이트 코드를 기계어로 해석함

정적 컴파일러 와 동적 컴파일러 기계어로 바꾸는 이과정을 정적컴파일러가 컴파일 시점에 기계어로 바꾸냐? 아님 실행 시점에 기계어로 바꾸냐에 따라 나눠짐
이부분 때문에 c 와 java의 성능 이야기가 나오는데 이부분도 논란에 여지가 있음

HotSpot -> 잘알려진 jvm

C1 컴파일러와 C2컴파일러가 있음 이부분중 C2컴파일러를 대체 하려고 함

그리고 이미 최적화가 엄청나게 되어서 더이상 최적화 할수 없는 api도 생겨남

@HotSpotIntrinsicCandidate <- 이부분을 이야기 했는데 이부분은 내장함수를 사용한다고 하면서 체크를 하지 않는 부분
저부분이 그럼 컴파일러가 최적화를 하지 말라고 해석을 하는건가?

이부분에 문제는 너무 코드가 어려워 개선하기 힘들다 이다.

그래서 GraalVM은 기존에 c++로 되어 있는 C2 컴파일러와 HotspotVM 과 통신하는 컴파일러 인터페이스 부분을 java로 다시 작성하는 부분이 포함됨

GraalVM 의 핵심 키워드는

  • 새로운 JIT 컴파일러

  • 언어 플랫폼을 제공 한다.

  • AOT 컴파일러 제공

위에 3가지 이다.

graal은 C2 컴파일러 대체가 목적 이미 openJdk 10 부터 포함 시킴 활성화 옵션 -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler

이부분은 초기 웜업때에는 오버헤드가 조금 더 높지만 장기적으로 운영시에는 기존 C2컴파일러 보다 훨씬 안정적임

native image는 AOT 컴파일러를 제공하여 빠르게 실행할수 있는 환경을 만듬 하지만 초기 실행은 빠를지 몰라도 계속된 실행으로 평균 응답 시간은 느림

vm을 작게 만들어서 기능을 축소시킴

Truffle이란 멀티랭기지 플랫폼을 제공하므로써 jvm 언어적 플랫폼으로 자리 잡으려고 함

spring websocket - 부종민

스프링 웹소켓에 대해서 상세하신 설명을 제공해주심 해당 웹소켓으로 여러 성능적은 퍼포먼스를 올릴수 있을것 같음

자바에서 null을 안전히 다루는 방법 - 박성철

NPE의 역사 부터 내용을 설명해주시고 그부분을 어떤식으로 처리 해주면 좋을지 설명해주심

Null-References-The-Billion-Dollar-Mistake-Tony-Hoare

정확하고, 우아하게! Reactive를 품은 Kafka 메시지 - 이병찬

카프카를 사용할때 Reactive하게 사용했던 방법과 어떤식에 해결이 있었는지를 설명해주심

당신도 할 수 있는 레거시 프로젝트 개선 이야기 - 이경일

이경일님 세미나는 이번이 2번째있데 저번에 경력관리 세미나에서 인상 깊었던 말을 해주셔서 기억에 남음

1
인센티브는 성과에 대한 측정 이며, 연봉을 그사람의 능력에 대한 평가이다.

대충 이런말을 해주심 기억에 많이 남았음

이번 발표도 격었던 레거시 코드와 어떻게 개선하셨는지에 대해서 잼있게 잘 설명해주심 정말 같이 일하고 싶었음
위에 발표자분들은 다들 채용을 한다고 홍보해주셨는데 진심으로 같이 일하고 싶었음 다들 좋은 회사를 가는이유를 알겠음
정말 좋은 동료가 최고의 이유가 될수도 있겠다는 생각이 듬

Kotlin 프로젝트를 피할 수 없을 때 - 김인태

코틀린 프로젝트의 적용기를 말씀해주셨음 어떻게 했는지에 대해서 잘느껴짐
중간에 NPE를 피하는 방법 질문할때 좋았음 TDD가 그것을 보정해줄수 있다고 하신말씀 기억함

발표자료 마지막에 코틀린 코드로 채용한다고 하셨는데 그 코드를 찍을수 없었음 마지막으로 코드 완성해서 지원해주세요 했는데….

코드 보고 싶음

Kotlin + Spring Data JPA

코틀린으로 실무에 적용시켰을때 어떻게 코틀린스럽게 더 코딩할수있는지 예를 들어서 설명해 주심

참조