본문 바로가기
728x90
반응형

전체 글416

[SpringBoot] Kafka로 분산형 데이터 처리하기 (4) - SpringBoot에 Kafka Producer 사용 환경 설정 안녕하세요. J4J입니다. 이번 포스팅은 kafka로 분산형 데이터 처리하기 네 번쨰인 spring boot에 kafka producer 사용 환경 설정하는 방법에 대해 적어보는 시간을 가져보려고 합니다.   이전 글 [SpringBoot] Kafka로 분산형 데이터 처리하기 (1) - Kafka란 무엇인가?[SpringBoot] Kafka로 분산형 데이터 처리하기 (2) - Virtual Box에서 Kafka 설치하기[SpringBoot] Kafka로 분산형 데이터 처리하기 (3) - Kafka에서 사용하는 명령어    Kafka Producer 란 ? 이전 글들에서 적어두 것처럼 kafka producer는 kafka의 partition에 저장되는 레코드를 전달하는 주체를 의미합니다. 즉, consu.. 2024. 9. 17.
[SpringBoot] Kafka로 분산형 데이터 처리하기 (3) - Kafka에서 사용하는 명령어 안녕하세요. J4J입니다. 이번 포스팅은 kafka로 분산형 데이터 처리하기 세 번째인 kafka에서 사용하는 명령어에 대해 적어보는 시간을 가져보려고 합니다.   이전 글 [SpringBoot] Kafka로 분산형 데이터 처리하기 (1) - Kafka란 무엇인가?[SpringBoot] Kafka로 분산형 데이터 처리하기 (2) - Virtual Box에서 Kafka 설치하기    들어가기에 앞서 kafka에서 사용되는 모든 명령어는 kafka가 설치되어 있는 경로를 기반으로 실행할 수 있습니다. 이전 글을 통해 kafka를 설치하신 분들이라면 다음 명령어를 통해 kafka 설치 경로로 이동 후 명령어를 사용해 주시면 됩니다. $ cd /usr/local/kafka    Kafka 브로커 (Broker).. 2024. 9. 3.
[SpringBoot] Kafka로 분산형 데이터 처리하기 (2) - Virtual Box에서 Kafka 설치하기 안녕하세요. J4J입니다. 이번 포스팅은 kafka로 분산형 데이터 처리하기 두 번째인 virtual box에서 kafka 설치하는 방법에 대해 적어보는 시간을 가져보려고 합니다.   이전 글 [SpringBoot] Kafka로 분산형 데이터 처리하기 (1) - Kafka란 무엇인가?    Virtual Box 설정하기 spring에서 kafka를 연동하여 사용하기 위해 kafka를 구축해 보겠습니다. kafka를 구축하기 위해 해볼 수 있는 방법은 다양하게 존재합니다. 대표적으로 aws에서 제공해 주는 완전관리형 서비스인 msk도 존재하고, 그 외에도 ec2 등의 서버 등을 통해 자체 구축하는 경우도 있습니다. 이번에 저 같은 경우는 자체 구축을 진행하려고 하며, ec2 등을 통해 서버를 할당받지 않고.. 2024. 8. 25.
[SpringBoot] Kafka로 분산형 데이터 처리하기 (1) - Kafka란 무엇인가? 안녕하세요. J4J입니다. 이번 포스팅은 kafka로 분산형 데이터 처리하기 첫 번째인 kafka란 무엇인가에 대해 적어보는 시간을 가져보려고 합니다.   Kafka란 ? kafka는 실시간 데이터 스트리밍 처리를 도와주는 분산형 스트리밍 플랫폼입니다. 대규모 스트리밍 애플리케이션 구축을 가능하도록 도와주며 실시간 데이터 스트리밍, 메시징 시스템, 로그 수집 등 다양한 곳에서 활용될 수 있습니다.   kafka는 2011년 링크드인 (LinkedIn)에서 처음 개발되었습니다. 하루에 1조 이상의 대용량으로 생성되는 데이터들을 처리해야 되는 링크드인에서는 파편화된 데이터 수집 및 처리를 하기 위해 현존하던 다양한 메시징 플랫폼과 ETL 툴들을 적용하여 아키텍처를 구성했다고 합니다. 하지만 초기에는 문제가 .. 2024. 8. 8.
[SpringBoot] Redis 테스트 환경 구축하기 (2) - Test Container 안녕하세요. J4J입니다. 이번 포스팅은 redis 테스트 환경 구축하기 마지막인 test container에 대해 적어보는 시간을 가져보려고 합니다.   관련 글 [SpringBoot] Redis 사용하기 (1) - Redis란 무엇인가?[SpringBoot] Redis 사용하기 (2) - Redis Repository 사용하기[SpringBoot] Redis 사용하기 (3) - Redis Template 사용하기[SpringBoot] Redis 사용하기 (4) - Redis Cache Manager 사용하기    이전 글 [SpringBoot] Redis 테스트 환경 구축하기 (1) - Embedded    Test Container란 ? test container는 docker 컨테이너 기반의 독립.. 2024. 7. 27.
[SpringBoot] Redis 테스트 환경 구축하기 (1) - Embedded 안녕하세요. J4J입니다. 이번 포스팅은 redis 테스트 환경 구축하기 첫 번째인 embedded에 대해 적어보는 시간을 가져보려고 합니다.   관련 글 [SpringBoot] Redis 사용하기 (1) - Redis란 무엇인가?[SpringBoot] Redis 사용하기 (2) - Redis Repository 사용하기[SpringBoot] Redis 사용하기 (3) - Redis Template 사용하기[SpringBoot] Redis 사용하기 (4) - Redis Cache Manager 사용하기    Redis Embedded란 ? redis embedded는 redis 서버를 별도로 필요로 하지 않고 애플리케이션 내부에서 직접 redis 서버가 동작되는 환경을 의미합니다. redis embedd.. 2024. 7. 7.
[SpringBoot] Redis NOAUTH HELLO must be called with the client already authenticated 이슈 안녕하세요. J4J입니다. 이번 포스팅은 redis에서 발생했던 이슈에 대해 적어보는 시간을 가져보려고 합니다.   이슈 원인 redis를 사용하기 위해 서버 구축부터 시작하여 spring 프로젝트에 다양한 설정들을 추가해볼 수 있습니다. 제목과 관련된 이슈는 여러 가지 설정들을 해보면서 제가 마주했던 것 중 하나입니다.   먼저 저는 spring 프로젝트 내부에 redis 사용 환경 설정을 해보면서 다음과 같은 에러 메세지를 확인할 수 있었습니다. org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redisat org.springframework.data.redis.connection.lettuce.L.. 2024. 6. 30.
[SpringBoot] Querydsl에서 페이징 처리하기 안녕하세요. J4J입니다. 이번 포스팅은 querydsl에서 페이징 처리하는 방법에 대해 적어보는 시간을 가져보려고 합니다.   Request 처리 방법 querydsl을 사용하는 경우 페이징 처리 하는 방법이 JPA 만을 사용하는 경우보다 자유성이 더 생길 수 있습니다. 하지만 일반적으로 querydsl을 사용할 때도 JPA 만을 이용하여 페이징 처리를 할 때와 동일하게 Pageable 인터페이스를 활용합니다.   JPA를 이용하여 데이터 처리를 수행하시는 분들이라면 Pageable 인터페이스가 무엇인지에 대해 대부분 많이 알고 계실 겁니다. Pageable에 대해 간단하게만 얘기해 본다면 spring에서 제공해 주는 페이징 처리를 하기 위해 페이지네이션과 관련된 기본적인 정보들을 담아둔 인터페이스입니.. 2024. 6. 5.
[SpringBoot] Shedlock을 이용하여 분산 환경 배치 처리하기 안녕하세요. J4J입니다. 이번 포스팅은 shedlock을 이용하여 분산 환경 배치 처리하는 방법에 대해 적어보는 시간을 가져보려고 합니다.   관련 글 [SpringBoot] SpringBatch 사용하기 (1) - Scheduler를 이용하여 Tasklet, Chunk 배치 만들기[SpringBoot] SpringBatch 사용하기 (2) - Job Parameter 활용 및 동일 Job 반복 실행[SpringBoot] SpringBatch 사용하기 (3) - Quartz로 배치 만들기[SpringBoot] SpringBatch 사용하기 (4) - Quartz로 클러스터링 처리하기    Shedlock 이란? shedlock은 분산 환경에서 스케줄링 처리가 된 여러 task 들을 동시에 최대 1번만 .. 2024. 5. 19.
[SpringBoot] Redis 사용하기 (4) - Redis Cache Manager 사용하기 안녕하세요. J4J입니다. 이번 포스팅은 redis 사용하기 마지막인 redis cache manager 사용하는 방법에 대해 적어보는 시간을 가져보려고 합니다.   이전 글 [SpringBoot] Redis 사용하기 (1) - Redis란 무엇인가?[SpringBoot] Redis 사용하기 (2) - Redis Repository 사용하기[SpringBoot] Redis 사용하기 (3) - Redis Template 사용하기    Redis Cache Manager란 ? redis cache manager는 spring에서 캐싱을 적용하기 위해 제공해주고 있는 cache manager의 저장소를 redis로 변경하여 동일한 방식으로 캐싱 관리를 제공해 주는 모듈입니다. redis cache manage.. 2024. 5. 15.
[SpringBoot] Redis 사용하기 (3) - Redis Template 사용하기 안녕하세요. J4J입니다. 이번 포스팅은 redis 사용하기 세 번째인 redis template 사용하는 방법에 대해 적어보는 시간을 가져보려고 합니다.   이전 글 [SpringBoot] Redis 사용하기 (1) - Redis란 무엇인가?[SpringBoot] Redis 사용하기 (2) - Redis Repository 사용하기    Redis Template이란 ? redis template은 redis와 상호 작용할 수 있는 설정 및 기능들의 인터페이스를 제공해 주는 클래스입니다. redis template이 무엇인지에 대해 알아보기 위해 먼저 이전 글에서 작성했던 redis repository 비교해 보겠습니다.   먼저 redis와 통신하기 위한 사용성 및 관리 측면입니다. redis rep.. 2024. 5. 13.
[SpringBoot] Redis 사용하기 (2) - Redis Repository 사용하기 안녕하세요. J4J입니다. 이번 포스팅은 redis 사용하기 두 번째인 redis repository 사용하는 방법에 대해 적어보는 시간을 가져보려고 합니다.   이전 글 [SpringBoot] Redis 사용하기 (1) - Redis란 무엇인가?    Redis Repository란 ? redis repository는 인터페이스 기반으로 redis의 CRUD 처리를 수행하는 방식을 제공합니다. redis repository와 가장 유사한 방식으로 사용되는 것은 jpa repository가 있습니다.   jpa repository의 상속 관계를 살펴보면 상위에 ListCrudRepository와 CrudRepository 등이 존재합니다. 그리고 redis repository는 CrudRepository.. 2024. 5. 12.
[SpringBoot] Redis 사용하기 (1) - Redis란 무엇인가? 안녕하세요. J4J입니다. 이번 포스팅은 redis 사용하기 첫 번째인 redis란 무엇인가에 대해 적어보는 시간을 가져보려고 합니다.   Redis란 ? redis는 key-value 형태의 오픈 소스 데이터베이스 중 하나로 대중적으로 많이 알려진 mysql, mongo 등과 같은 데이터 주 저장소가 디스크 기반이 아닌 메모리 기반의 데이터베이스 중 하나입니다. 메모리 기반의 redis를 사용하는 주 목적은 캐싱 처리를 통해 더 빠른 속도로 비즈니스 로직 처리를 수행하기 위함입니다. 디스크보다는 메모리로 접근하는 것이 더 빠르기 때문에 읽기 및 쓰는 속도가 메모리 기반의 데이터베이스가 아닌 것들보다 더 빠르게 동작됩니다. 또한 한번 처리가 완료된 결과물을 캐싱 처리하여 동일한 목적의 요청이 전달될 경우.. 2024. 5. 11.
[Git] patch 파일로 변경 사항 관리하기 안녕하세요. J4J입니다. 이번 포스팅은 patch 파일로 변경 사항 관리하는 방법에 대해 적어보는 시간을 가져보려고 합니다.   Git Patch 파일이란? git patch 파일은 소스 코드 작업으로 인해 발생된 변경 사항을 저장 및 관리하는 용도로 사용되는 파일입니다. 단순하게 얘기했을 때 "git diff" 명령어를 이용하여 commit들 사이에 발생된 변경 사항을 저장하는 파일이라고 이해해볼 수 있습니다.   변경 사항에 대해 확인하고 싶을 때 "git diff" 명령어를 이용하면 다음과 같은 결과들을 볼 수 있습니다. 그리고 patch 파일은 출력되는 다음 내용들을 그대로 저장하고 있다고 생각해 주시면 됩니다. diff --git a/src/App.tsx b/src/App.tsxindex b6.. 2024. 5. 9.
[React] SSE (Server-Sent Events) 사용하여 실시간 통신하기 안녕하세요. J4J입니다. 이번 포스팅은 sse (server-sent events) 사용하여 실시간 통신하는 방법에 대해 적어보는 시간을 가져보려고 합니다.   관련 글 [SpringBoot] SSE (Server-Sent Events) 사용하여 실시간 통신하기    들어가기에 앞서 해당 글에서는 sse API가 존재할 때 react에서 어떻게 활용할 수 있는지에 대해서 적어보려고 합니다. 만약 sse에 대한 기본 개념에 대해서 먼저 알고 싶으신 분들은 위의 링크를 참고해 주시면 됩니다.    SSE (Server-Sent Events) 사용 환경 설정 react에서 sse 사용 환경 설정하는 방법에 대해 적어보겠습니다. sse API는 관련 글에서 확인할 수 있는 spring에서 제공해주는 API를 .. 2024. 5. 8.
[SpringBoot] SSE (Server-Sent Events) 사용하여 실시간 통신하기 안녕하세요. J4J입니다. 이번 포스팅은 sse (server-sent events) 사용하여 실시간 통신하는 방법에 대해 적어보는 시간을 가져보려고 합니다.   관련 글 [React] SSE (Server-Sent Events) 사용하여 실시간 통신하기    SSE (Server-Sent Events) 란? sse는 서버로부터 클라이언트에 실시간으로 데이터를 전달할 수 있는 기술 중 하나입니다. 일반적으로 sse와 많이 비교대는 것은 socket이 존재합니다. 이해를 먼저 돕기 위해 socket과 sse의 특징들에 대해서 정리하면 다음과 같습니다.  SocketSSE (Server-Sent Events)프로토콜sockethttp데이터 전달 방향client와 server 간 양 방향 통신 가능server.. 2024. 5. 7.
[SpringBoot] @DataJpaTest In-Memory DB를 활용하여 테스트하기 안녕하세요. J4J입니다. 이번 포스팅은 @DataJpaTest In-Memory DB를 활용하여 테스트하는 방법에 대해 적어보는 시간을 가져보려고 합니다.   관련 글 [SpringBoot] Layer별 테스트 코드 작성하기 (1) - JPA를 이용한 Repository 테스트    들어가기에 앞서 @DataJpaTest 어노테이션을 활용하여 Repository 테스트 환경을 구성하는 방법은 위의 관련 글 링크에서 자세하게 확인할 수 있습니다. 기본적인 구성 방법에 대해 궁금하셨던 분들은 링크를 참고해 주시면 됩니다. 해당 글에서는 @DataJpaTest를 활용할 때 우리가 프로젝트에서 사용하는 실제 물리 DB가 아닌 in-memory DB를 활용하여 테스트하는 방법에 대해 적어보려고 합니다.    I.. 2024. 5. 6.
[SpringBoot] Thread Local을 이용하여 Thread 별 독립적으로 변수 관리하기 안녕하세요. J4J입니다. 이번 포스팅은 thread local을 이용하여 thread 별 독립적으로 변수 관리하는 방법에 대해 적어보는 시간을 가져보려고 합니다.   Thread Local 이란? thread local은 각각의 thread 내부에서는 전역적으로 공유되지만 서로 다른 thread에게는 공유되지 않는 저장소를 의미합니다. thread local은 일반적으로 thread 간 발생할 수 있는 동시성 문제를 해결하기 위해 사용될 수 있습니다. 예를 들어 서로 다른 thread가 동시에 동일한 저장소를 바라보고 있을 때, 다음과 같은 상황이 발생할 수 있습니다.    thread A 입장에서는 저장했던 데이터를 그대로 전달받아 내부 로직에 사용하고 싶었지만, 동시에 thread B의 데이터가 저.. 2024. 5. 4.
728x90
반응형