SlideShare a Scribd company logo
- 자바를 넘어선 새로운 시작의 서막
알도개(알고 보면 도움되는 개발 이야기)
이미지 출처: https://www.flickr.com/photos/75409276@N06/29379427975
CC BY-NC-SA 2.0
GraalVM – 자바를 넘어선 새로운 시작의 서막
GraalVM이란?
고성능 JDK 배포판
자바와 다른 JVM 기반 애플리케이션의 수행 속도를 가속화
1. Graal: 자바로 만들어진 새로운 JIT(Just-In-Time) 컴파일러
2. 개발 프로그래밍 언어 수준의 상호 운용성: 폴리그랏 프로그래밍
3. AOT(Ahead of Time) 네이티브 이미지 컴파일러: 워밍업 시간 단축
GraalVM – 자바를 넘어선 새로운 시작의 서막
GraalVM을 써야 하는 이유
• 더 빠른 자바
• 다양한 프로그래밍 언어로 애플리케이션 확장
• 네이티브 이미지 생성
• 마이크로서비스 아키텍처에 적합한 특성
• 오라클 데이터베이스에서 MLE(Multilingual Engine) 지원
• 다양한 도구
• 생태계 확장
GraalVM – 자바를 넘어선 새로운 시작의 서막
라떼는 말이야…
두 가지 JIT 컴파일러:
• C1: 클라이언트용(대기 시간)
• C2: 서버용(메모리 희생해 처
리량 개선)
• Mixed(시작 시 C1, 어느 정도
시간이 지나면 C2) – 자바 5
이후
GraalVM – 자바를 넘어선 새로운 시작의 서막
그런데 말이지…
GraalVM에서는:
• C2 대신 JVMCI를 적용하는
자바 기반의 Graal 컴파일러
적용(C++ JIT는 기술 부채로
인해 확장 불가 판정)
• 참고) JVMCI(Java Virtual
Machine Compiler
Interface)
LLVM
GraalVM – 자바를 넘어선 새로운 시작의 서막
• 정적인 바이너리를 생성하는 대신 동적으로 바이너리를
생성하는 JIT의 기능에 어마무시한 최적화를 가함
• 특히 스칼라 Spark 같은 콜스택이 깊은 경우 성능 개선이
유리
• 네이티브 이미지 빌드: 자바 클래스를 네이티브로 컴파일,
런타임 데이터 영역을 그대로 메모리로 덤프
• 자바 9의 CDS (Class Data Sharing), AppCDS
(Application Class Data Sharing), AOT compiler
를 JRE 의존성이 없이 단독 동작하게 개선!
• 런타임 프로파일링 데이터를 파일로 떨어뜨린 다음
에 이 정보를 네이티브 이미지에 넣어 실제 워크로드
에 가까운 성능을 발휘하게 코드를 최적화!
• GraalVM 런타임 JIT가 16% 정도 더 고성능이긴 하지
만, 네이티브 이미지 역시 기존 HotSpot의 최고 성능
에 필적함
어떻게 성능을 높일까?
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/)
GraalVM – 자바를 넘어선 새로운 시작의 서막
마이크로서비스 아키텍처, 게 섯거라!(계속됨)
Quarkus 사례: 메모리와 초기 기동 시간 비교
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비트
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)
높은 성능, 강건한 런타임!
기존 로직의 재사용, 언어간 상호 호출 가능
GraalVM – 자바를 넘어선 새로운 시작의 서막
개발자 편의성
• VSCode의 경우
• GraalVM Tools for Java
• GraalVM Tools for Micronaut
• GraalVM Extension for Java
• VisualVM(https://visualvm.github.io/)
• GraalVM 21.2.0부터 지원
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
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/
GraalVM – 자바를 넘어선 새로운 시작의 서막
결론
• 차익 거래가 가능한 GraalVM을 사용하지 않을 이유가 있을까?
• 페북 사례를 보면 OpenJDK를 GraalVM으로 바꾸기만 해도 10~40% 성
능 개선과 10% 정도 CPU 사용량을 줄이는 효과!
• 여러 프로그래밍 언어의 혼합 사용(폴리그랏)
• 마이크로서비스 아키텍처에 제격
• 이제 업그레이드는 선택이 아니라 필수다! 보안 패치가 아닌 기능/성능 개
선을 담고 있기에…
• 향후 오라클 JDK와 오픈JDK에 통합될 가능성이 점쳐진다 – 자바를 넘어선
새로운 시작의 서막을 기대하시라!
발표자 소개
기술 배경
전문 검색 엔진, 임베디드 시스템(리눅스 커널 디바이스 드라이버), 빅데이터/인공지능 연구 개발,
고성능 고가용성 데이터베이스
주요활동
IT 전문서 번역 (클린 코드, 피플웨어, 해커: 광기의 랩소디, 게임 엔진 블랙 북 등)
개발강의 (삼성전자, SK C&C, 삼성SDC, 현대자동차 기술 세미나와 교육)
활동채널
블로그: https://jhrogue.blogspot.com
슬라이드 셰어: https://www.slideshare.net/jrogue/presentations
유튜브: https://www.youtube.com/c/박재호dev
문의 jrogue@gmail.com
박재호

More Related Content

What's hot

Fight with Metaspace OOM
Fight with Metaspace OOMFight with Metaspace OOM
Fight with Metaspace OOM
Leon Chen
 
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
Ji-Woong Choi
 
GraalVM
GraalVMGraalVM
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
Lucas Jellema
 
MariaDB MaxScale monitor 매뉴얼
MariaDB MaxScale monitor 매뉴얼MariaDB MaxScale monitor 매뉴얼
MariaDB MaxScale monitor 매뉴얼
NeoClova
 
Getting started with Next.js
Getting started with Next.jsGetting started with Next.js
Getting started with Next.js
Gökhan Sarı
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
Ho Gyu Lee
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
Ji-Woong Choi
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
Chris Ohk
 
Sql Antipatterns Strike Back
Sql Antipatterns Strike BackSql Antipatterns Strike Back
Sql Antipatterns Strike Back
Karwin Software Solutions LLC
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교Woo Yeong Choi
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
Brian Hong
 
Introduction to hazelcast
Introduction to hazelcastIntroduction to hazelcast
Introduction to hazelcast
Emin Demirci
 
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
confluent
 
MySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptxMySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptx
NeoClova
 
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
PgDay.Seoul
 
Spring GraphQL
Spring GraphQLSpring GraphQL
Spring GraphQL
VMware Tanzu
 
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
mumrah
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)
중선 곽
 
