컬
컬리
August 24, 20221회
컬리 검색이 카프카를 들여다본 이야기 2

간단 소개
컬리는 Kafka Streams를 도입하여 검색 인덱싱 파이프라인을 개선하고, 스프링을 통해 Kafka Streams를 효율적으로 관리 및 모니터링함.
AI Summary
- 검색 시스템 변경 요구사항과 Kafka Streams 도입
- 컬리는 검색 엔진 외부에서 메시지를 조합하여 인덱싱해야 했고, 이를 위해 Kafka Streams를 도입하여 데이터 처리 파이프라인을 구축함
- 초기에는 레디스를 중간 저장소로 활용했지만, Kafka Streams를 통해 더 효율적인 데이터 병합이 가능해짐
- Spring Kafka를 통한 Kafka Streams 관리 및 가시성 확보
- Kafka Streams가 예외로 인해 종료되었을 때, 스프링 애플리케이션의 상태는 정상으로 유지되는 문제점을 발견
@EnableKafkaStreams어노테이션을 사용하여 스프링이 Kafka Streams의 생명주기를 관리하도록 변경하고,KafkaStreamsHealthIndicator를 통해 헬스체크를 구현하여 가시성을 확보함
- 결론 및 기대 효과
- Kafka Streams를 통해 정보 병합을 쉽고 효과적으로 수행하고, 스프링을 통해 Kafka Streams 애플리케이션의 관리 및 모니터링이 가능해짐
- 팀 차원에서 다양한 시도를 통해 더 나은 검색 시스템 개발을 위한 기반을 마련함
Next Feeds
OpenAPI Specification을 이용한 더욱 효과적인 API 문서화
Swagger와 Spring REST Docs의 장점을 결합한 OpenAPI Specification 기반 API 문서화 구축 및 활용 방법을 제시합니다.
OpenAPI SpecificationSwaggerSpring REST DocsAPI 문서화restdocs-api-spec
2022. 8. 22.
카카오페이

제1회 뱅크샐러드 디자인 드레싱을 소개합니다
뱅크샐러드 디자인 챕터의 첫 커뮤니티 행사인 디자인 드레싱을 통해 팀 결속력을 강화하고, 디자인 비전을 공유하며 One Team으로 나아가기 위한 발판을 마련했다.
뱅크샐러드디자인 드레싱CDOOne Team조직문화
2022. 8. 22.
뱅크샐러드

바삭한 신입들의 동시성 이야기 - Swift편
Swift 5.5의 async/await은 GCD와 completion handler의 단점을 보완하고, 안전하고 효율적인 동시성 프로그래밍을 지원한다.
동시성async/awaitGCDCoroutineSwift Concurrency
2022. 8. 17.
데브시스터즈

스포카에서 Kotlin으로 JPA Entity를 정의하는 방법
Kotlin JPA Entity 정의 시 문제점과 해결 방안, 그리고 스포카의 Entity 정의 팁을 통해 더 나은 Entity 설계를 제시합니다.
KotlinJPAEntityORMHibernate
2022. 8. 16.
스포카
모델 서빙 최적화를 위한 프레임워크 선정과 서빙 성능 극대화하기
카카오페이의 모델 서빙 최적화 과정: 프레임워크 비교, Triton 선정 및 성능 극대화 전략을 통해 서비스 성능을 향상시킨 사례를 공유합니다.
모델 서빙Triton성능 최적화Dynamic BatchConcurrent Model Execution
2022. 8. 11.
카카오페이
자동화 테스트로 수 억 대의 디바이스 환경에서 살아남는 SDK 완성하기 - QA Engineer 인터뷰
AB180은 QA 엔지니어에게 성장 기회를 제공하며, 자동화 테스트 환경 구축 경험과 주도적인 업무 능력을 키울 수 있는 환경을 제공합니다.
QA 엔지니어자동화 테스트에어브릿지AB180SDK
2022. 8. 10.
AB180