본문으로 이동
Spring Batch 애플리케이션 성능 향상을 위한 주요 팁 (김남윤, Yun)
컨퍼런스

Spring Batch 애플리케이션 성능 향상을 위한 주요 팁 (김남윤, Yun)

if kakao 카카오 · YouTube

원문 보기

AI 핵심 요약

회원 등급을 갱신하는 Spring Batch에서 건별 주문 API 호출과 Hibernate 더티 체킹 업데이트가 반복되면서, 데이터가 늘수록 네트워크·DB I/O 대기 시간이 병목이 됐습니다. 발표자는 프로세서의 건별 호출을 라이터로 옮겨 RxJava 기반 병렬 처리를 적용하고, 등급별 `WHERE IN` 업데이트와 JDBC 배치로 데이터베이스 작업을 묶었습니다. 테스트에서는 병렬 처리와 배치 업데이트로 처리 시간이 크게 줄었으며, 핵심은 반복 I/O를 줄이고 최적화를 단순한 방법부터 단계적으로 진행하는 것입니다.

  • 청크 크기만 키우기보다 리더·프로세서·라이터 각 단계에서 발생하는 네트워크와 DB I/O를 먼저 측정하세요.
  • 프로세서에서 건별 API 호출을 해야 한다면 라이터에서 청크 단위 데이터를 병렬 처리해 대기 시간을 줄일 수 있습니다.
  • 같은 값으로 갱신할 수 있는 데이터는 그룹화해 `WHERE IN` 업데이트를 적용하면 쿼리 횟수를 줄일 수 있습니다.
  • 행마다 갱신 값이 달라 일괄 업데이트가 어렵다면 JDBC 배치로 여러 SQL 실행을 묶어 전송하세요.
  • 병렬 처리는 커넥션과 CPU 자원도 소모하므로, 단순하고 예측 가능한 최적화를 먼저 적용한 뒤 필요할 때 도입하세요.

소개

[2023.07.18. 제2회 kakao tech meet 발표] 배치 애플리케이션이 어느 구간에서 쉽게 느려지는지 파악하고, 이를 해결하기 위한 방법에 대해 다룹니다. 특히, IO 작업이 처리 시간에 큰 영향을 주는데, 이를 해결하기 위해 병렬 처리 및 벌크 IO 처리를 활용하여 IO 작업의 효율성을 높이는 성능 최적화 방법에 대해 다루게 됩니다. 배치 애플리케이션 개발자, 대량 처리에 관심있는 분이 듣길 추천합니다. 발표자: @yun.cheese(김남윤) 카카오페이 정산팀 Yun 입니다. Yun Blog를 운영하고 있으며, 서버 개발자로서 좋은 코드 설계와 아키텍처에 관심이 많습니다. #springbatch #대량처리성능최적화 💬 발표자 인터뷰: https://tech.kakao.com/2023/08/01/techmeet-spring-batch/ ✨ 카카오테크 페이스북: https://www.facebook.com/kakaotech ✨ 카카오테크 톡채널: http://pf...

비슷한 학습 자료

컨퍼런스 if kakao

Google Cloud Platform에서 다양한 소스에서 매일 ETL하는 파이프라인에는 매일 실행되는 만큼 시간/비용/성능을 모두 고려해야 합니다. AlloyDB로 비싼 인메모리 디비와 근접한 성능 내기, 소스DB에 부하가 거의 없이 매일 ETL 했던 사례, 수천개의 테이블의 ETL을 효율적으로 스케줄링한 경험을 공유합니다. #Data #리소스최적화 카카오헬스케어에서 데이터 플랫폼을 개발하고 있는 Grey입니다. 발표자료 보기 👉 https://speakerdeck.com/kakao/ifkakao24-73 if(kakaoAI)2024에 대한 자세한 정보는 👉 https://if.kakao.com #카카오 #이프카카오 #개발자컨퍼런스 #AI #기술 #개발 #ifkakaoAI2024

데이터베이스 클라우드

컨퍼런스 if kakao

수 천만 건 이상의 대량 배치처리를 하기 위한 최고의 노하우를 전달드리겠습니다. 카카오페이 정산플랫폼팀은 카카오페이의 빠른 성장과 더불어 늘어나는 데이터를 일괄처리하기 위하여 꾸준히 노력 하고 있습니다. 더 많은 데이터를 처리하기 위해 진화하는 서비스와 개발방식을 소개하고자 합니다. #BatchPerformance #SpringBatch #SpringCloudDataFlow #Kubernetes #Redis 카카오페이 정산플랫폼팀 베니입니다. 서버 Performance 개선에 관심이 많습니다. 발표자료 보기 👉https://speakerdeck.com/kakao/ifkakao22-065 if(kakao)2022에 대한 자세한 정보는 👉 https://if.kakao.com if(kakao)2022에 대한 문의는 👉 if@kakaocorp.com #카카오 #이프카카오 #개발자컨퍼런스 #기술 #개발 #ifkakao2022

