전체 글(520)
-
Automic
다음과 같은 코드가 있습니다.int a = 1;int b = 2;a = b; 위 코드를 Intel CPU의 x86 어셈블리어로 변환하면, a = b; 코드는 메모리에서 값을 로드하고 저장하는 명령어로 변환됩니다.일반적인 32비트 x86 어셈블리어 코드로 표현하면 다음과 같습니다.mov eax, DWORD PTR [b] ; 변수 b의 값을 레지스터 eax에 로드mov DWORD PTR [a], eax ; eax의 값을 변수 a에 저장64비트 환경에서는 64비트 레지스터를 사용할 수도 있습니다.mov rax, QWORD PTR [b] ; 변수 b의 값을 rax 레지스터에 로드mov QWORD PTR [a], rax ; rax의 값을 변수 a에 저장여기서 DWORD PTR과 QWORD PTR은 ..
2025.03.20 -
Imperative Programming vs Declarative Programming
자바에서의 명령형 프로그래밍과 선언형 프로그래밍소프트웨어 개발에서 명령형 프로그래밍(Imperative Programming)과 선언형 프로그래밍(Declarative Programming)은 코드를 작성하는 두 가지 주요 패러다임입니다. 자바(Java)에서도 이 두 가지 패러다임을 모두 활용할 수 있으며, 각각의 방식이 가지는 특성과 차이점을 이해하는 것이 중요합니다. 1. 명령형 프로그래밍(Imperative Programming)📌 개념명령형 프로그래밍은 컴퓨터가 무엇을 어떻게 해야 하는지를 명시적으로 기술하는 방식입니다. 즉, "어떻게(How)" 문제를 해결할 것인지 절차적으로 지시하는 방식이 특징입니다.이 방식은 개발자가 프로그램의 실행 흐름을 직접 제어하며, 변수 할당, 루프, 조건문 등을 ..
2025.03.19 -
ThreadLocal and Resilience4j
🚦 Resilience4j로 Rate Limiter 패턴 완벽히 구현하기 (with Spring Cloud)마이크로서비스 환경에서 서비스의 안정성과 가용성을 유지하는 핵심 전략 중 하나가 바로 속도 제한(Rate Limiting)입니다. 속도 제한은 일정 시간 내 처리 가능한 요청의 수를 제한해, 서비스가 과부하되는 것을 막습니다.오늘은 Resilience4j 라이브러리를 이용한 Rate Limiter 패턴의 구현 방법을 소개합니다. 🔍🚀 ✅ 1. Rate Limiter 패턴이란?Rate Limiter 패턴은 지정된 시간 동안 서비스에 들어오는 요청 수를 제한하여, 과부하를 방지하는 설계 기법입니다.📌 AtomicRateLimiter (디폴트) 별도의 백그라운드 스레드를 추가하지 않고, 해당 요..
2025.03.16 -
Implementing the rate limiter pattern
🚀 [Spring Cloud + Resilience4j] Rate Limiter(속도 제한) 패턴 가이드 (서비스 과부하 방지하기)지난 포스팅에서 우리는 Resilience4j의 Circuit Breaker, Retry, Bulkhead, Fallback 패턴을 깊이 있게 다뤘습니다. 이번 포스팅에서는 서비스의 호출 속도를 제한하여 과부하를 방지할 수 있는 Rate Limiter(속도 제한) 패턴에 대해 자세히 알아보겠습니다! 📌✨ ⏱️ Rate Limiter 패턴이란 무엇인가?Rate Limiter 패턴은 지정된 시간 내 서비스가 처리할 수 있는 요청 수를 제한하는 방식입니다. 이를 통해 API가 갑작스러운 트래픽 증가로 인해 과부하 상태가 되거나 서비스 장애가 발생하지 않도록 보호할 수 있습니다...
2025.03.16 -
Implementing the retry pattern
🚀 [Spring Cloud + Resilience4j] Retry 패턴 완벽 가이드 (실패한 호출을 다시 시도하기)지난 포스팅에서는 Resilience4j의 Circuit Breaker, Bulkhead, Fallback 패턴을 깊이 있게 다뤘습니다. 이번에는 네트워크 문제나 일시적인 장애 시 서비스 호출을 다시 시도하는 Retry(재시도) 패턴에 대해 명확히 알아보겠습니다. 🔄 Retry(재시도) 패턴이란?Retry 패턴은 이름 그대로, 원격 서비스 호출에 실패했을 때 일정한 간격을 두고 여러 번 다시 시도하도록 설정하여 일시적인 장애(예: 네트워크 문제)를 극복하는 방식입니다.Retry 패턴의 핵심은 다음과 같습니다.💡 서비스 호출이 실패했을 때, 즉시 에러를 반환하지 않고 지정한 횟수만큼 재..
2025.03.16 -
99 퍼센타일(percentile)
🔍 99 퍼센타일(percentile)이란 무엇인가요?"99 퍼센타일"은 통계학에서 자주 사용되는 개념으로,측정된 전체 값 중에서 하위 99%에 해당하는 값 이하를 의미합니다.다시 말해, 전체 요청 중 99%는 이 시간 이하로 응답이 완료된다는 것을 의미합니다.예를 들어:웹 서비스 요청의 99 퍼센타일 지연 시간이 200ms라면,👉 전체 요청의 99%는 200ms 이하로 처리되고, 오직 상위 1%만 200ms보다 더 오래 걸렸다는 뜻입니다. 📌 위 공식에서 사용된 의미는?앞서 제공된 공식:(서비스가 정상일 때 피크 시간당 초당 요청 수 * 초당 99번째 percentile 지연 시간) + 오버헤드를 위한 소량의 추가 스레드여기서 "99퍼센트 타일 지연시간"이 의미하는 바는,👉 "최악의 상황(가장 ..
2025.03.16