목록클라우드네이티브 (3)
잡동사니
메시지 큐 기반 분산 시스템에서 설계하기 (feat. 멱등성Idempotency)안녕하세요. yeTi입니다.현대의 클라우드 네이티브 환경에서는 시스템 간의 통신이 더욱 복잡해지고 있습니다. 특히 마이크로서비스 아키텍처의 도입으로 인해 서비스 간 메시지 교환이 폭발적으로 증가하고 있으며, 이에 따라 메시지 큐를 활용한 비동기 통신의 중요성이 커지고 있습니다.하지만 분산 환경에서의 비동기 통신은 여러 가지 도전 과제를 안고 있습니다. 네트워크 지연, 시스템 장애, 메시지 중복 전송 등 다양한 문제가 발생할 수 있으며, 이러한 상황에서도 시스템의 일관성과 신뢰성을 보장해야 합니다.이러한 문제를 해결하기 위한 핵심 개념 중 하나가 바로 멱등성(Idempotency)입니다. 오늘은 메시지 큐를 활용한 비동기 통신..
안녕하세요. yeTi입니다.이번에는 스프링 부트(Sprint Boot) 기반 개발 환경에서 기존의 스레드 풀(Thread Pool) 방식을 사용하던 애플리케이션을 자바 21에서 도입된 가상 스레드(Virtual Threads) 방식으로 전환하는 과정을 알아보겠습니다.서론스프링 부트는 임베디드 서버를 제공합니다.그 중 많이 사용하는 톰캣 서버는 스레드 풀을 활용하여 웹 요청을 처리하는 구조를 가집니다. 그러나 자바 21에서 도입된 가상 스레드는 더 높은 동시성으로 하드웨어 자원의 효율성을 제공하며, 특히 I/O 바운드 애플리케이션에서 큰 성능 향상을 기대할 수 있습니다. 이번 포스팅에서는 스레드 풀 방식에서 가상 스레드 방식으로 전환하는 과정을 살펴보고, 전환시 유의해야 할 점들을 공유해 보겠습니다.스레드..
안녕하세요. yeTi입니다.클라우드 네이티브 애플리케이션의 발전과 함께, 경량 애플리케이션의 중요성이 점점 더 부각되고 있습니다. 동시에, 높은 동시성을 요구하는 현대 애플리케이션 환경에서는 컨텍스트 스위칭(Context Switching) 문제가 중요한 과제로 떠오르고 있습니다. 이번 포스팅에서는 클라우드 네이티브 애플리케이션에서 경량 애플리케이션의 중요성을 살펴보고, 컨텍스트 스위칭 문제가 대두된 원인을 분석하며, 프로그래밍 업계에서 이를 해결하기 위해 취하고 있는 방향을 논의하고자 합니다.경량 애플리케이션의 중요성자원 효율성클라우드 네이티브 애플리케이션은 확장성과 유연성이 중요한데, 이를 위해서는 자원을 효율적으로 사용하는 경량 애플리케이션이 필수적입니다. 경량 애플리케이션은 적은 메모리와 CPU ..