개발일지65 쿠폰 서비스의 쿠폰 발급 단계별 로직 개발 쿠폰 발급 로직 단계별 개발쿠폰 발급하는 로직을 3단계에 나누어 개발을 진행했다.각 단계별로 어떻게 개발을 했고 어떤 특징과 장단점이 있는지 알아보자.단계는 다음과 같다.1. v1 - db를 사용한 기본 구현 방법2. v2 - Redis를 이용한 분산락 방법3. v3 - Kafka를 통한 비동기 처리 방법 1. v1 - db를 사용한 기본 구현db 트랜잭션과 동시요청 처리에 초점을 맞춤쿠폰 정책의 잔여 수량을 확인하고 성공하면 db에 저장하고 실패하면 실패응답을 반환한다.동시성제어를 db 레벨에서만 처리하기 때문에 적절한 lock이 없다.그러므로 트랜잭션내 연산으로 동시성 문제를 최대한 방지하도록 개발함다음은 v1 의 issueCoupon 메서드이다.@Transactionalpublic Coupon is.. 2025. 4. 9. Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling (through reference c Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling (through reference chain: com.example.springbootredis.model.User["createdAt"]) Spring Boot에서 Redis에 데이터를 저장할 때, Jackson을 사용하여 객체를 JSON으로 직렬화(Serialization)하는 과정에서 .. 2025. 3. 16. Kafka와 SSE를 활용한 비동기 처리 이번 게시물에는 알람을 발생 시킬때 일반적으로kafka와 sse 를 사용한 방법이 적절한 방법인지 알아보자Kafka(카프카)란?Kafka는 Apache Software Foundation에서 개발한 오픈 소스 메시지 브로커 프로젝트로, 대용량의 실시간 처리를 가능하게 하는 분산 스트리밍 플랫폼이다. 즉, 분산 스트리밍 플랫폼이란 대량의 데이터를 실시간으로 수집, 처리, 전달하는 시스템을 의미한다. 카프카는 분산 메시징 시스템으로, 대용량 데이터의 비동기 처리에 최적화된 도구이다. 카프카를 사용하면 데이터 생산자(Producer)와 소비자(Consumer) 간의 메시지 교환을 효율적으로 처리할 수 있다. 이를 통해 실시간 데이터 스트리밍이 가능해지며, 시스템 간의 결합도를 낮추고 확장성을 높일 수 있다. .. 2025. 1. 7. npx create-react-app 디렉토리이름 (react 설치 에러 문제) npx create-react-app 디렉토리이름명령어로 react를 설치하려고 한다.그런데 다음과 같이 에러가 발생했다.taekgyu@taekgyuui-MacBookAir test-app % npx create-react-app . Creating a new React app in /Users/taekgyu/devProject/lecture/reactStudy/test-app.Installing packages. This might take a couple of minutes.Installing react, react-dom, and react-scripts with cra-template...added 1324 packages in 5s267 packages are looking for fun.. 2024. 12. 17. Kafka Stream 이란 Kafka Stream이란?Kafka Streams은 Apache Kafka에서 제공하는 스트림 처리 라이브러리이다.이를 통해 실시간 데이터 스트림(실시간으로 끊임없이 들어오는 데이터의 연속적인 흐름)을 쉽게 처리하고 변환하는 애플리케이션을 작성할 수 있다.Kafka Streams은 Kafka에 저장된 데이터를 처리하거나 데이터를 실시간으로 읽고 쓰는 데 사용되며, 다음과 같은 주요 특징을 갖는다:라이브러리 기반: 별도의 클러스터를 필요로 하지 않고, Java 애플리케이션 내부에 포함되어 실행된다.분산 처리: Kafka의 파티션 구조를 활용하여 확장 가능한 분산 처리가 가능하다.상태 관리: 스트림 처리 중 상태 정보를 저장하기 위해 RocksDB와 같은 내부 스토리지를 활용한다.배치 및 실시간 처리 통합.. 2024. 12. 5. Kafka 인스턴스 생성 과정 my_first_kafka의 보안 규칙에서인바운드 규칙 편집에서 추가해준다. kafka 의 9092portzookeeper의 2181 port 인스턴스를 연결해서 apt-get을 update한다ubuntu@ip-172-31-0-147:~$ sudo apt-get update ### root로 이동하고 jre를 설치한다.ubuntu@ip-172-31-0-147:~$ sudo suroot@ip-172-31-0-147:/home/ubuntu# apt-get install default-jre ### java 버전을 확인한다.root@ip-172-31-0-147:/home/ubuntu# java -versionopenjdk version "11.0.25" 2024-10-15OpenJDK Runtime Envir.. 2024. 11. 25. 이전 1 2 3 4 ··· 11 다음