Java 3

[Backend] Redisson Pub/Sub 기반 분산 락

동시성 문제(Concurrency Issue), 그리고 분산 락(Distributed Lock)동일한 리소스에 여러 쓰레드가 동시에 접근하면 '동시성 문제'가 발생한다.'동시성 문제'란 예를 들어 하나의 쓰레드가 리소스를 수정하던 상황에서 다른 쓰레드가 수정 전의 리소스를 조회함으로서 서로 다른 리소스를 얻어가는 문제를 말한다.이러한 문제를 해결하는 데에는 여러 해결책이 있는데 그중 하나로  Java에서 사용되는 Redis 클라이언트인 Redisson를 사용하는 분산 락 방법에 대해 알아보겠다.Lettuce 기반 스핀 락(Spin Lock)?Spring Boot 2.0부터는 Netty 기반의 Lettuce가 Redis 기본 클라이언트로 사용됬다. Lettuce를 이용한 락 구현 시, 락을 획득하지 못한 ..

Backend 2024.11.30

[Java] 변수의 스코프(Scope)

스코프(Scope)란? 정말 간단히 말한다면 변수의 사용범위를 뜻한다.C언어에선 전역변수와 지역변수에 해당한다. 예시코드 public class ValableScopeExam{ int globalScope = 10; public void scopeTest(int value){ int localScope = 10; System.out.println(globalScope); System.out.println(localScpe); System.out.println(value); } } 다음 코드에서 보듯 'globalScope'변수는 메서드 밖에서 선언했고 'localScpe'변수와 'value'변수는 메서드 안에서 선언되었다. public class VariableScopeExam { int globalSc..

Java 2024.04.22

[Java] for each문

for문과 비교 아래 코드블록을 보면 //for 문 int[] age = {15, 19, 66, 7}; for (int i = 0; i < 4; i++) { System.out.println(i + "번째 사람의 나이는" + age[i] + "살 입니다."); } //for each 문 int[] age = {15, 19, 66, 7}; short i = 1; //위 for문에서 사용한 변수 'i'가 사라졌기 때문에 이를 대체하는 변수를 선언 for (int n:age) { System.out.println(i + "번째 사람의 나이는" + n + "살 입니다."); i++; //for문 예시에서 사용한 변수 'i'의 기능을 대체함 } for문은 for(초기값;조건식;증감식)의 구조로 작성하지만 for ..

Java 2024.04.17
반응형