뱅크샐러드가 게임을 만들 때 데이터 정합성을 유지하는 법 (feat. 낙관적 락)
현금성 게임 재화의 정합성을 위해 시간 차분 정산과 낙관적 락을 결합했습니다. 버전 기반 CAS 구현과 복제 지연·재시도 운영 원칙을 공유합니다.

현금성 게임 재화의 정합성을 위해 시간 차분 정산과 낙관적 락을 결합했습니다. 버전 기반 CAS 구현과 복제 지연·재시도 운영 원칙을 공유합니다.

뱅크샐러드는 게임형 앱테크 서비스의 데이터 정합성을 위해 낙관적 락을 적용했습니다. 버전 필드와 상태 분리, 시간 차분 정산으로 재시도 없이도 안정성을 확보했습니다.

테스트를 불확실성을 줄이는 피드백 순환 고리이자 비즈니스 리스크 관리 수단으로 설명했습니다. Go의 Table Driven Test, testify, go-cmp, suite 기반 테스트 방식을 소개합니다.

테스트를 불확실성을 줄이는 피드백 순환 고리로 설명하고, 비즈니스 리스크 감소와 연결해 정리했습니다. 또한 Go에서 Table Driven Test, testify, suite, go-cmp를 활용하는 방법을 소개했습니다.

Go 서버 개발에서 안전한 오류 처리와 고루틴, HTTP 연결 관리 원칙을 정리했습니다. 테스트·네이밍·프로젝트 구조까지 일관된 코드베이스를 위한 컨벤션을 제시합니다.
뱅크샐러드 코어 백엔드 팀의 Go 코딩 컨벤션을 소개한 글입니다. Go와 gRPC 기반 백엔드 개발에서 코드 일관성을 높이기 위한 기준을 정리했습니다.

MySQL 이력 데이터를 S3·Athena 구조로 옮기며 발생한 객체 호출 비용 문제를 분석했습니다. user id 버케팅과 일별 파티션으로 Athena 비용을 약 700배 줄였습니다.
이력성 데이터 증가로 MySQL 부담이 커져 S3와 Athena로 저장·조회 구조를 옮긴 사례를 다뤘습니다. Spark bucketing으로 필요한 데이터만 읽도록 최적화하는 흐름을 소개했습니다.

분석 테이블을 API로 제공하는 dataserving 플랫폼 구축 과정을 소개했습니다. protobuf 명세와 데이터 파이프라인으로 다양한 데이터 제품 개발을 지원했습니다.

분석 데이터를 프로덕션에서 쉽게 쓰기 위한 데이터서빙 서비스 구축 과정을 소개합니다. 분석 테이블을 API로 제공하기 위해 S3, Airflow, Spark 등을 활용했습니다.

수동 Notebook 분석의 인적과오와 확장성 문제를 자동 실험 분석 파이프라인으로 해결했습니다. 지표 설정·데이터 준비·통계 계산을 분리해 신뢰성과 재사용성을 높였습니다.

Go·gRPC 기반 마이크로서비스에서 protobuf를 API 단일 원천으로 관리한 방식을 소개합니다. grpc-gateway와 interceptor로 REST 호환성 및 운영 관측성을 확보했습니다.