Spring Native and Spring AOT
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOT
VMware Tanzu
 

What's hot (20)

Fight with Metaspace OOM
Fight with Metaspace OOMFight with Metaspace OOM
Fight with Metaspace OOM
 
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
 
GraalVM
GraalVMGraalVM
GraalVM
 
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
 
MariaDB MaxScale monitor 매뉴얼
MariaDB MaxScale monitor 매뉴얼MariaDB MaxScale monitor 매뉴얼
MariaDB MaxScale monitor 매뉴얼
 
Getting started with Next.js
Getting started with Next.jsGetting started with Next.js
Getting started with Next.js
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
 
Sql Antipatterns Strike Back
Sql Antipatterns Strike BackSql Antipatterns Strike Back
Sql Antipatterns Strike Back
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
Introduction to hazelcast
Introduction to hazelcastIntroduction to hazelcast
Introduction to hazelcast
 
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
 
MySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptxMySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptx
 
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
 
Spring GraphQL
Spring GraphQLSpring GraphQL
Spring GraphQL
 
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)
 
Spring Native and Spring AOT
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOT
 

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

그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수
Yeon Soo Kim
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
MooYeol Lee
 
IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교
JungWoon Lee
 
Gradle 소개
Gradle 소개Gradle 소개
Gradle 소개
Sungjun Gwon
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
Jae Sung Park
 
