Kafka - 이벤트 기반의 비동기 작업 처리 구조로 알림 기능 구현하기 (1)
·
dev/infra
Kafka를 적용하게 된 개인적인 문제의식과 수평적 확장성을 보장하는 이벤트 기반 비동기 작업 처리 구조 구축 과정, 그리고 이를 이용해 알림 기능을 구현한 사례를 기록하고자 한다. 이 과정에서 Kafka에 대해 공부하고 개인적으로 정리한 학문적인 내용까지 포함한다. Spring 프로젝트에서 알림 기능을 담당한 적이 있다. 당시 기능 구현에 있어서 기초적인 스키마는 다음과 같다. 알림은 멤버 단위로 관리되므로 멤버 엔티티와 관계 설정이 필요하다. 멤버를 직접 참조하는 알림 엔티티 구조를 사용할 경우, 모든 멤버에게 동일한 내용을 전달하는 공통 알림의 메시지가 레코드마다 중복 저장되고 심각한 공간 낭비가 발생한다. 따라서 메시지와 몇 개의 메타 정보를 저장한 별도의 알림 엔티티를 두고, 알림의 수신 관계..