9. 분산 추적 (Spring Cloud Sleuth) 및 로깅 (Zipkin)9.1 분산 추적9.1.1 분산 추적이란?분산 시스템에서 서비스 간의 요청 흐름을 추적하고 모니터링하는 방법각 서비스의 호출 관계와 성능을 시각화하여 문제를 진단하고 해결할 수 있도록 도움주요 개념: 트레이스(Trace), 스팬(Span), 컨텍스트(Context)트레이스(Trace) : 트레이스는 하나의 요청이 시작부터 끝까지 각 서비스를 거치는 전체 흐름스팬(Span) : 스팬은 분산 추적에서 가장 작은 단위로, 특정 서비스 내에서의 개별 작업 또는 요청컨텍스트(Context) : 컨텍스트는 요청이 서비스 간에 전달될 때 함께 전파되어, 각 서비스가 요청의 전체 흐름에 대한 정보를 가질 수 있게 함9.1.2 왜 분산 추적이..
TIL
5. 서킷 브레이커 (Resilience4j)5.1.1 서킷 브레이커란?서킷 브레이커는 마이크로서비스 간의 호출 실패를 감지하고 시스템의 전체적인 안정성을 유지하는 패턴외부 서비스 호출 실패 시 빠른 실패를 통해 장애를 격리하고, 시스템의 다른 부분에 영향을 주지 않도록 합니다.상태 변화: 클로즈드 -> 오픈 -> 하프-오픈5.2.2 Resilience4j의 주요 특징서킷 브레이커 상태: 클로즈드, 오픈, 하프-오픈 상태를 통해 호출 실패를 관리클로즈드(Closed):기본 상태로, 모든 요청을 통과호출이 실패하면 실패 카운터가 증가, 실패율이 설정된 임계값(예: 50%)을 초과하면 오픈 상태로 전환예시: 최근 5번의 호출 중 3번이 실패하여 실패율이 60%에 도달하면 오픈 상태로 전환오픈(Open):모든..
개요언제?검색 등의 요청에서 파라미터가 많음쿼리문을 객체로 다루어 동적으로 생성하고자 할 때 사용→ 쿼리문의 where 조건 변동성이 크고 복잡하여 쿼리문을 객체로 다루어 동적으로 생성하고자 할 때 사용ORM JPA 로 웬만한 건 다 할 수 있지만, JPA 어노테이션으로 네이티브 쿼리로만 관리하기에는 쿼리가 복잡하거나 가독성이 떨어지거나 유지보수가 어려울 경우에 사용 장점sql 실행하지 않아도 컴파일 시 오류 발견 가능메서드로 쿼리 구성 가능유지보수성 알고 가야 할 것, 선택의 이유queryDSL 도 JPA 처럼 내부적으로 EntityManager 기반으로 동작JDBC 템플릿 기준으로 쿼리 생성하는 건 똑같음항상 왜 선택했는가를 말할 줄 알아야함복잡한 쿼리문에 대헤 조금만 쿼리가 길어져도 유지보수가 어려..
에러 메세지인데 이게 중요한 게 아니었음2024-11-12T16:10:25.033+09:00 ERROR 16884 --- [spartaOrderSystem] [ main] o.s.b.web.embedded.tomcat.TomcatStarter : Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'webSecurityConfig' defined in file [C:\\JHPro\\spring_2024\\sparta\\back\\build\\classes\\java\\main\..
음나 통합테스트 안짜봤구나공부 고! JUnit5 쓸 것임 개념@SpringBootTest : 모든 스프링 빈을 로드(스캔&등록)함. application context 를 생성하여 테스트 실행운영환경과 가장 유사한 테스트 가능옵션classes : 해당 클래스만 빈으로 등록(모든 빈 등록x)properties, value : 같은 속성. @Value 에 들어가는환경변수 값 주입webEnvironment : application context 관련 설정MOCK : 기본값. application context 를 생성하지만 mock 환경으로 제공하므로 내장서버(tomcat) 실행되지 않음RANDOM_PORT : 실제 서블릿환경 제공. application context 생성. 내장서버 실행. 사용되지 않는 ..