Theano 와 Caffe 실습
Theano 와 Caffe 실습 Theano 와 Caffe 실습
Theano 와 Caffe 실습
정주 김
 
개발자가 바라보는 자바의 미래 - 2018
개발자가 바라보는 자바의 미래 - 2018개발자가 바라보는 자바의 미래 - 2018
개발자가 바라보는 자바의 미래 - 2018
Kenu, GwangNam Heo
 
201702-Oracle Container Cloud Service
201702-Oracle Container Cloud Service201702-Oracle Container Cloud Service
201702-Oracle Container Cloud Service
오라클 클라우드
 
Oracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker OverviewOracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker Overview
Taewan Kim
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
KwangSeob Jeong
 
Crawling with AWS Lambda
Crawling with AWS LambdaCrawling with AWS Lambda
Crawling with AWS Lambda
Seungho Kim
 
Spring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msaSpring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msa
흥래 김
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
Joongi Kim
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)uEngine Solutions
 
올챙이 현재와 미래
올챙이 현재와 미래올챙이 현재와 미래
올챙이 현재와 미래
cho hyun jong
 
웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화
NAVER D2
 
JS Game Engines
JS Game EnginesJS Game Engines
JS Game Engines
Wonjun Hwang
 
모바일 Rpg 게임서버 제작
모바일 Rpg 게임서버 제작모바일 Rpg 게임서버 제작
모바일 Rpg 게임서버 제작
기환 천
 
java_1장.pptx
java_1장.pptxjava_1장.pptx
java_1장.pptx
HeeJung Chae
 
당근마켓에서 IaC경험
당근마켓에서 IaC경험당근마켓에서 IaC경험
당근마켓에서 IaC경험
용진 조
 

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

그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교
 
Gradle 소개
Gradle 소개Gradle 소개
Gradle 소개
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
Theano 와 Caffe 실습
Theano 와 Caffe 실습 Theano 와 Caffe 실습
Theano 와 Caffe 실습
 
개발자가 바라보는 자바의 미래 - 2018
개발자가 바라보는 자바의 미래 - 2018개발자가 바라보는 자바의 미래 - 2018
개발자가 바라보는 자바의 미래 - 2018
 
201702-Oracle Container Cloud Service
201702-Oracle Container Cloud Service201702-Oracle Container Cloud Service
201702-Oracle Container Cloud Service
 
Oracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker OverviewOracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker Overview
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
Crawling with AWS Lambda
Crawling with AWS LambdaCrawling with AWS Lambda
Crawling with AWS Lambda
 
Spring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msaSpring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msa
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
 
올챙이 현재와 미래
올챙이 현재와 미래올챙이 현재와 미래
올챙이 현재와 미래
 
웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화
 
JS Game Engines
JS Game EnginesJS Game Engines
JS Game Engines
 
모바일 Rpg 게임서버 제작
모바일 Rpg 게임서버 제작모바일 Rpg 게임서버 제작
모바일 Rpg 게임서버 제작
 
java_1장.pptx
java_1장.pptxjava_1장.pptx
java_1장.pptx
 
당근마켓에서 IaC경험
당근마켓에서 IaC경험당근마켓에서 IaC경험
당근마켓에서 IaC경험
 

More from Jay Park

(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
Jay Park
 
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
Jay Park
 
(독서광 2024년 5월) 요즘 AI 페어 프로그래밍
(독서광 2024년 5월) 요즘 AI 페어 프로그래밍(독서광 2024년 5월) 요즘 AI 페어 프로그래밍
(독서광 2024년 5월) 요즘 AI 페어 프로그래밍
Jay Park
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
Jay Park
 
(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지
(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지
(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지
Jay Park
 
(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)
(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)
(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)
Jay Park
 
(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)
(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)
(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)
Jay Park
 
(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)
(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)
(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)
Jay Park
 
(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략
(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략
(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략
Jay Park
 
(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학
(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학
(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학
Jay Park
 
(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드
(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드
(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드
Jay Park
 
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
Jay Park
 
(독서광) 테니스 이너 게임
(독서광) 테니스 이너 게임(독서광) 테니스 이너 게임
(독서광) 테니스 이너 게임
Jay Park
 
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
Jay Park
 
(독서광) 모던 리눅스 교과서
(독서광) 모던 리눅스 교과서(독서광) 모던 리눅스 교과서
(독서광) 모던 리눅스 교과서
Jay Park
 
(독서광) 상자 밖에 있는 사람
(독서광) 상자 밖에 있는 사람(독서광) 상자 밖에 있는 사람
(독서광) 상자 밖에 있는 사람
Jay Park
 
(독서광) 자바 알고리즘 인터뷰 with 코틀린
(독서광) 자바 알고리즘 인터뷰 with 코틀린(독서광) 자바 알고리즘 인터뷰 with 코틀린
(독서광) 자바 알고리즘 인터뷰 with 코틀린
Jay Park
 
(독서광) 리그 오브 레전드 플레이어 중심주의
(독서광) 리그 오브 레전드 플레이어 중심주의(독서광) 리그 오브 레전드 플레이어 중심주의
(독서광) 리그 오브 레전드 플레이어 중심주의
Jay Park
 
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
Jay Park
 
(독서광) 오늘날 우리는 컴퓨터라 부른다
(독서광) 오늘날 우리는 컴퓨터라 부른다(독서광) 오늘날 우리는 컴퓨터라 부른다
(독서광) 오늘날 우리는 컴퓨터라 부른다
Jay Park
 

More from Jay Park (20)

(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
 
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
 
(독서광 2024년 5월) 요즘 AI 페어 프로그래밍
(독서광 2024년 5월) 요즘 AI 페어 프로그래밍(독서광 2024년 5월) 요즘 AI 페어 프로그래밍
(독서광 2024년 5월) 요즘 AI 페어 프로그래밍
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지
(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지
(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지
 
(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)
(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)
(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)
 
(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)
(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)
(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)
 
(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)
(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)
(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)
 
(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략
(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략
(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략
 
(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학
(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학
(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학
 
(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드
(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드
(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드
 
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
 
(독서광) 테니스 이너 게임
(독서광) 테니스 이너 게임(독서광) 테니스 이너 게임
(독서광) 테니스 이너 게임
 
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
 
(독서광) 모던 리눅스 교과서
(독서광) 모던 리눅스 교과서(독서광) 모던 리눅스 교과서
(독서광) 모던 리눅스 교과서
 
(독서광) 상자 밖에 있는 사람
(독서광) 상자 밖에 있는 사람(독서광) 상자 밖에 있는 사람
(독서광) 상자 밖에 있는 사람
 
(독서광) 자바 알고리즘 인터뷰 with 코틀린
(독서광) 자바 알고리즘 인터뷰 with 코틀린(독서광) 자바 알고리즘 인터뷰 with 코틀린
(독서광) 자바 알고리즘 인터뷰 with 코틀린
 
(독서광) 리그 오브 레전드 플레이어 중심주의
(독서광) 리그 오브 레전드 플레이어 중심주의(독서광) 리그 오브 레전드 플레이어 중심주의
(독서광) 리그 오브 레전드 플레이어 중심주의
 
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
 
(독서광) 오늘날 우리는 컴퓨터라 부른다
(독서광) 오늘날 우리는 컴퓨터라 부른다(독서광) 오늘날 우리는 컴퓨터라 부른다
(독서광) 오늘날 우리는 컴퓨터라 부른다
 

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

  • 1. - 자바를 넘어선 새로운 시작의 서막 알도개(알고 보면 도움되는 개발 이야기) 이미지 출처: https://www.flickr.com/photos/75409276@N06/29379427975 CC BY-NC-SA 2.0
  • 2. GraalVM – 자바를 넘어선 새로운 시작의 서막 GraalVM이란? 고성능 JDK 배포판 자바와 다른 JVM 기반 애플리케이션의 수행 속도를 가속화 1. Graal: 자바로 만들어진 새로운 JIT(Just-In-Time) 컴파일러 2. 개발 프로그래밍 언어 수준의 상호 운용성: 폴리그랏 프로그래밍 3. AOT(Ahead of Time) 네이티브 이미지 컴파일러: 워밍업 시간 단축
  • 3. GraalVM – 자바를 넘어선 새로운 시작의 서막 GraalVM을 써야 하는 이유 • 더 빠른 자바 • 다양한 프로그래밍 언어로 애플리케이션 확장 • 네이티브 이미지 생성 • 마이크로서비스 아키텍처에 적합한 특성 • 오라클 데이터베이스에서 MLE(Multilingual Engine) 지원 • 다양한 도구 • 생태계 확장
  • 4. GraalVM – 자바를 넘어선 새로운 시작의 서막 라떼는 말이야… 두 가지 JIT 컴파일러: • C1: 클라이언트용(대기 시간) • C2: 서버용(메모리 희생해 처 리량 개선) • Mixed(시작 시 C1, 어느 정도 시간이 지나면 C2) – 자바 5 이후
  • 5. GraalVM – 자바를 넘어선 새로운 시작의 서막 그런데 말이지… GraalVM에서는: • C2 대신 JVMCI를 적용하는 자바 기반의 Graal 컴파일러 적용(C++ JIT는 기술 부채로 인해 확장 불가 판정) • 참고) JVMCI(Java Virtual Machine Compiler Interface) LLVM
  • 6. GraalVM – 자바를 넘어선 새로운 시작의 서막 • 정적인 바이너리를 생성하는 대신 동적으로 바이너리를 생성하는 JIT의 기능에 어마무시한 최적화를 가함 • 특히 스칼라 Spark 같은 콜스택이 깊은 경우 성능 개선이 유리 • 네이티브 이미지 빌드: 자바 클래스를 네이티브로 컴파일, 런타임 데이터 영역을 그대로 메모리로 덤프 • 자바 9의 CDS (Class Data Sharing), AppCDS (Application Class Data Sharing), AOT compiler 를 JRE 의존성이 없이 단독 동작하게 개선! • 런타임 프로파일링 데이터를 파일로 떨어뜨린 다음 에 이 정보를 네이티브 이미지에 넣어 실제 워크로드 에 가까운 성능을 발휘하게 코드를 최적화! • GraalVM 런타임 JIT가 16% 정도 더 고성능이긴 하지 만, 네이티브 이미지 역시 기존 HotSpot의 최고 성능 에 필적함 어떻게 성능을 높일까?
  • 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. GraalVM – 자바를 넘어선 새로운 시작의 서막 마이크로서비스 아키텍처, 게 섯거라!(계속됨) Quarkus 사례: 메모리와 초기 기동 시간 비교
  • 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. 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. GraalVM – 자바를 넘어선 새로운 시작의 서막 개발자 편의성 • VSCode의 경우 • GraalVM Tools for Java • GraalVM Tools for Micronaut • GraalVM Extension for Java • VisualVM(https://visualvm.github.io/) • GraalVM 21.2.0부터 지원
  • 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. 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. GraalVM – 자바를 넘어선 새로운 시작의 서막 결론 • 차익 거래가 가능한 GraalVM을 사용하지 않을 이유가 있을까? • 페북 사례를 보면 OpenJDK를 GraalVM으로 바꾸기만 해도 10~40% 성 능 개선과 10% 정도 CPU 사용량을 줄이는 효과! • 여러 프로그래밍 언어의 혼합 사용(폴리그랏) • 마이크로서비스 아키텍처에 제격 • 이제 업그레이드는 선택이 아니라 필수다! 보안 패치가 아닌 기능/성능 개 선을 담고 있기에… • 향후 오라클 JDK와 오픈JDK에 통합될 가능성이 점쳐진다 – 자바를 넘어선 새로운 시작의 서막을 기대하시라!
  • 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 박재호