본문 바로가기

반응형

분류 전체보기

(482)
[selenium] Driver info: driver.version: SelemiumDriver 상황 크롬으로 selenium을 돌리고 있었는데 갑자기 에러를 뿜으면서 멈추는 현상 문제 파악 chrome이 91로 업데이트 된다고 하여 chromeDriver.exe를 교체해주고 실행했으나 chrome은 그대로 89 or 90이라 에러가 발생했습니다. 해결 방법 크롬을 업데이트 합니다. 설정창) Chrome 정보 탭) 업데이트 후 크롬 재시작
[DB] 식별 관계와 비식별 관계 개요 ERD를 작성하다보면 테이블 간의 관계를 설정하면서 외래키를 사용해 다른 테이블과의 키를 공유하고 조인을 합니다. 외래키를 이용하여 관게를 정립하기 위해 식별 관계와 비식별 관계 전략이 있습니다. 식별 관계 식별 관계 : 부모 테이블의 기본 키나 유니크 키를 자식 테이블이 자신의 기본키로 이용 -> 부모 데이터가 존재해야지 자식 테이블에 데이터를 추가할 수 있습니다. 위 그림에서는 PK를 part_id로 가지고 PFK로 pc_id를 가집니다. 부모 테이블의 키를 기본키로 가지고 있어서 부모 테이블의 데이터가 있어야지 자식 테이블에 데이터를 추가할 수 있습니다. 장점과 단점 장점 데이터의 정합성 유지를 DB에서 검증 단점 구조 변경이 어려움 비식별 관계 비식별 관계 : 부모 테이블의 기본 키나 유니크..
[CS] 동기와 비동기 그리고 블럭킹과 넌블럭킹 개요 크게 시스템을 나누면 요청자와 제공자로 나눌 수 있습니다. 요청을 할 때와 제공을 할 때 어떤 방식으로 되어 있는지에 대해서 논의해야 하는 경우에 동기와 비동기, 블럭킹과 넌블럭킹을 다루어야 합니다. 아래 네 가지 형태로 구성될 수 있습니다. 동기 + 블럭킹 동기 + 넌블럭킹 비동기 + 블럭킹 비동기 + 넌블럭킹 위에 내용처럼 동기 != 블럭킹, 비동기 != 넌블럭킹이 아니라는걸 알 수 있습니다. REST API는 동기 방식이고 넌블럭킹방식으로 통신으로 하며, frontend와 backend는 대부분 동기 + 넌블럭킹 방식으로 구현합니다. 동기 : Synchronous 그럼처럼 두명이 손을 잡고 있는것처럼 동시에 어떤 일을 하는걸 의미 요청자와 제공자 사이에 지속적으로 Connection을 가지고 ..
[Junit] Spring DataJPATest 슬라이싱 테스트 : .impl.JPAQueryFactory' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} 상황 @DataJpaTest(properties = { "spring.config.location=classpath:application-test.yml" }) JPA만 테스트 하기 위해서 @DataJPATest를 선언하고 application-test.yml을 바로보도록 설정하고 빈을 찾을 수 없다고 에러가 발생했습니다. 문제 파악 환경설정이 Test로 되어 있고 @DataJPATest는 Spring의 빈이 아닌 JPA단만 테스트 합니다. test 패키지가 아닌 main 패키지에 있다고 해도 JPAQueryFactory를 찾을 수 없습니다. 해결 방법 test 패키지 아래에 Test를 위한 TestConfig를 선언 TestConfig에서 JPAQueryFactory를 주입 @DataJPATest에서 ..
[spring boot 설정하기-25] spring cloud Resilience4j(2)와 prometheus, grafana 연동 설정 및 테스트 1. 개요 circuit breaker가 오픈되었는지 닫혀있는지를 응답코드로 확인해야하는데 fallback이 적용되면 응답코드를 확인할 수 없습니다. Resilience4j에서 모니터닝 툴을 제공하지 않고 Micrometer(https://micrometer.io/)로 metric을 제공합니다. 제공되는 메트릭을 수집하고 표현하는 대시보드는 Prometheus(https://prometheus.io/)와 Grafana(https://grafana.com/)로 모니터링을 할 수 있습니다. Micrometer은 메트릭 수집 클라이언트에게 제공하는 표준 인터페이스입니다. 각 클라이언트에서 metric을 수집해서 원하는 형태의 format으로 변경하여 사용할 수 있어 유연합니다. 1-1. 참고 사이트 그라파나 ..
[mysql] Apply changes to thema Error 1833: Cannot change column '': used in a foreign key constraint '' 상황 mysql에서 최초로 테이블을 만들고 PK와 FK를 지정해주고 AUTO_INCREMENT를 추가하려고 했더니 오류가 발생했습니다. 문제 파악 외래키(FK)가 이미 지정되어 있으면 외래키 검사를 해서 오류를 발생합니다. 해결 방법 외래키(FK)를 제거하고 만들거나 외래키 검사 기능을 잠시 해제하고 조치 후 다시 설정하는 방법으로 합니다. 외래키 검사 해제 SET FOREIGN\_KEY\_CHECKS = 0; 외래키 검사 설정 SET FOREIGN\_KEY\_CHECKS = 1;
[spring boot 설정하기-24] spring cloud Resilience4j(1) 설정 및 테스트 소스 1. 개요 https://resilience4j.readme.io/docs/getting-started Hystrix에서 영감을 얻어 만든 라이브러리로 Resilience4j입니다. 가볍고 다른 라이브러리에 의존성이 없고 Circuit Breaker, Rate Limier, Time Limiter, Bulkhead, Retry, Cache 구현체가 있습니다. 2. 설정 설명 아래 사이트를 참고합니다. https://resilience4j.readme.io/docs/circuitbreaker 1. CircuitBreaker Config 요청 실패율이 특정 값 이상일 경우 서킷의 상태를 open/close 여부를 결정하여 에러에 대한 대응을 할 수 있습니다. Config propertyDefault Valu..
[spring boot 설정하기-23] spring cloud loadbalancer 설정 및 테스트 소스 1. 개요 많은 트래픽을 분산해서 처리하기 위해서는 서버를 여러대를 두고 처리량을 나누서 부하를 낮추는 방법을 사용합니다. OSI 7 계층에서 보면 L4, L7 계층에서 Switch라는 비싼 하드웨어 장비를 두고 사용하는 방식으로 서버사이드 로드밸런싱을 합니다. 서버사이드는 서버를 증설하면 되기때문에 간단히 조치할 수 있지만 아래와 같은 문제점을 가지고 있습니다. 1. Switch가 처리할 수 있는 요청수에는 한계가 있습니다. 2. Switch를 증설, 셋팅 설정이 어렵습니다. 3. 하드웨어 비용이 비쌉니다. 4. Switch가 문제가 생길걸 대비해 이중화 해야합니다. 5. 수동으로 등록해주고 사람이 상황에 따라 조치해야 해서 유연성이 떨어집니다. 서버사이드의 단점을 보완하고자 나온 방식으로 클라이언트사..

반응형