백엔드 데이터베이스 데브옵스 · 인프라

컨퍼런스 if kakao

Preview data / if(kakao)2022

컨퍼런스 if kakao

if(kakao)2022 컨퍼런스에서 data 관련 기술 발표세션을 소개합니다. 02:24 1. Batch Performance 극한으로 끌어올리기: 1억 건 데이터 처리를 위한 노력 by 안성훈(benny.ahn) 카카오페이 정산플랫폼팀 베니입니다. 서버 Performance 개선에 관심이 많습니다. 02:38 2. InnoDBCluster for kakao by 김근표(pio.p) 카카오에서 MySQL Database 를 운영하고 있는 피오입니다. 03:12 3. Kakao Hadoop Plaform (KHP): 카카오 하둡 플랫폼의 아키텍처와 개발/운영에 대한 이야기 by 국성표(elixir.kook) 카카오 내 하둡 클러스터를 효율적으로 운영하기 위해 힘쓰고 있습니다. KHP 프로젝트 중에는 배포판 PL을 맡았으며, 최근에는 Spark, Kafka 관련 업무를 수행하고 있습니다. 03:34 4. 생성부터 활용까지, 게임데이터 Flow 따라가기 by 이학희(kyle.l...

데이터베이스 데브옵스 · 인프라

컨퍼런스 if kakao

10년간 카카오톡 메시지 릴레이를 책임져온 C++ 기반 서버를 JVM 기반 언어(JAVA 및 Kotlin)로 포팅하는 이야기를 합니다. 위 프로젝트를 진행하게 된 계기를 소프트웨어 엔지니어링 측면으로 설명하고, 현재까지 진척 상황에 대한 이야기를 공유합니다. #카카오톡 카카오톡 메시징 시스템을 개발 및 운영하는 시리우스 입니다. 발표자료 보기 👉https://speakerdeck.com/kakao/ifkakao22-28 if(kakao)2022에 대한 자세한 정보는 👉 https://if.kakao.com if(kakao)2022에 대한 문의는 👉 if@kakaocorp.com #카카오 #이프카카오 #개발자컨퍼런스 #기술 #개발 #ifkakao2022

백엔드 프로그래밍 언어

컨퍼런스 if kakao

Preview Backend_1 @if(kakao)2022

컨퍼런스 if kakao

if(kakao)2022 컨퍼런스에서 Backend_1 관련 기술 발표 트랙을 소개합니다. 03:02 1. API 테스트 주도 개발의 시작 by 공진산(ronaldo.c) 카카오 테스트플랫폼셀에서 개발을 하고 있는 호날두입니다. 03:38 2.대량의 광고 데이터 필터 기능 개발기: ES한테 뺨맞고 Citus한테 안긴 썰 by 이동준(genos.lee) 카카오 crux개발2셀에서 서버 개발을 담당하고 있는 제노스라고 합니다. 04:17 3.Docker Swarm 기반 Redis SaaS 플랫폼 구축사례 by 이은미(silvia.lee) 카카오 시스템엔지니어와 레디스 플랫폼 엔지니어를 맡고있는 실비아입니다. 04:48 4. 카카오톡 메시징 시스템 재건축 이야기: C++ 서버를 Java및 Kotlin으로 by 남기영(sirius.nam) 카카오톡 메시징 시스템을 개발 및 운영하는 시리우스 입니다. 05:10 5. 카카오톡 메시징 지표 이상감지 시스템의 개선사례 by 김예솔(so...

백엔드 데이터베이스 소프트웨어 테스트

컨퍼런스 if kakao

Preview BackEnd @if(kakao)2021

컨퍼런스 if kakao

if (kakao) 2021 컨퍼런스에서 BackEnd 관련 기술 발표 세션을 소개합니다. 1. 카카오톡 서버의 스프링 공화국 탈출기 @zach.lee @peter.y 카카오톡 신규 어플리케이션 서버를 구축하면서 스프링이라는 거대한 생태계를 왜 탈출하고 싶었는지, 그리고 어떻게 탈출했는지를 공유합니다. 2. 티스토리에서 airflow활용기 @mark.44 @justin.sg 테스트가 전무한 Andorid 프로덕트에 테스트를 도입해 가는 경험 공유 3. 다음카페 쿠버네티스 이관기 @kasha.seo 서비스를 쿠버네티스로 이관하기 위해 고려해야 하는 내용들을 다룹니다. 4. Daum Mail Terraforming: 다음 메일 백엔드 레거시 개편기 @owen.ny 다음메일의 Legacy 백엔드 서비스를 신규 마이크로 서비스들로 개편하며 기술부채를 해결해나간 과정을 소개 5. 아랑고야 피드를 부탁해!!! (RDB도 모르는 개발자의 아랑고DB 삽질기) @stewie.byun ...

백엔드 데이터베이스 데브옵스 · 인프라