반응형
📝테스트 커버리지 (Test Coverage)
테스트 커버리지는 코드가 테스트에 의해 얼마나 실행되었는지를 수치로 나타낸 지표로 주로 자동화된 단위 테스트(Unit Test)나 통합 테스트(Integration Test) 실행 후 계산됩니다.
- 라인 커버리지 (Line Coverage)
- 전체 코드 줄 중 테스트가 실행한 줄의 비율
- if 블록 한 번 + else 블록 한 번 실행되면 끝 → 최소 2개 케이스면 100%
- 브랜치 커버리지 (Branch Coverage)
- if/else, switch-case 같은 분기문이 실제로 다 실행되었는지
- 함수/메서드 커버리지 (Function Coverage)
- 선언된 함수가 테스트에서 호출되었는지 평가
- 조건 커버리지 (Condition Coverage)
- 조건문에서 true/false가 모두 실행되었는지 평가
- A, B 각각 True/False를 모두 경험해야 함 → 4개 케이스 필요 (100%)
📝엣지 케이스 (Edge Case)
엣지 케이스는 입력값이나 시스템 동작이 경계 조건에 있을 때 발생하는 특별한 상황으로 보통 일반적인 케이스에서 잘 안 보이지만 버그를 유발할 가능성이 큽니다.
📝소나 큐브 (Sonarqube)
코드 품질과 보안 취약점을 자동으로 분석하고 관리해주는 오픈소스 정적 코드 분석(Static Code Analysis) 플랫폼
- 정적 코드 분석 (Static Analysis)
- 코드를 실행하지 않고 소스코드를 분석해서 버그, 코드 스멜(Code Smell), 보안 취약점을 찾아냅니다.
- 다양한 언어 지원
- Java, C#, JavaScript, Python, C/C++, Go, Kotlin 등 수십 가지 언어 지원
- 품질 게이트(Quality Gate)
- 일정 기준(예: 테스트 커버리지 80% 이상, 보안 취약점 0건 등)을 충족하지 않으면 빌드를 실패시키도록 설정 가능
- CI/CD 파이프라인에 붙여서 자동화된 품질 검증을 할 수 있음
- 코드 커버리지 & 중복 검사
- 테스트 코드가 실제 코드의 몇 %를 커버하는지 시각화
- 중복된 코드 블록을 찾아내어 유지보수성을 높임
📝오케스트레이터 (Orchestrator)
오케스트레이터는 여러 개의 컴포넌트, 서비스, 작업을 조율하는 역할을 하는 시스템/도구 또는 개념입니다.
예시
- 개념상의 오케스트레이터 (비즈니스 로직)
- OrderService → 재고 확인 (InventoryService) → 결제 처리 (PaymentService) → 배송 예약 (DeliveryService) 순으로 호출
- 컨테이너 오케스트레이터 (Kubernetes)
- 여러 서버에 분산된 컨테이너들을 자동 배포, 스케일링, 복구
- 스프링 배치 (Spring Batch)
- 데이터 추출 → 변환 → 적재(ETL) 파이프라인
- 스프링 클라우드 (Spring Cloud)
그 외에 다양한 오케스트레이터가 존재합니다.
📝스파이크 트래픽 (Spike Traffic)
갑자기 요청량이 폭증하는 상황을 의미합니다.
예) 쇼핑몰에서 12시에 타임딜 시작 → 1초에 수만 건의 요청
📝백프레셔 (Backpressure)
생산자가 너무 빠르게 데이터를 보내면 소비자가 감당하지 못해 버퍼 오버플로우, 지연 증가, 장애가 발생할 수 있습니다. 이때 소비자가 처리 가능한 만큼만 데이터를 받도록 신호를 보내거나, 생산자가 속도를 늦추도록 하는 것이 백프레셔입니다.
반응형