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.
- 자바를 넘어선 새로운 시작의 서막
알도개(알고 보면 도움되는 개발 이야기)
이미지 출처: https://www.flickr.com/photos/75409276@N06/29379427975
CC BY-NC-SA 2.0
GraalVM – 자바를 넘어선 새로운 시작의 서막
GraalVM이란?
고성능 JDK 배포판
자바와 다른 JVM 기반 애플리케이션의 수행 속도를 가속화
1. Graal: 자바로 만들어진 새로운 JIT(Just-In-Ti...
GraalVM – 자바를 넘어선 새로운 시작의 서막
GraalVM을 써야 하는 이유
• 더 빠른 자바
• 다양한 프로그래밍 언어로 애플리케이션 확장
• 네이티브 이미지 생성
• 마이크로서비스 아키텍처에 적합한 특성
• ...
GraalVM – 자바를 넘어선 새로운 시작의 서막
라떼는 말이야…
두 가지 JIT 컴파일러:
• C1: 클라이언트용(대기 시간)
• C2: 서버용(메모리 희생해 처
리량 개선)
• Mixed(시작 시 C1, 어느 정도...
GraalVM – 자바를 넘어선 새로운 시작의 서막
그런데 말이지…
GraalVM에서는:
• C2 대신 JVMCI를 적용하는
자바 기반의 Graal 컴파일러
적용(C++ JIT는 기술 부채로
인해 확장 불가 판정)
• ...
GraalVM – 자바를 넘어선 새로운 시작의 서막
• 정적인 바이너리를 생성하는 대신 동적으로 바이너리를
생성하는 JIT의 기능에 어마무시한 최적화를 가함
• 특히 스칼라 Spark 같은 콜스택이 깊은 경우 성능 개선...
GraalVM – 자바를 넘어선 새로운 시작의 서막
마이크로서비스 아키텍처, 게 섯거라!
• 특히 서버리스인 경우 warmup 시간이 중요
• 하지만 액티브까지 오랜 시간이 걸리는 자바는 상대적으로 불리했음
• 하지만 ...
GraalVM – 자바를 넘어선 새로운 시작의 서막
마이크로서비스 아키텍처, 게 섯거라!(계속됨)
Quarkus 사례: 메모리와 초기 기동 시간 비교
GraalVM – 자바를 넘어선 새로운 시작의 서막
두 가지 버전, 지원 환경
• GraalVM 엔터프라이즈: 오라클 JDK 기반
• GraalVM 커뮤니티: 오픈JDK 기반(GPL v2)
• 참고) 커뮤니티 에디션은 ...
GraalVM – 자바를 넘어선 새로운 시작의 서막
다양한 프로그래밍 언어 지원
•Node.js – the Node.js 14.17.6 runtime for JavaScript
•Python – Python 3.8.5 ...
GraalVM – 자바를 넘어선 새로운 시작의 서막
개발자 편의성
• VSCode의 경우
• GraalVM Tools for Java
• GraalVM Tools for Micronaut
• GraalVM Extensi...
GraalVM – 자바를 넘어선 새로운 시작의 서막
정말 사용하는 곳이 있는가?
• 오라클 RDBMS에서 저장 프로시저(Stored Procedure)로 자바스크립트를
지원할 수 있는 이유가 무엇인지 생각해보자
• 페이...
GraalVM – 자바를 넘어선 새로운 시작의 서막
추가 정보가 필요하다면?
• Σ민수아빠 유튜브 채널:
https://www.youtube.com/channel/UCo32ifcqG3i56nI
jS2YtRIw
• Gra...
GraalVM – 자바를 넘어선 새로운 시작의 서막
결론
• 차익 거래가 가능한 GraalVM을 사용하지 않을 이유가 있을까?
• 페북 사례를 보면 OpenJDK를 GraalVM으로 바꾸기만 해도 10~40% 성
능 개...
발표자 소개
기술 배경
전문 검색 엔진, 임베디드 시스템(리눅스 커널 디바이스 드라이버), 빅데이터/인공지능 연구 개발,
고성능 고가용성 데이터베이스
주요활동
IT 전문서 번역 (클린 코드, 피플웨어, 해커: 광기의 랩...
Upcoming SlideShare
Loading in …5
×

of

(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 1 (알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 2 (알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 3 (알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 4 (알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 5 (알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 6 (알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 7 (알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 8 (알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 9 (알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 10 (알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 11 (알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 12 (알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 13 (알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 14 (알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막 Slide 15
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

0 Likes

Share

Download to read offline

(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막

Download to read offline

오늘자 방송: https://www.youtube.com/watch?v=4lQ-sTDlgIo&list=PLdntWJk2tJPJucjdMaXqAPzbYJNlzL7lx&index=1

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막

  1. 1. - 자바를 넘어선 새로운 시작의 서막 알도개(알고 보면 도움되는 개발 이야기) 이미지 출처: https://www.flickr.com/photos/75409276@N06/29379427975 CC BY-NC-SA 2.0
  2. 2. GraalVM – 자바를 넘어선 새로운 시작의 서막 GraalVM이란? 고성능 JDK 배포판 자바와 다른 JVM 기반 애플리케이션의 수행 속도를 가속화 1. Graal: 자바로 만들어진 새로운 JIT(Just-In-Time) 컴파일러 2. 개발 프로그래밍 언어 수준의 상호 운용성: 폴리그랏 프로그래밍 3. AOT(Ahead of Time) 네이티브 이미지 컴파일러: 워밍업 시간 단축
  3. 3. GraalVM – 자바를 넘어선 새로운 시작의 서막 GraalVM을 써야 하는 이유 • 더 빠른 자바 • 다양한 프로그래밍 언어로 애플리케이션 확장 • 네이티브 이미지 생성 • 마이크로서비스 아키텍처에 적합한 특성 • 오라클 데이터베이스에서 MLE(Multilingual Engine) 지원 • 다양한 도구 • 생태계 확장
  4. 4. GraalVM – 자바를 넘어선 새로운 시작의 서막 라떼는 말이야… 두 가지 JIT 컴파일러: • C1: 클라이언트용(대기 시간) • C2: 서버용(메모리 희생해 처 리량 개선) • Mixed(시작 시 C1, 어느 정도 시간이 지나면 C2) – 자바 5 이후
  5. 5. GraalVM – 자바를 넘어선 새로운 시작의 서막 그런데 말이지… GraalVM에서는: • C2 대신 JVMCI를 적용하는 자바 기반의 Graal 컴파일러 적용(C++ JIT는 기술 부채로 인해 확장 불가 판정) • 참고) JVMCI(Java Virtual Machine Compiler Interface) LLVM
  6. 6. GraalVM – 자바를 넘어선 새로운 시작의 서막 • 정적인 바이너리를 생성하는 대신 동적으로 바이너리를 생성하는 JIT의 기능에 어마무시한 최적화를 가함 • 특히 스칼라 Spark 같은 콜스택이 깊은 경우 성능 개선이 유리 • 네이티브 이미지 빌드: 자바 클래스를 네이티브로 컴파일, 런타임 데이터 영역을 그대로 메모리로 덤프 • 자바 9의 CDS (Class Data Sharing), AppCDS (Application Class Data Sharing), AOT compiler 를 JRE 의존성이 없이 단독 동작하게 개선! • 런타임 프로파일링 데이터를 파일로 떨어뜨린 다음 에 이 정보를 네이티브 이미지에 넣어 실제 워크로드 에 가까운 성능을 발휘하게 코드를 최적화! • GraalVM 런타임 JIT가 16% 정도 더 고성능이긴 하지 만, 네이티브 이미지 역시 기존 HotSpot의 최고 성능 에 필적함 어떻게 성능을 높일까?
  7. 7. GraalVM – 자바를 넘어선 새로운 시작의 서막 마이크로서비스 아키텍처, 게 섯거라! • 특히 서버리스인 경우 warmup 시간이 중요 • 하지만 액티브까지 오랜 시간이 걸리는 자바는 상대적으로 불리했음 • 하지만 native(AOT)로 빌드할 경우라면? • 거의 즉각적으로 반응하므로 매우 유리해짐 • 사례 • 스프링네이티브(https://docs.spring.io/spring- native/docs/current/reference/htmlsingle/) • Quarkus(https://quarkus.io/): • MICRONAUT(https://micronaut.io/) • helidon(https://helidon.io/)
  8. 8. GraalVM – 자바를 넘어선 새로운 시작의 서막 마이크로서비스 아키텍처, 게 섯거라!(계속됨) Quarkus 사례: 메모리와 초기 기동 시간 비교
  9. 9. GraalVM – 자바를 넘어선 새로운 시작의 서막 두 가지 버전, 지원 환경 • GraalVM 엔터프라이즈: 오라클 JDK 기반 • GraalVM 커뮤니티: 오픈JDK 기반(GPL v2) • 참고) 커뮤니티 에디션은 엔터프라이즈 에디션이 지원하는 최적화의 2/3 수준만 옵션을 제공 • 대신 LTS 지원(GraalVM 20.3.0) • 지원 대상: Java 8, Java 11, Java 16, Java 17(실험적) • 지원 운영체제: 리눅스(선호됨), 맥OS X, 윈도우(개발 환경을 목표) • 지원 아키텍처: x86-64, ARM 64비트
  10. 10. GraalVM – 자바를 넘어선 새로운 시작의 서막 다양한 프로그래밍 언어 지원 •Node.js – the Node.js 14.17.6 runtime for JavaScript •Python – Python 3.8.5 compatible •Ruby – Ruby 2.7.3 compatible •R – GNU R 4.0.3 compatible •GraalWasm – WebAssembly (Wasm) 높은 성능, 강건한 런타임! 기존 로직의 재사용, 언어간 상호 호출 가능
  11. 11. GraalVM – 자바를 넘어선 새로운 시작의 서막 개발자 편의성 • VSCode의 경우 • GraalVM Tools for Java • GraalVM Tools for Micronaut • GraalVM Extension for Java • VisualVM(https://visualvm.github.io/) • GraalVM 21.2.0부터 지원
  12. 12. GraalVM – 자바를 넘어선 새로운 시작의 서막 정말 사용하는 곳이 있는가? • 오라클 RDBMS에서 저장 프로시저(Stored Procedure)로 자바스크립트를 지원할 수 있는 이유가 무엇인지 생각해보자 • 페이스북 사례: https://blogs.oracle.com/javakr/post/graalvm-facebook • 트위터 사례: https://www.youtube.com/watch?v=pR5NDkIZBOA • NVidia 사례(Polygot 언어 바인딩): https://github.com/NVIDIA/grcuda
  13. 13. GraalVM – 자바를 넘어선 새로운 시작의 서막 추가 정보가 필요하다면? • Σ민수아빠 유튜브 채널: https://www.youtube.com/channel/UCo32ifcqG3i56nI jS2YtRIw • GraalVM 공식 유튜브 채널: https://www.youtube.com/c/GraalVM • GraalVM Demos: https://github.com/graalvm/graalvm-demos • https://jaxlondon.com/blog/an-introduction-to- graalvm-oracles-new-virtual-machine/
  14. 14. GraalVM – 자바를 넘어선 새로운 시작의 서막 결론 • 차익 거래가 가능한 GraalVM을 사용하지 않을 이유가 있을까? • 페북 사례를 보면 OpenJDK를 GraalVM으로 바꾸기만 해도 10~40% 성 능 개선과 10% 정도 CPU 사용량을 줄이는 효과! • 여러 프로그래밍 언어의 혼합 사용(폴리그랏) • 마이크로서비스 아키텍처에 제격 • 이제 업그레이드는 선택이 아니라 필수다! 보안 패치가 아닌 기능/성능 개 선을 담고 있기에… • 향후 오라클 JDK와 오픈JDK에 통합될 가능성이 점쳐진다 – 자바를 넘어선 새로운 시작의 서막을 기대하시라!
  15. 15. 발표자 소개 기술 배경 전문 검색 엔진, 임베디드 시스템(리눅스 커널 디바이스 드라이버), 빅데이터/인공지능 연구 개발, 고성능 고가용성 데이터베이스 주요활동 IT 전문서 번역 (클린 코드, 피플웨어, 해커: 광기의 랩소디, 게임 엔진 블랙 북 등) 개발강의 (삼성전자, SK C&C, 삼성SDC, 현대자동차 기술 세미나와 교육) 활동채널 블로그: https://jhrogue.blogspot.com 슬라이드 셰어: https://www.slideshare.net/jrogue/presentations 유튜브: https://www.youtube.com/c/박재호dev 문의 jrogue@gmail.com 박재호

오늘자 방송: https://www.youtube.com/watch?v=4lQ-sTDlgIo&list=PLdntWJk2tJPJucjdMaXqAPzbYJNlzL7lx&index=1

Views

Total views

1,424

On Slideshare

0

From embeds

0

Number of embeds

1,264

Actions

Downloads

3

Shares

0

Comments

0

Likes

0

×