제4회 Kakao Tech Meet 후기

제 2회에 이어 2023년 12월 12일, 제 4회 카카오 Tech meet 을 다녀왔다. 제 3회도 당첨 되었었지만 개인 사정으로 불참해서 너무 아쉬웠는데  4회에도 당첨되어 기뻤다.

아쉽게 참석하지 못한 제 3회 Tech Meet 초대장과 이번에 받은 제 4회 Tech Meet 초대장

 

이번에는 현재 자바를 쓰고 있는 개발자라면 누구나 관심을 가질수밖에 없는 "JDK 21의 신기능 Virtual Thread" 에 관한 세션이 있어 기대되었다.

이번에도 맨 앞자리를 앉았다.
큐라스 관련 발표를 듣고있는 모습도 찍혔다
춘식이 눈집게 이벤트.. SNS 를 좋아하는 편이 아니라 참여하지는 않았다.

 

JDK 21의 신기능 Virtual Thread 알아보기 [@james.star(안정수)]

 Java 를 사용하고 있다면 Spring 을 사용하고 있을 확률이 높고, Spring 진영에서는 현재 Spring initializer 에서 2.x 버전을 없애고 3버전을 내세우고 있다. Spring Boot 3 버전부터는 JDK 17 을 기본으로 하고 있는데, Java 의 트렌드가 점점 하위버전에서 상위버전으로 옮겨가고 있는 대표적인 현상이 아닐까 생각한다. Spring 진영에서 이 가상스레드를 이용한 다양한 기능을 출시하고, 실험하고 있기에 아마 자바를 사용하고 있다면 반드시 변화하는 트렌드를 알고 있어야 한다 생각한다.

 

바야흐로 2022년 11월 17일, Spring 6.0 GA 버전이 출시되었다는 소식을 듣고 회사에 전파했다.

 그 중 사람들의 관심을 모은건 가상스레드 관련이었다. 그 당시 저 기사를 보고 처음으로 가상스레드라는 것에 대해 알게되었다. 그리고 현재, JDK 21 LTE 버전에 공식적으로 기능이 추가되었다.

 

 안정수 님의 세션에서는 가상스레드라는것이 어떤것이고, 원리, 성능테스트 등등에 대한 발표였다. 이미 어느정도 가상 스레드에 대해 안 상태에서 세션을 들으니 더욱 흥미로웠다. 정리하면 이렇다.

  • Thread Blocking 이 발생하지 않는 경우 Platform Thread 가 더 처리량이 높다.
  • Thread Blocking 이 발생하는 경우 Virtual Thread를 사용할 때가 처리량이 더 높다.
  • DB Query 에 대해서는 Virtual Thread를 사용할 때 Tomcat 이후, DB Connection 을 얻으려다가 SQLTransientConnectionException 발생하는듯 보인다. 해당 모습으로 보아 한정된 자원에 접근을 제한하려면 semaphores 같은 상호배제(Mutual Exclusion) 를 고려해봐야 한다.
  • 막연하게 설정을 활성화 하고 처리량이 높아지기를 기대하면 안된다.
    - 기존 스레드 풀을 사용하지 말고, 개별 작업에 가상 스레드 를 할당하는 형태로 변경하자.
    - ThreadLocals 에 값비싼 객체를 캐싱하지 말자
    - synchronized 키워드 사용시 주의가 필요하다. (Pinning 이슈)

 결론은 가상스레드는 자바의 동시성 문제를 단번에 해결해주는 Silver bullet 이 아니라는 점이다. 특정 부분에서는 뛰어난 성능을 보여주지만 한계점에 대해 잘 인식하고, 사용법을 인지한 후 사용해야한다. 아직까지 어디에 어떻게 적용할 수 있을지, 적용해도 타 라이브러리와의 문제가 없을지 확신할 수 없기에 좀 더 지켜봐야 한다는 입장이다.

 

큐라스: 메시지 광고 추천 플랫폼 [eric.signal(신호석), cookie.shake(김영찬)]

 해당 세션은 ML 관련 이야기 였다. ML 쪽은 무지한 상태라 많은 부분을 이해하진 못했다. 하지만 ML Ops 분야가 어떤 일을 하는지, 실제 ML 을 이용한 광고 추천 플랫폼이 크게 어떤식으로 이루어지는지 알게되는 시간이었다. 특히 두 분이서 나눠서 발표였지만 발표의 매끄러움과, 일에 대한 자신감, 즐거움을 엿볼 수 부분에서 존경심을 느꼈다.

 노션에 세션 내용을 정리하긴 했지만, 이해하면서 적었다기 보단, 그저 들은 내용을 바탕으로 내가 생각하는 바에 대해서만 적었다. 너무 많은 새로운 용어에 살짝 압도 당했다.. 대용량 데이터를 어떤식으로, 효율적으로 다룰수있는지 궁금하다.

 

After Meet: 남은 이야기

 세션이 종료 된 이후 가벼운 네트워킹 시간이 있었다.  네트워킹을 신청한 사람들끼리 따로 모여 가볍게 이야기를 나누는 자리였다. 약 20~30명 가량 되어보였는데, 테이블로 나뉘었고, 나는 8명이 앉아있는 Backend 테이블에 자리를 잡았다.

 다양한 회사, 다양한 경험을 가진 분들이 모여 나누는 이야기는 시야를 넓히게 해주는 좋은 자리였다. 처음에는 어색한 분위기에서 시작했지만, IT 라는 공통 관심사를 가지고 이야기를 나누다보니 어느새 시간이 다 되어 종료되었다. 생각보다 짧았던 시간에 아쉬웠지만, 다음에 이런 자리가 있으면 더 긴 시간을 가진다고 하니, 다음에도 꼭 참석해야겠다.

아쉽게 해당 세션의 사진이 없는데, 다음에 기회가 되면 한장이라도 찍어와야겠다.

 

해당 컨퍼런스 다시보기는 여기서 확인할 수 있다.

'잡담' 카테고리의 다른 글

스프링캠프 2024 기술 컨퍼런스 후기  (0) 2024.06.01
제2회 Kakao Tech Meet 후기  (0) 2023.08.14
스프링캠프 2023 기술 컨퍼런스 후기  (0) 2023.07.31
드디어 블로깅 시작..  (1) 2023.07.04