올
올리브영
December 18, 20231회
확장할 수 있는 데이터 추출 서비스 구축 경험 공유
간단 소개
올리브영 파트너 플랫폼의 데이터 추출 서비스 개선 경험 공유: Spring Batch, Kafka를 활용한 비동기 방식 구현 및 성능 개선.
AI Summary
- 데이터 추출 서비스 개선 배경
- 기존 엑셀 추출 기능의 문제점: 데이터 양 증가로 인한 추출 속도 저하, 서버 부하 증가, 동기적 처리 방식의 한계.
- 개선 목표: 파트너사에게 더 나은 경험 제공, 안정적인 비동기 방식의 데이터 추출 서비스 구축.
- 개선 전략 및 구현
- 비동기 응답 프로세스: 브라우저 종료와 관계없이 백엔드에서 데이터 추출 처리, 재다운로드 기능 제공.
- 데이터 추출 서비스 분리: 엑셀 생성 서버를 별도로 구축하여 기존 서버의 로드 분산.
- Spring Batch: 데이터 추출에 유리한 Spring Batch를 사용하여 병렬 처리 (Partitioning) 구현.
- Kafka: Kafka를 이용하여 이벤트 기반으로 데이터 추출 작업을 관리하고 안정성 확보.
- Spring Batch Partitioning 및 이벤트 기반 실행
- Partitioning: 하나의 Job에서 다수의 Secondary를 생성하여 엑셀 생성 효율성 증대.
- JobExecutionListener: Job 실행 전후 임시 폴더 생성 및 상태 기록.
- Kafka Consume: 스케줄러 대신 Kafka 이벤트를 통해 배치 작업 실행.
- 이벤트 기반 방식: 배치 실행을 이벤트에 의해 트리거하여 유연성 확보.
Next Feeds

외부셀러 - 외부 스파크성 트래픽으로부터 내부 시스템을 보호하는 방법 1탄
외부 셀러 서비스가 스파크성 트래픽에 대응하기 위해 비동기 방식 및 서비스 분리를 적용한 과정과 결과를 설명합니다.
외부셀러스파크성 트래픽비동기AWS MSK유량제어
2023. 12. 15.
올리브영

Airflow Task failed Alert Mail 폭탄 회피하기
Airflow Task 실패 시 Alert mail 폭탄 문제를 해결하기 위해 DAG run 당 1회 Alert mail 발송 방안을 제시하고 구현 방법을 설명합니다.
AirflowAlert mailDAGTaskData Pipeline
2023. 12. 14.
네이버플레이스
앱 진입로직 개선(feat. RxSwift)
카카오헤어샵 iOS 앱의 진입 로직 개선 과정 공유. RxSwift를 활용하여 서버 장애 시 네트워크 에러 처리 및 사용자 경험 개선.
RxSwift앱 진입 로직네트워크 에러zip operatormerge operator
2023. 12. 14.
카카오헤어샵

MySQL 메이저 버전 업그레이드(MySQL 5 → MySQL 8) — 네이버 클라우드 플랫폼 Cloud DB for MySQL 실습
네이버 클라우드 플랫폼 Cloud DB for MySQL 환경에서 MySQL 5.7에서 8.0으로 메이저 버전 업그레이드 방법을 소개합니다.
MySQL업그레이드네이버 클라우드 플랫폼Cloud DBDatabase Migration
2023. 12. 14.
네이버클라우드플랫폼
![[여기보기] 적절한 식습관과 운동을 유지하듯 건강하게 WAS 로그 관리하기](https://netmarble.engineering/wp-content/uploads/2023/12/preview.png)
[여기보기] 적절한 식습관과 운동을 유지하듯 건강하게 WAS 로그 관리하기
WAS 로그를 건강하게 관리하는 방법: 적절한 로그 레벨/포맷 설정 및 필요 사용자만 접근 가능한 권한 설정의 중요성을 강조.
WAS로그 관리로그 레벨로그 포맷접근 권한
2023. 12. 13.
넷마블

팀 스터디, 1년간의 여정
올리브영 리테일플랫폼개발팀의 1년간의 팀 스터디 여정과 그 효과, 그리고 스터디를 통해 얻은 교훈을 공유합니다.
팀 스터디리테일플랫폼개발팀스프링 배치카프카코틀린
2023. 12. 13.
올리브영