목록2024/10 (6)
ballqs 님의 블로그
소나클라우드(SonaCloud)란?소나클라우드(SonaCloud)는 SonarQube와 관련된 클라우드 기반의 코드 품질 관리 플랫폼입니다. 소나클라우드를 사용하여 코드 품질을 분석하고, 버그 및 코드 스멜을 식별할 수 있습니다. SonaCloud 가입 및 로그인 SonarCloud Online Code Review as a Service ToolSonarCloud extends your CI/CD workflow with an online code review solution that easily integrates into your cloud DevOps platform, to provide code review as a service & deliver clean code consistently an..
Redis Cluster 란?데이터의 고가용성과 분산 처리를 위해 Redis가 제공하는 기능이다.이를 통해 여러 노드에 데이터를 분산 저장하고, 장애 발생 시 자동으로 복구하거나 재구성할 수 있는 클러스터 환경을 제공한다. Redis Cluster 특징데이터 샤딩 (Sharding)Redis Cluster는 데이터를 여러 노드에 분산해서 저정하는 방식이다. 전체 키 공간을 16,384개의 슬롯(Slot)으로 나누고, 각 노드가 이 슬롯 중 일부를 담당한다. 키는 해시 함수에 의해 슬롯 중 하나에 매핑되고, 해당 슬롯을 가진 노드에 저장된다. 이를 통해 여러 노드에 데이터를 분산할 수 있다. 고가용성 (High Availability) Redis Cluster는 자동으로 장애 조치를 할 수 있다. 노드가..
격리 수준이란?다른 트랜잭션과 어떻게 상호작용하는지 결정하는 정책 격리 수준 단계 READ_UNCOMMITTED (읽기 미확정)가장 낮은 격리 상태이며 트랜잭션이 아직 커밋되지 않은 데이터를 다른 트랜잭션에서 읽을 수 있다. 더티 리드(Dirty Read) 현상이 발생할 수 있습니다. 이는 한 트랜잭션이 아직 커밋되지 않은 데이터를 읽었을 때, 그 트랜잭션이 롤백되면 잘못된 데이터를 읽은 것이 된다. 트랜잭션 1SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;SET autocommit = 0;# TRANSACTION 시작START TRANSACTION;# 조회SELECT * from course;# UPDATEUPDATE course SET name=..
공부를 하다가 Redis로 동시성 문제 라는 키워드를 알게되서 궁금해서 공부를 하게 되었다.그러면 Redisson이 뭔지? 이에 대해 알아보자.Redisson이란?Redisson은 Redis를 위한 Java 클라이언트 라이브러리로, Redis의 기능을 보다 직관적으로 사용할 수 있도록 돕는다. 분산 객체, 분산 잠금, 비동기 API 등을 제공하며, 이를 통해 개발자는 복잡한 분산 시스템을 손쉽게 구현할 수 있다. Redisson의 주요 특징 분산 객체 RMap: 키-값 쌍을 저장할 수 있는 객체로, Java의 Map과 유사하게 동작한다.RSet: 중복을 허용하지 않는 집합 구조로, Java의 Set과 유사하다.RQueue: 큐 구조로, FIFO 방식으로 데이터를 저장하고 처리할 수 있다. 분산 잠금 ..
Redis를 이래저래 공부를 해보았다가 다시 글을 쓰는건 오랜만인듯 하다.무려... kafka , RabbitMQ 등을 공부하다가 Redis에도 Message Queue 라는 통신 방법이 있다는 것을 알고 검색해서 따라 해보았다.이전 Redis 작성글 : https://ballqs.tistory.com/49 Message Queue란 무엇인가? Message Queue는 애플리케이션 간 비동기 통신을 지원하는 시스템입니다. 보통 두 애플리케이션 사이에서 메시지를 보내고 받는 역할을 하며, 발신자는 메시지를 큐에 보내고 수신자는 이 큐에서 메시지를 가져가 처리합니다. 메시지 큐는 데이터를 임시로 저장하는 방식으로, 발신자와 수신자가 동시에 통신할 필요 없이 작업을 처리할 수 있게 해줍니다. Message..
Spring Boot의 @Async 이해 및 활용@Async는 Spring에서 비동기 작업을 처리하는 기능을 제공하는 어노테이션입니다. 이 어노테이션을 메서드에 적용하면, 해당 메서드는 별도의 스레드에서 비동기적으로 실행됩니다. 이를 통해 메인 스레드의 작업이 차단되지 않으면서 동시에 다른 작업을 처리할 수 있어 애플리케이션의 성능과 응답성을 높일 수 있습니다.@Async 동작 원리Spring에서 @Async는 AOP(Aspect-Oriented Programming)와 스레드 풀을 활용하여 비동기 처리를 구현합니다. @Async가 붙은 메서드를 호출하면, Spring은 별도의 스레드를 생성하고 해당 메서드를 실행합니다. 이때, 메서드는 호출 즉시 반환되며, 메서드의 실제 실행은 백그라운드 스레드에서 처..