SpringBoot (9) 썸네일형 리스트형 Mockito의 엄격 모드(Strict Stubbing) Mockito를 사용해 테스트를 작성하다 보면 아래와 같은 에러를 한 번쯤은 마주치게 됩니다.org.mockito.exceptions.misusing.UnnecessaryStubbingException:Unnecessary stubbings detected.혹은org.mockito.exceptions.misusing.PotentialStubbingProblem:Strict stubbing argument mismatch.이 에러 메시지의 원인은 "엄격한 stubbing 검사", 즉 Mockito의 Strict Stubbing 모드 때문입니다. 이 글에서는 엄격 모드가 무엇이고 왜 필요한지, 그리고 실제 현업에서 어떻게 대응하면 좋은지를 정리합니다.🔍 엄격 모드(Strict Stubbing)란?Stric.. spring actuator를 활용한 회복탄력성 관리(2) Spring Boot Actuator는 Spring Boot 애플리케이션의 런타임 정보를 모니터링하고 관리하기 위한 기능을 제공하는 라이브러리입니다. 애플리케이션의 상태, 건강 상태, 환경 정보 등을 실시간으로 확인할 수 있습니다.엔드포인트 (Endpoints): Actuator는 애플리케이션에 다양한 관리 엔드포인트를 제공합니다. 이 엔드포인트를 통해 애플리케이션의 상태, 정보, 설정 등을 확인할 수 있습니다./actuator/health: 애플리케이션의 건강 상태를 확인합니다./actuator/info: 애플리케이션의 정보를 확인합니다./actuator/metrics: 애플리케이션의 메트릭 정보를 확인합니다.애플리케이션 정보 노출 (Application Information Exposure): Act.. 서킷브레이커를 활용한 회복탄력성 관리(1) 회복탄력성(Resilience)은 시스템이 예상치 못한 장애나 오류 발생 시에도 정상적으로 동작할 수 있는 능력을 의미합니다. resilience4j - retry 기능재시도는 특정 요청이 실패했을때 바로 실패했다고 간주하는것이 아니라 몇 번 더 시도해보는것을 의미합니다. 일반적으로 일시적인 오류로부터 시스템을 보호하기 위해 사용됩니다. 예를 들어 네트워크 연결이 불안정할 때나 외부 서비스가 일시적으로 응답하지 않을 때 등에 유용합니다. Retry Policy (재시도 정책): Retry 동작을 정의하는 정책입니다. 이 정책은 재시도를 언제 해야 하는지, 얼마나 자주 해야 하는지, 얼마나 많이 해야 하는지 등을 결정합니다.Stop Strategies (중단 전략): 재시도를 멈추는 전략을 정의합니다. 예.. 카프카를 활용한 메세지 큐 0. 카프카와 주키퍼의 관계주키퍼 서버를 두고 하위에 명령을 받는 카프카 노드를 여러개 받는 형식입니다.->주키퍼는 하둡에서 나온 용어입니다. 하나의 컨테이너 내부에서 주키퍼, 카프카 최소 2개 이상의 컨테이너를 실행하기 위해 도커 컴포즈로 여러개의 컨테이너를 하나의 서비스로 정의하여 처리할 필요가 있습니다. 1. 도커 컴포즈(docker-compose.yml) 생성version: '3' # docker-compose 버전 지정services: # docker-compose의 경우 docker 컨테이너로 수행될 서비스들은 services 하위에 기술 zookeeper: # 서비스 이름. service 하위에 작성하면 해당 이름으로 동작 image: wurstmeister/zookee.. artillery 스트레스 테스트 0. Node.js 환경설정 아틸러리는 Node.js 환경에서 작동함으로 node.js, vsCode를 세팅합니다. 1. 아틸러리 세팅하기 Artillery Script를 저장할 폴저를 만들고 공식 문서에서 작성된 설치 문구를 터미널에 입력합니다. npm install -g artillery@latest 2. 아틸러리 스크립트 작성 먼저 아틸러리 스크립트를 활용하기 위해서 Learn Core Concepts에서 Test Scripts를 기반으로 작성합니다. yaml 파일 형식으로 되어있으므로 스크립트를 작성할 .yaml파일을 생성합니다. config: target: http://www.duktown.site/ phases: - duration: 60 arrivalRate: 1 - duration: 300.. 스프링 시큐리티 5.X에서 6버전으로 변경 1. 인증과 인가 인증이란 유저가 누군지인지 확인하는 절차 인가는 인증이 된 사람들을 대상으로 특정 기능에 대한 권한여부를 확인하는 절차 # 토큰 방식인 JWT가 유행하게 된 이유? 더보기 1. JWT는 인증 절차를 통해 유저 정보를 기반으로 권한을 확인하기에 인가가 쉽다. 2. 세션 기반은 세션을 서버 1개당 1개임으로 두 개 이상의 병렬로 연결되는 경우, 하나의 서버에서 발급한 세션을 다른 서버에서는 쓸 수 없다는 단점이 있습니다.따라서 병렬 방식으로 진행되는 서버 확장에서 문제가 발생할 수 있습니다. 예를 들면 결제 서버와 상품 서버가 분리되어 있다고 가정하면 세션 인증 기반은 각각 API에서 인증을 해야 하지만 토큰 기반 인증에서는 토큰을 가지는 주체는 서버가 아니라 클라이어늩이기 때문에 가지고 .. 스프링부트에서 RabbitMQ 메세지 큐로 사용 RabbitMQ란? Erlang으로 작성된 RabbitMQ로 Erlang을 먼저 설치해야 한다. 도커에서 Eralng이 포함된 이미지로 컨테이너를 만들어주고 있어서 도커를 사용하면 간단히 사용 가능하다. RabbitMQ 하나로 여러 개의 MSA를 관리할 수 있다. Producer, Consumer 개념 Producer는 메세지 큐에 publish(발행)해주는 역할을 한다. Consumer는 큐에 적재된 메세지를 꺼내서 소비하는 역할을 한다. 대시보드에서는 publish를 통해 메세지큐에 메세제를 적재해서 확인할 수 있다. 대시보드에서는 getMessage 명령을 통해 꺼낼 수 있다 도커를 사용한 RabbitMQ docker run -d -p 15672:15672 -p 5672:5672 --name rab.. 메세지큐 톺아보기 🔍메세지큐란? 메시지 큐(Message Queue)는 소프트웨어 시스템 간에 데이터를 비동기적으로 전송하는 데 사용되는 중간 매개체 이를 통해 시스템 간에 데이터를 안전하게 전달하고 처리할 수 있다. 메시지 큐는 일반적으로 분산 시스템에서 사용되며, 시스템 간의 결합도를 낮추고 확장성을 높이는 데 도움을 준다. 📌메시지 큐의 주요 구성 요소: 메시지: 메시지 큐를 통해 전송되는 데이터 단위로 요청 그 자체. 메시지는 텍스트, JSON, 바이너리 등 다양한 형식으로 구성될 수 있다. 큐: 메시지가 저장되는 공간입니다. 일반적으로 FIFO(선입선출) 방식으로 동작하며, 먼저 도착한 메시지가 먼저 처리된다. 생산자(Producer): 메시지를 생성하고 큐에 전송하는 역할을 합니다. 예를 들어, 데이터베이스에서.. 이전 1 2 다음