@Lob 개념 및 활용
@Lob는 JPA에서 필드가 대용량 데이터(LOB)임을 선언해 TEXT/CLOB 또는 BLOB로 저장되게 하는 매핑 애노테이션이다. MySQL은 글자 수가 아닌 바이트 기준이며 utf8mb4에서 한글은 약 3바이트/자라 TEXT(64KB)는 대략 2만 자 수준이다. 목록/검색/캐시까지 함께 설계해야 한다.
@Lob는 JPA에서 필드가 대용량 데이터(LOB)임을 선언해 TEXT/CLOB 또는 BLOB로 저장되게 하는 매핑 애노테이션이다. MySQL은 글자 수가 아닌 바이트 기준이며 utf8mb4에서 한글은 약 3바이트/자라 TEXT(64KB)는 대략 2만 자 수준이다. 목록/검색/캐시까지 함께 설계해야 한다.
4편에서는 payment-command가 결제 성공 이벤트(PaymentCapturedEvent)를 Kafka(payment-events)로 발행하고, order-command가 이를 구독해 MySQL 주문 상태를 PAID로 갱신한 뒤 OrderPaidEvent를 order-events로 재발행합니다. order-query는 이벤트 타입을 분기 소비해 Redis Read Model을 PAID로 업데이트하며 “결제→주문반영→조회갱신” 체인을 완성합니다.
3편에서는 order-command가 주문을 MySQL(JPA)에 저장하고 Kafka로 OrderCreatedEvent를 발행, order-query가 이를 구독해 Redis Read Model을 갱신합니다. 즉 “쓰기→이벤트→읽기 모델→조회” CQRS 핵심 흐름을 완성합니다.