NextJS - ReferenceError: File is not defined 해결하기 작성 일자 : 2024년 12월 21일 (이미지) 어떤 문제가 발생했는가?Answer: NextJS에서 Production 서버에서만 ReferenceError: File is not defined 에러 발생 CloudWatch 로그ReferenceError: File is not definedat 40901 (/app/.next/server/chunks/438.js:1:5746)at Function.t (/app/.next/server/webpack-runtime.js:1:128)at process.processTicksAndRejections (node:internal/process/task_queues:95..
분류 전체보기
GithubActions - ERROR: failed to solve: process "/dev/.buildkit_qemu_emulator... 해결하기 작성 일자 : 2024년 12월 19일 (이미지) 어떤 문제가 발생했는가? 발단: Github Actions에서 NextJS Docker 이미지 빌드docker buildx build --platform linux/arm64 -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG . --push -f $DOCKER_FILE 에러 메시지prod.Dockerfile:30-------------------- 29 | 30 | >>> RUN \ 31 | >>> if [ -f yarn.lock ]; then yarn run bu..

스프링 - Redission 분산락으로 동시성 문제 해결하기 예시 작성 일자 : 2024년 12월 13일 의존성 추가 dependencies { implementation 'org.redisson:redisson-spring-boot-starter:3.40.1'} spring-boot-starter-data-redis는 redisson-spring-boot-starter에 의존성을 가지고 있기 때문에 별도로 추가하지 않아도 됩니다. 프로퍼티 파일 작성 spring: data: redis: host: ${REDIS_HOST} port: 6379 password: ${REDIS_PASSWORD} RedisConfig 클래스 작성 @Configuration@Req..

스프링 - Redis CacheManager ClassCastException 해결하기 작성 일자 : 2024년 12월 07일 Cacheable 어노테이션 스프링에서는 @Cacheable 어노테이션을 사용하여 아래의 예시와 같이 메서드의 리턴 값을 캐싱할 수 있습니다.@Cacheable(value = "latest-post", key = "#root.methodName")public List getLatestPosts() { List posts = postRepository.findAllByOrderByCreatedAtDesc(); return posts;} Redis를 캐시 스토어로 사용할 때, cacheName이 latest-post인 캐시 하나만 사용하는 경우에는 문제가 발생하지 않지..

스프링 - LLM Response를 Redis Streams와 SSE로 스트리밍 해보자 작성일자 : 2024년 11월 25일 개요 OpenAI, Claude와 같은 LLM API 제공자들은 응답 형태로 메세지 스트림을 제공하기도 합니다. 서비스의 프론트엔드와 LLM API 사이에서, 스프링부트를 통해 요청을 핸들링하고 싶은 경우에 Redis Streams와 SSE를 활용하여 프론트엔드로 메세지를 스트리밍할 수 있습니다. 이번 포스팅에서는 LLM API의 응답을 Redis Streams와 SSE로 스트리밍하는 방법을 알아보겠습니다. 왜 Redis Streams를 사용하게 되었는가? 상황 프론트엔드로의 메세지 스트림은 일반적인 HTTP 요청-응답 방식, 또는 SSE(Server-Sent Events)..

Redis Pub/Sub 과 Redis Streams 작성일자 : 2024년 11월 24일 개요 Redis는 캐시 데이터 저장소로 널리 알려져 있지만, 단순한 데이터 캐싱 그 이상으로 활용할 수 있습니다. Redis는 메시징 및 이벤트 중심 아키텍처를 지원하기 위해 Redis Pub/Sub와 Redis Streams 두 가지 기능을 제공합니다. 이번 포스팅에서는 Redis Pub/Sub와 Redis Streams의 주요 차이점, 각각의 사용 시점, 장단점을 자세히 살펴보고, 어떤 상황에서 어떤 기능을 선택해야 할지 알아보겠습니다. Redis Pub/SubRedis Pub/Sub은 Publisher와 Subscriber가 특정 채널을 통해 메시지를 주고받는 방식으로 작동합니다. 구조Publish..

스프링 RabbitMQ 연동하기 작성 일자 : 2024년 11월 17일 본 포스팅에서 다루는 내용RabbitMQ 도커 컴포즈 파일 작성하기관련 의존성 추가하기프로퍼티 파일 작성하기RabbitMQConfig 작성하기Message Model 및 Producer/Consumer 작성하기사용 예시 RabbitMQ 도커 컴포즈 파일 작성하기 rabbitmq:4.0.3-management 이미지를 사용하여 RabbitMQ를 도커 컨테이너로 실행하기 위한 docker-compose.yml 파일을 작성합니다. management 는 RabbitMQ의 Management Plugin을 사용할 수 있도록 합니다. version: '3.8'services: rabbitmq: image: rabbitmq:4.0.3..