정산 데이터, 이제 스트리밍으로 즐기세요! (feat. Kafka streams) 1편에 이어 2편을 진행하겠습니다.5단계. 지급룰 조회 및 세팅이제 필터링된 정산 대상 데이터에 지급룰 정보를 설정할 차례입니다. 지급룰은 API 호출을 통해 조회하는데, 동일한 규칙을 사용하는 데이터에 대해 중복 API 호출을 방지하고 네트워크 통신 비용을 절감하기 위해 지급룰을 별도로 관리하고자 합니다.이러한 요구사항을 해결하기 위해 Redis를 사용할 수도 있지만, 여기서는 Kafka Streams의 상태 저장소를 활용해 보겠습니다. 상태 저장소는 RocksDB와 같은 로컬 저장소를 사용하여 KTable 형태로 키-값 데이터를 관리하며, 변경 로그 토픽을 통해 상태를 복원하여 내결함성을 보장합니다. 이렇게 구성된 상태..
정산 데이터, 이제 스트리밍으로 즐기세요! (feat. Kafka streams)정산 데이터는 실시간으로 처리되지 않고, 매일 새벽 채널별 데이터 양에 따라 비실시간으로 생성되어 처리되고 있는데, 최근 파이프라인 방식으로 데이터를 처리하기 위해 Kafka Streams를 적용하면서, 기존에 비실시간으로 생성되던 정산 데이터를 실시간 스트림으로 생성하는 방안을 고민하게 되었습니다.이 글에서는 기존 Kafka 인프라에서 별도의 클러스터 없이 스트림 처리 애플리케이션을 구축할 수 있는 Kafka Streams의 장점을 소개하고, 정산 데이터 생성 과정에 적용하는 과정을 공유하고자 합니다.Kafka Streams?kafka streams는 kafka 위에서 동작하는 클라이언트 라이브러리로, 실시간 데이터를 스트..
Java to KotlinKotlin version먼저 코틀린 설정을 위해 아무 .java 파일 우클릭 후 Convert Java File to Kotlin File 기능을 사용하면 OK, Configure Kotlin In the Project로 코틀린 설정이 가능합니다.JDK 21을 사용할 예정이라서 Kotlin 버전은 2.1.0으로 설정하였습니다.※ Which versions of Kotlin are compatible with which versions of Java?IDE의 도움으로 kotlin 설정을 마치면 build.gradle, settings.gradle 파일에 코틀린 설정이 추가됩니다.Kotlin 설정 및 gradle.kts로 변환䷿AS-IS) build.gradleplugins { ..
Kotlin 토이 프로젝트에 Kotlin 언어를 적용해볼 예정이다. 하지만.. Kotlin에 대해 아는게 0.1도 없기에.. 작년 Jason 님이 우아한 테크 세미나에서 발표하신 내용을 기반으로 간략하게 정리 후 시작해보려고 한다. 어디 가서 코프링 매우 알은체하기! : 9월 우아한 테크 세미나 이 발표를 보고 코프링 매우 알은체하며 프로젝트를 진행해야지 🤠 Basic class Person(val name: String, val age: Int = 1) { var name: String? = null } val : 파라미터 읽기 전용 val age: Int = 1 : 파라미터 기본 인자 var : 변경 가능 프로퍼티 String? : null 이 될 수 있는 타입 Item 1. 표준 라이브러리 코틀린 ..