본문 바로가기

Spring6

2. Kafka 주문 이벤트 1 Producer - 2 Consumer 실습 (spring, mysql) 🧪 Kafka 1 Producer - 2 Consumer 실습Spring Boot, Kafka, Docker 기반의 실습 프로젝트입니다.하나의 Producer가 Kafka 토픽에 메시지를 전송하면, 두 개의 서로 다른 Consumer가 각각의 목적에 따라 해당 메시지를 받아 처리하는 구조입니다.📁 프로젝트 구조2-single-producer-multi-consumer/├── order-producer/ # Kafka Producer - 주문 메시지 발행├── order-log-consumer/ # Kafka Consumer 1 - 로그 저장├── order-processing-consumer/ # Kafka Consumer 2 - 주문 처리├── docker-c.. 2025. 8. 7.
1. Kafka 주문 이벤트 1 Producer - 1 Consumer 실습 (spring, mysql) https://github.com/qpwisu/kafka-event-demohttps://github.com/qpwisu/kafka-event-demo✅ 1. 프로젝트 개요주제:Kafka를 활용한 주문 이벤트 처리 시스템 구축구성 요소:order-producer: 주문 요청을 받아 Kafka에 이벤트 전송 (Spring Boot + MySQL + Kafka)order-consumer: Kafka에서 주문 이벤트를 수신하여 로그 DB에 저장 (Spring Boot + MySQL)Kafka: 이벤트 중심 메시지 브로커MySQL: 각 모듈별 데이터 저장소 (eventdb, consumerdb)Docker Compose: Kafka, Zookeeper, 두 개의 MySQL 컨테이너 관리✅ 2. 시스템 흐름도[사.. 2025. 8. 6.
Spring MSA 멀티 모듈 레포 구성 방법 배경https://songacoding.tistory.com/199MSA 구조로 백엔드 spring 서버를 여러 모듈로 나누어 구축하려함 1. 멀티 모듈이란?• 모듈: 독립적으로 배포될 수 있는 코드의 단위• 멀티 모듈 프로젝트: 하나의 Root Module(부모)과 여러 개의 Sub Module(자식)로 구성된 프로젝트• Root Module은 프로젝트의 전체적인 설정을 관리하고, Sub Module은 각 서비스별로 기능을 담당함루트 프로젝트는 껍데기 역할만 하고 실제 실행되는 애플리케이션은 하위 모듈들2. 프로젝트 구성Root Module 생성• start.spring.io에서 프로젝트를 생성• Dependency에 Spring Web 추가Sub Module 추가• Sub Module을 만들고 dep.. 2025. 3. 27.
[오류해결] jpa N+1 문제 기본 지식N+1 문제 : 연관된 데이터를 조회할 때 불필요한 쿼리(select)가 다수 발생하는 성능 문제즉시로딩 (eager loading)엔터티를 조회할때 관련된 엔티티도 즉시 함께 로딩사용하지 않는 연관 데이터도 전부 로딩Order 엔티티를 조회(findall)할 때 모든 OrderItem이 조회됨개별적인 SELECT 쿼리가 반복적으로 실행지연로딩 (Lazy loading):연관데이터를 필요한 시점에 로딩Order 엔티티를 조회할 때 OrderItem은 로드되지 않음개별적인 SELECT 쿼리가 반복적으로 실행Order를 조회할 때 OrderItem에 대한 데이터는 로드하지 않고, OrderItem 필드는 프록시 객체로 남아 있습니다. 연관 데이터(OrderItem)를 접근하려고 하면 그 시점에 데이.. 2025. 3. 26.
[오류해결] Spring security CORS 문제 CORS란?CORS(Cross-Origin Resource Sharing) 오류는 웹 페이지가 다른 도메인의 리소스에 접근하려고 할 때 브라우저의 보안 정책에 의해 발생하는 오류이다프론트엔드의 IP가 123.456.789:3000 이고 백엔드 IP가 123.456.789:8080로 rest api 로 데이터를 전달시 브라우저에서 123.456.789:3000와 다른 123.456.789:8080의 도메인 접근을 막아서 생긴 오류이다프로토콜(예: http, https), 호스트(도메인 이름), 포트가 모두 같아야 CORS가 발생 안한다 해결방법도메인을 허용해줌 // securityconfig @Bean public CorsFilter corsFilter() { UrlBasedC.. 2025. 3. 25.
Kafka 개념 정리 및 실습 (카프카, spring, docker) 참고 블로그https://techblog.woowahan.com/17386/1. Kafka란?분산 스트리밍 플랫폼으로 대용량 데이터의 실시간 처리 및 전송을 지원하는 메시지 브로커 시스템Message Queue전통적인 mesaage queue와 다르게  메시지 큐의 장점과 로그 시스템의 특성을 결합한 분산 스트리밍 플랫폼항목전통적 MQkafka MQ메시지 저장소비후 삭제됨로그처럼 유지처리속도낮음(트렌젝션보장)높음(분산처리)확장성보로커 개수 제한적분산처리 가능순서보장FIFO지원Partition 단위로 순서 보장메세지 전달의 중앙 플랫폼으로 두고 필요한 모든 데이터 시스템과 연결된 파이프라인을 만드는 것을 지향함Kafka는 확장성, 고성능, 데이터 스트리밍 처리에 최적화된 시스템으로 메시지 큐뿐만 아니라 데.. 2025. 2. 12.