![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cvTbkF/btsLSNBdkMP/XX6HDjxNJv5oaZmjJKwBjK/img.png)
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만 해왔던 것 같다.공부하..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/eBQRkH/btsLOXqJmF3/s2XSCkZbj4j1DeKafSBtd1/img.png)
메트릭 혹은 성능 테스트 결과를 보다보면, 많이 볼 수 있는 숫자가 있다.P90, P95, P99 이 숫자가 의미하는 것은 무엇일까? => 바로 백분위수(Percentile)이다.백분위 수는 전체 데이터를 순서대로 나열했을 때, 특정 위치의 값을 의미한다.p90은 90번째 백분위수라는 의미로 전체 데이터 중 90%가 이 값보다 작다는 의미이다.예를 들어, Resposne time이 p90 = 200ms라면, 전체 요청 중 90%는 200ms보다 빠르게 처리된다는 것. Percentile / 백분위수의 필요성그럼, 왜 p90, p95, p99을 나눠서 볼까?p90: 상위 10%를 제외한, 일반적인 상황의 성능을 보여준다p95: 상위 5%를 제외한, 조금 더 엄격한 기준의 성능을 보여준다p99: 상위 1%를..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dXj9Dr/btsLQs32arF/P1JKyuQKjeOviG11UihlQK/img.jpg)
Trace를 학습하다보면 "Sampling", "샘플링"에 대해 필수적으로 알아야 한다.근데 주변에서 가끔 헷갈려하시는 분들이 있어 글로 좀 정리해보자 한다.본 글의 내용은 아래 Opentelemetry 공식문서 글을 참조했다. SamplingLearn about sampling and the different sampling options available in OpenTelemetry.opentelemetry.io Sampling? 샘플링?Sampling / 샘플링모든 가시성 지표를 저장하지 않고, 대표적인 데이터만(대표성을 띄는 데이터만) 저장하는 것'대표성'이라는 건 작은 그룹이 더 큰 그룹을 정확하게 대표할 수 있다는 원칙 (위 그림이 이를 잘 표현하는 그림) "Sampling 됬어?" 같은 ..
Spring에서의 ETag Spring에서도 ETag를 손쉽게 사용할 수 있도록 지원하고 있다. 그 중 리소스 캐싱에 대한 기능은 여러 API에서 공통으로 사용할 수 있는 기능이기에 Filter로서 지원하고 있다. 충돌 피하기 (Lost update problem)에 대해서는 지원하지 않는 듯하다. 이에 대해서는 뒤에서 더 알아보자. ShallowEtagHeaderFilter class에서 지원한다. GitHub - spring-projects/spring-framework: Spring Framework Spring Framework. Contribute to spring-projects/spring-framework development by creating an account on GitHub. g..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cjiDiC/btsatUPJG44/300YQzJJXcispdKqMv9BG0/img.png)
HTTP Message, Entity HTTP Message는 서버와 클라이언트가 HTTP 통신 내에서 서로 주고받는 데이터를 의미한다. 보통 클라이언트에서 서버로 '요청'하는 메시지를 HTTP Request Message라고 하고, 반대로 서버가 클라이언트에게 응답하는 메시지를 HTTP Response Message라고 한다. Entity는 HTTP Message의 일부라고 생각하면 된다. 여러 외부 자료에서 HTTP Message가 컨테이너면 Entity는 화물이라고 비유하고 있다. Entity는 Request/Response Payload를 이루는 Raw data이다. Response header 중 Content prefix가 붙은 것들은 Entity를 표현하는 용도이다. ETag ETag는 En..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cYinyO/btr0xMuwolH/SX0HUWDz5c2nocFXLF4Dk0/img.png)
How Figma's multiplayer technology works를 번역한 글입니다. Overview 2015년, 멀티 플레이어 기능을 솔루션에 도입하고자 함. 다른 디자인 툴들에서는 이 기능이 없었던 상황이고, 구글 독스에서 사용하는 멀티 플레이어 알고리즘의 표준격인 Operational Transforms (OT)를 사용하고 싶지는 않았음. 빠르게 피쳐를 전달해야하는 우리 시스템에 OT는 불필요하게 복잡했음. 그래서 더 심플하고 사용하기 쉽게 새로 만들고자 함. 주변에서 멀티 플레이어 기능에 대한 부정적인 의견이 있었지만, 진행했음. 이 기능을 통해 export, sync, email copy 등의 작업을 제거할 것이고, 더 많은 사람들이 디자인 프로세스에 포함될 수 있을 것이라고 생각. 단순..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cB1tvL/btrGyOeGMKu/a1KfdopIiHO0jkFqPA0vf0/img.png)
OpenTelemetry OpenTelemetry (축약해서 OTel)은 trace, metric, log와 같은 telemetry 데이터를 instrumenting, generating, collecting, exporting 하기 위한 특정 벤더에 종립되지 않은 오픈소스(vendor-neutral open-source) Observability framework입니다. OpenTelemetry가 왜 필요할까? 분산된 시스템이 커지고, 확장됨에 따라 개발자 입장에서 자신의 서비스가 어떤 서비스에 의존적이고 의존되고 있는지 파악하기 어려워졌고, 결론적으로 어떠한 영향을 받는지/주는지 보기 어려워졌습니다. 특히, 서비스 배포 또는 중단하는 경우에 말이죠. 이러한 문제를 해결하기 위해 어떻게 해야할까요? 일..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/uRid5/btrGAqjxFal/xBSpzorWKucv2w625pLN1k/img.png)
Observability란 무엇일까요? Observability란 내부 동작 상황을 알 수 없는 시스템에 대하여 이해할 수 있도록 돕는 것, 정보를 의미합니다. 즉, 어떠한 문제가 발생하였을 때 Observability를 통해서 왜 이런 일이 발생했는지 유추해볼 수 있습니다. 너무 설명이 추상적인가요? 그럼, Observability 개념을 제외하고 생각해봅시다. 애플리케이션에서 어떠한 문제가 발생하였을 때, 어떻게 원인을 찾을 수 있을까요? 쉽게 생각한다면 "시스템 Log를 보죠!"라고 답할 수 있습니다. 맞아요. Log 도 Observability 범주에 속합니다. 더 넓게 trace, metrics, log, span 등과 같은 정보들. 즉, 애플리케이션의 상태를 계측할 수 있는 정보들을 의미합니다..
- Total
- Today
- Yesterday
- Clean Architecture
- docker
- 비동기
- 일상
- k8s
- 쿠버네티스
- boj
- gradle
- 알고리즘
- tag
- Spring
- python
- jasync
- Kubernetes
- Intellij
- java
- OpenTelemetry
- container
- Istio
- 하루
- 로그
- Spring boot
- c++
- WebFlux
- Algorithm
- HTTP
- 클린 아키텍처
- Log
- MySQL
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |