안녕하세요 오랜만에 블로그 글을 써보네요 ㅎㅎ
오늘은 최근에 열린 퇴근길 밋업에 추첨되어서 참가 후기를 가져왔습니다
https://www.inflearn.com/course/offline/josh-long-meetup
참가신청 기간: 8월 29일(목) ~ 9월 2일(월) 10:00
참가자 발표일 : 9월 4일(화)
본 행사는 무료로 진행되며, 참가자 200인은 추첨을 통해 선발합니다.
보통 행사같은거 신청해서 된 경험이 없었기에 잊고 살고 있었는데... 갑자기 당첨 연락이 와서 얼떨떨하게 갔습니다..ㅎㅎ
이번 행사에서는 번역 시스템인 플리토를 통해서 실시간 번역내용을 보면서 강연을 들을 수 있었습니다.
약간의 딜레이가 있긴했지만 제가 들으면서 놓친 부분을 다시 스크립트 보면서 볼 수 있고 이해하지 못한 단어를 플리토에서 빠르게 번역해주니깐 엄청난 도움이 되었습니다 ㅎㅎ
초급 난이도라고 표기되어있었지만... 뒤로 갈수록 모르는 내용이 많이 나왔습니다...* 이게 초급..
제가 강연때 기억에 남는 주제는 크게 5가지 였습니다.
1. Java21 짱
2. ApplicationModularListener
3. SpringAI (vectorStore)
4. 가상스레드
5. GraalVM
1. Java21 짱
현재 Java8 같은 경우는 쓸 이유가 없으며 새로운 버전이 계속 나오고 있다는 얘기가 나오면서 곧 출시되는 Java23에 대한 얘기가 언급되었습니다.
https://www.java.com/releases/
2024-09-17일 곧 출시되는 Java23에 대한 얘기가 나오면서 Java8보다 3배 뛰어남. 8*4=24인데 암튼 그래서 3배 뛰어남..
얘기를 하시는데 너무 웃겼습니다...ㅋㅋ
Java 21, 최신 LTS(Long-Term Support) 버전에서는 데이터 지향 프로그래밍을 위한 여러 기능이 추가 및 개선되었습니다.
- seal types
- records
- pattern matching
- smart switch expression
데이터 모델링을 더 간결하고 안전하게 할 수 있게 되었으며, 특히 다양한 데이터 표현 방식과 개선된 switch문에 대해서 언급하였습니다
2. ApplicationModuleListener
이벤트 프로그래밍에 대한 얘기가 나오면서 EventListener에 대한 언급이 있었습니다. 기존에 사용하는 EventListener 같은 경우에 대해 단점이 존재하는데,
1. 메세징 처리를 하지만 이 메세징 처리 같은 경우 같은 JVM내에 있음
2. 시간 적 위치 적으로 커플링 됨
3. 별도의 스레드에서 실행되는 문제
이 3가지 문제점으로 인한 대응책으로 ApplicationModuleListener에 대해서 말씀해주셨습니다.
3. SpringAI (vectorStore)
우리가 사용하고 있는 데이터를 AI가 접근할 수 있기를 바라는 경우 AI에 보낼 수 있도록 vectorStore를 사용할 수 있도록 추천하였으며 이에 대해 간단한 예제를 보여주었습니다..
spring.ai.vectorstore.pgvector.initialize.schema=true
https://github.com/spring-projects/spring-ai/blob/main/README.md
4. 가상스레드
스레드를 사용하는 경우는
1, 확장 가능한 코드 작성을 원하는 경우
2. 가능한 많은 트래픽 처리
3. AI 사용 시 다른 서버에 네트워크 요청
이 3가지 경우에 스레드를 사용할 수 있는데 이때 JVM의 스레드는 비용이 많이 발생합니다. 하지만 반응형으로는 바꾸고 싶지 않을때를 위해 Java21에서 사용가능한 가상스레드를 추천하였습니다.
실제 가상스레드를 사용했을때와 안했을때의 속도차이는 2배 가량 차이가 발생했습니다
https://bell-sw.com/blog/a-guide-to-using-virtual-threads-with-spring-boot/
5. GraalVM
2017년도 에너지 효율을 보면 Java가 TOP5에 들 정도로 효율성이 높은 언어라고 되어있습니다.
그만큼 Java는 속도있는 언어에 대해 언급하면서 원 빌리언 로우 챌린지에 대해서 얘기가 나왔습니다
https://github.com/gunnarmorling/1brc
이 챌린지는 10억 행의 텍스트 센서 데이터가 있으면 모두 읽어야되며 대략 13기가바이트 정도의 데이터 입니다
해당 대회에서는 Java만 사용가능하며 다른 어떤 것도 사용 불가합니다(라이브러리도 안됨) 오직 JDK만 사용할 수 있습니다. 이 대회의 Top1,2,3은 모두 GraalVM을 사용하고 있습니다
GraalVM은 Java 배포판입니다. OpenJDK 기반이지만 추가 유틸리티, 추가 기능이 있습니다.
그리고 이러한 기능 중 하나는 네이티브 이미지 컴파일러입니다. 그리고 이 네이티브 이미지 컴파일러를 사용하면 Mac 또는 Linux 또는 Windows 네이티브 바이너리를 빌드할 수 있습니다. 따라서 JDK도 없고, JRE도 없고, 런타임도 없습니다.
후기
처음 Java관련한 얘기로 시작되었을때 에이 전부 알고 있는것, 진부한것 이라는 생각이 들었을때쯤..새로운 기능과 이점에 대해서 말씀해주시면서 뒤로갈수록 더 흥미진진한 강연이었습니다
컨퍼런스를 많이 다녀본건 아니지만 여태까지 다녔던 컨퍼런스 중에서 제일 좋은 경험이었다고 생각듭니다..
해당 밋업은 9월 내로 인프런에 공개될 예정이라고 알려주셨습니다 꼭 한번 들어보길 추천드립니다 👍
'회고' 카테고리의 다른 글
[AWS] Certified Cloud Practitioner 자격증 시험준비 및 후기 (0) | 2023.07.31 |
---|---|
[O'reilly] 풀스택 테스트 베타리더 후기 (1) | 2023.05.26 |
Spring Camp 2023 후기 (0) | 2023.04.23 |
[백준] 백준 랭크 실버 기념 회고 (0) | 2023.04.21 |
[혼공학습단] 혼공학습단 8기 지원 (0) | 2022.06.29 |