k6 문서를 읽다보니 테스트 종류에 대한 글이 눈에 들어왔다. Load test types | Grafana k6 documentationLoad test types Many things can go wrong when a system is under load. The system must run numerous operations simultaneously and respond to different requests from a variable number of users. To prepare for these performance risks, teams use load testing.grafana.com서버 성능 테스트에도 종류가 여러가지 있음에도 보통 Load Testing만 해왔던 것 같다.공부하..
SLI (Service Level Indicator)서비스 수준을 측정하는 실제 지표 => "무엇을 측정할 것인가?"Example요청 성공률: (성공한 요청 수 / 전체 요청 수) × 100%응답시간: API 응답 시간의 p95 값시스템 가용성: (전체 시간 - 장애 시간) / 전체 시간 × 100% SLO (Service Level Objective)SLI에 대한 목표치 => "어느 수준을 달성할 것인가?"Example월간 가용성 99.95% 이상 달성API 응답시간 p95가 300ms 이하분당 에러율 0.1% 미만 유지 SLA (Service Level Agreement)서비스 제공자와 고객간의 공식적인 계약 => "고객에게 어떤 서비스 품질을 보장할 것인가?""계약"이므로 위반 시 보상조항이 포함됨..
메트릭 혹은 성능 테스트 결과를 보다보면, 많이 볼 수 있는 숫자가 있다.P90, P95, P99 이 숫자가 의미하는 것은 무엇일까? => 바로 백분위수(Percentile)이다.백분위 수는 전체 데이터를 순서대로 나열했을 때, 특정 위치의 값을 의미한다.p90은 90번째 백분위수라는 의미로 전체 데이터 중 90%가 이 값보다 작다는 의미이다.예를 들어, Resposne time이 p90 = 200ms라면, 전체 요청 중 90%는 200ms보다 빠르게 처리된다는 것. Percentile / 백분위수의 필요성그럼, 왜 p90, p95, p99을 나눠서 볼까?p90: 상위 10%를 제외한, 일반적인 상황의 성능을 보여준다p95: 상위 5%를 제외한, 조금 더 엄격한 기준의 성능을 보여준다p99: 상위 1%를..
Trace를 학습하다보면 "Sampling", "샘플링"에 대해 필수적으로 알아야 한다.근데 주변에서 가끔 헷갈려하시는 분들이 있어 글로 좀 정리해보자 한다.본 글의 내용은 아래 Opentelemetry 공식문서 글을 참조했다. SamplingLearn about sampling and the different sampling options available in OpenTelemetry.opentelemetry.io Sampling? 샘플링?Sampling / 샘플링모든 가시성 지표를 저장하지 않고, 대표적인 데이터만(대표성을 띄는 데이터만) 저장하는 것'대표성'이라는 건 작은 그룹이 더 큰 그룹을 정확하게 대표할 수 있다는 원칙 (위 그림이 이를 잘 표현하는 그림) "Sampling 됬어?" 같은 ..
오늘은 Github issue 내용을 Github 파일로 동기화 시키는 Github action 개발기를 이야기 해볼까 해요.오늘 이야기 할 Github action은 Marketplace에서 확인 및 사용할 수 있어요. Issue to File Sync - GitHub MarketplaceSync GitHub issues to files with customizable paths and labelsgithub.com 개발 동기 개발자들은 Github repository에 문서를 모아두기도 하고, 블로그를 운영하며 글을 작성해두기도 해요.저 또한 마찬가지였어요. 문서를 정리해 Github repository에 올려두기도 하고(지금은 미사용 중이긴 하지만) github.io 블로그가 있어 해당 글을 작성할..
이 글을 통해 SBOM 대한 생각을 정리하고, 여러 툴들을 이용해 SBOM을 만들며 보안 이슈를 확인해볼까 해요.간단히 만들어 보는 과정만을 담고 있으므로 SBOM 생성/분석 툴들의 상세한 옵션들은 다루지 않을게요. SBOM이란 무엇일까요?SBOM은 Software Bill of Materials의 약자예요.Maven을 사용해보신 개발자라면 BOM이라는 단어 그리고 Bill of Materials는 많이 접해보셨을 텐데요.단어 뜻 그대로 "자재명세서"를 의미해요. '어떤 소프트웨어가 무엇으로 이루어져있지?'한다면 Bill of Materials를 통해 '아 이런 소프트웨어들이 내포되어 있구나!'라는 것을 알 수 있어요.이러한 Maven BOM을 이용하여 여러 라이브러리들의 의존성 버전을 관리하고, 라이브..
앞선 글에서 package 구조, Java access modifier 그리고 ArchUnit을 통해 Hexagonal Architecture를 구현해보았다.마지막에 " [1] 개발 중엔 아직 실수할 수 있다, [2] 테스트를 수행하지 않는다면기존의 문제점은 계속해서 발생한다." 문제점들을 이야기했는데이번 글에서는 멀티모듈, JPMS, Kotlin을 이용해서 이 문제들을 해결해보고자 한다. 3. Multi module (멀티모듈)로 구현하기 Chapter 02: Multi module by KimDoubleB · Pull Request #2 · KimDoubleB/clean-architecture-example github.com 결국 ArchUnit으로는 잘못된 의존을 막을 수 있는데 큰 도움이 되..
서버 개발자들간에는 논쟁이 일어날 수 있는 주제가 여러가지가 있다.그 중 대표적인 두 가지를 뽑자면 “Monolithic과 MSA”이고, 나머지 하나가 오늘 이야기 할 “Clean/Hexagonal Architecture”이다. 나는 보통 애플리케이션/프로젝트를 구성할 때 별 다른 고민없이 Layered Architecture로 구성해왔다.그러는데는 아주 지극히 개인적인 여러 이유가 있다.익숙하다. 나에게도 익숙하고, 남에게도 익숙하다. 러닝커브가 낮아 누가와도 개발할 수 있다.개발이 빠르다. 익숙해서 개발이 빠른 것도 있지만, 계층별로만 역할이 나뉘고 의존성/구현 방향이 단순해 생성되는 클래스/파일의 양이 적어 결과물을 보기까지 개발속도가 빠르다.Layered Architecture 구조의 단점이 와..
- Total
- Today
- Yesterday
- Spring
- OpenTelemetry
- docker
- c++
- k8s
- Intellij
- Istio
- boj
- 일상
- Algorithm
- python
- Kubernetes
- 클린 아키텍처
- 로그
- tag
- gradle
- container
- 알고리즘
- 쿠버네티스
- MySQL
- Log
- jasync
- 백준
- 하루
- WebFlux
- java
- Clean Architecture
- Spring boot
- HTTP
- 비동기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |