알아두면 좋은 개발 지식/Spring Batch 스터디

[完] 스프링 배치 스터디 오프라인 모임 (with 스페셜 게스트 이동욱님, 김남윤님)

예슬 2024. 12. 23. 19:01

스프링 배치 스터디가 처음이자 마지막(?)으로 오프라인 모임을 갖게 되었습니다.

 

11월 30일 토요일(8회차)에 진행되었는데요,

시간이 꽤 지나 기억이 흩어지긴 했지만... 늦기 전에 기록해두고 싶어서 이렇게 글을 쓰게 되었습니다. 😊

 

스터디 순서는 다음과 같이 진행 되었습니다.

  1. 인사말
  2. 8주차 스프링 배치 스터디
  3. 특급 게스트(김남윤)님의 스페셜 세션
  4. 특급 게스트(향로, 김남윤)님들의 개발자 Q&A 토크
  5. 스프링 배치 퀴즈(진행 될 예정이었으나 시간 관계상 생략)
  6. 중간 시상
  7. 스터디원 단체 사진
  8. 네트워킹: 피자 먹으면서 얘기하기

 

처음에 딱 들어갔을 때 배치가 완전 발표자를 기준으로 둥글게 되어있었는데,

완전 면접하는 느낌(??)이어서  절대 발표자가 되면 안됐으면 좋겠다고.... 빌었습니다 ㅋㅋㅋㅋ 😂

 

대망의 발표자 뽑기

 

오늘은 특별히 1등이 아닌 마지막에 떨어지는 사람이 당첨으로 하자! 라고 하셔서 결과를 봤더니,

웬걸, 제가 1등으로 떨어진 사람이더라고요.

 

정말 다행이었어요 ㅋㅋㅋㅋ (감사합니다!)

 


1. 인사말

 

오프라인 스터디는 스터디장이셨던 고경석님의 인사말로 시작되었습니다.

 

스터디를 잘 이끌어주시고, 오프라인 행사에서 많은 것을 얻어갈 수 있게끔 좋은 자리 마련 해주신 경석님.

감사합니다.

덕분에 좋은 인연, 경험들이 생겼습니다.

 

 

사진에서도 볼 수 있듯이, "공유하고 나누며 더하는 개발 문화가 더 나은 기술을 만든다"는 말씀에 깊이 공감하며 스터디를 만들었다고 하셨습니다.

 

저 역시 개발 블로그를 꾸준히 작성하고 있는 입장에서,

커뮤니티에 선한 영향력을 더할 수 있는 개발자가 되고 싶다는 마음이 더욱 커졌습니다.

 

특히 저희 스터디에는 주니어보다는 시니어 분들이 더 많이 계신 것으로 알고 있는데, 꾸준히 커뮤니티에 기여하시는 모습을 보면 정말 대단하시다는 생각이 듭니다. 저도 그분들처럼 꾸준히 기여하며 성장하는 개발자가 되고 싶습니다.

 

2. 8주차 스프링 배치 스터디

이번 스터디 주제는 스프링 배치에서 CompositeItemProcessor 사용해보기 였습니다.

해당 내용은 아래 블로그에 정리되어 있으니, 관심 있으신 분들은 참고해 주세요!

 

https://yeseul-dev.tistory.com/73

 

[8회차] CompositeItemProcessor 으로 여러단계에 걸쳐 데이터 Transform하기

아래 글은 한국 스프링 사용자 모임(KSUG)에서 진행된 스프링 배치 스터디 내용을 정리한 게시글입니다.DEVOCEAN에 연재 중인 KIDO님의 글을 참고하여 실습한 내용을 기록했습니다. 원본: [SpringBatch

yeseul-dev.tistory.com

 


 

추가적으로 동억님께서 공유해주신 내용 중 특히 인상 깊었던 내용은 오픈소스 워크플로우 자동화 툴인 n8n을 활용해 인터넷 강의 진도에 대한 알람을 만드는 방법이었습니다.

 

같은 스터디원이신 송하연님 블로그에서 가져왔습니다. 감사합니다.

 

이 때 잠시 supabase에 대해 설명 해주셨습니다.


firebase의 경우 프론트 개발자 분들이 서버 개발 없이 만들 때 많이 사용한다는 것으로만 알고 있었는데, 덕분에 어떤 것인지 간접적으로나마 알 수 있어 좋았습니다.


Supabase는 Firebase의 대안으로, Firebase의 단점을 보완한 BaaS(Backend as a Service)입니다.

Firebase의 주요 단점:

  • 오픈소스가 아님
  • 복잡한 쿼리를 지원하지 않음 (NoSQL 기반)
  • 사용자가 많아질수록 높은 비용 발생
  • 앱 개발에는 적합하지만, 웹 개발에는 최적화되지 않음
  •  

3. 특급 게스트(김남윤)님의 스페셜 세션

Spring Batch 어플리케이션 재처리 가이드

주요 내용을 정리 해보자면

 

  1. 애플리케이션 레벨 성능 개선
    • Reader 개선: Zero-offset item reader 방식으로 최적화
    • Aggregation 개선: GROUP BY 사용 최소화, 단순한 쿼리 구조로 만들기
  2. API 별 성능 최적화
    • 단건 API 호출 시 네트워크 비용 최적화를 위해 멀티스레드 방식으로 대량 데이터 처리(Chunk 단위의 일괄 처리)
  3. 메타 데이터 및 모니터링
    • 배치 애플리케이션의 성능 및 이상 징후를 모니터링하기 위한 메타 데이터 활용
    • 평균 실행 시간 등의 기준 데이터를 기반으로 리포트 생성 및 대응
  1.  

그리고 가장 기억에 남는 내용은

기안84 메타로 개발하기와 '기술에 너무 몰두 돼있지 말자' 인데요,

기안 84 메타란...

대충 하기

 

였는데요, 남윤님은 정말 재밌는 개발자 분이셨던 것으로 기억에 남습니다.

말씀 하나하나에 소소한 유머가 담겨있어 듣는 내내 재미있었습니다 😆

 


4. 특급 게스트(향로, 김남윤)님들의 개발자 Q&A 토크

 

Spring 분야에서 유명한 향로님과 남윤님께 질문할 수 있는 시간이 주어졌습니다.


생각보다 많은 분들이 질문을 해주셔서 시간이 순식간에 지나갔고,

결국 다음 순서로 예정되어 있던 스프링 배치 퀴즈 맞히기는 아쉽게도 생략되었습니다.

 

매우 shy... 한 저는 질문할 엄두조차 내지 못했는데요.
향로님께서 일하셨던 곳에 제가 취업하게 된 사실을 경석님이 질문지에 떡하니 적어놓으시더니,
"이 회사에 간다. 신입 개발자로서 조언이 없을까요?" 라고 질문하시더라고요 😳

마치 제가 직접 질문한 것처럼 되어 정말 당황스러웠던 기억이 납니다.
그렇지만 덕분에 좋은 말씀도 들을 수 있어서 정말 감사했어요 😆👍

 

말씀 중에 특히 기억에 남는 건,

"요즘 컨퍼런스나 세션들을 다녀오면서 많은 기술을 자사 서비스에 도입하자고 주장하는 주니어 개발자들을 자주 보는데, 그 일을 하고 싶다면 그 기술을 쓰는 회사에 가는 게 맞다."는 조언이었습니다.

 

회사의 서비스에는 적합한 기술과 꼭 필요한 기술이 있는데, 그것을 깊이 이해하고 공부하는 게 더 중요하다는 말씀입니다.


다른 곳에 몰두하기보다는 현재 회사와 서비스에 어울리는 기술과 도메인 지식에 집중해야 한다는 말씀에 깊이 공감했습니다.

저 역시 신입 개발자로서 도메인 지식과 필요한 기술을 습득하는 데 집중하며 성장해야겠다고 다짐하게 되었습니다.


5. 중간 시상

스터디에서 열심히 참여한 사람들을 위해 준비된 선물이 있었는데요, 저는 아래의 3가지를 받았습니다! 😄

정말 필요했던 책들까지 너무 감사했습니다 ㅎㅎ

사진을 남겨두지 못했네요😂

 

인텔리제이 책은 가끔 이 기능 있을 것 같은데~ 하면서 찾아보는 용도로 사용하고 있습니다.

 

클린 코드는 아직 읽어보진 못했지만... 꼭 읽어야 하는 책들 중 하나죠 ㅎㅎ

사실 원래 제 1순위는 HTTP 완벽 가이드 라는 책이었는데, 그 책은 더 멀리서 오셨던 부산 분께 우선순위가 있어서 그 분께 돌아갔어요.

그런데 운명처럼 그 다음날 알라딘에 들렀다가 딱 발견해서 바로 집어왔답니다. ㅋㅋㅋ

 


 

6. 네트워킹

 

네트워킹 시간에 피자는 빠질 수 없는 것 같아요 😆

 

너무 맛있었던 도미노 피자를 먹으면서 같은 테이블에 있던 분들과 이런저런 얘기를 나누고, 명함도 받아왔어요.
생각보다 피자가 꽤 많이 남아서, 끝나고 몇 조각 싸 와서 집에서 또 맛있게 즐겼답니다 😋

 

 

저에게는 스프링 배치 스터디가 취준 기간의 큰 기회(?)였던 것 같아요.

좋은 경험도 정말 많이 쌓을 수 있었으니까요.

 

짧다면 짧고, 길다면 긴 10주 동안 모두 정말 고생 많으셨고, 또 언제 어디선가 다시 만나요! 😊