in-bob-we-trust

Contents 이번 이야기 Definitions 테스트 Overview 1,000 RPS 테스트 : 설명 1,000 RPS 테스트 : 결과 2,000 RPS 테스트 : 설명 2,000 RPS 테스트 : 결과 점검의 시간 : What Application Load Balancer is doing for us 로드밸런싱 Health Check Scaling Service Discovery & Service Registration L7(Layer 7) Load Balancing 점검의 시간 : Scalability (확장성) 보완하기 10,000 RPS 테스트 : 설명 Computing 서비스 구조 Monitoring 서비스 구조 10,000 RPS 테스트 : 결과 1 10,000 RPS 테스트 : 결과 2..
분산 시스템, 마이크로서비스 아키텍처와 같은 개념들을 이야기하다 보면 빠지지 않는 것이 비동기 통신과 메시지 큐입니다. 대부분 메시지큐 기반 비동기 통신을 통해서 서비스간의 결합도를 낮춘다고 합니다. 우아한 중계서비스에서도 메시지큐를 활용한 비동기 통신을 고려하며 찾아본 내용들을 적어두었습니다. Table of Contents 메시지 큐를 통해 해결하려는 문제는? 디커플링(decopuling), 서비스 간의 결합도 감소 관심사의 분리를 통한 처리시간 최적화 트래픽 완충제 역할 메시지 큐 활용시 해결해야 하는 문제는? 시스템 가용성 감소 Availability 시스템 복잡도 증가 Complexity 데이터 일관성 문제 Consistency Cheography-based Saga Orchestration-b..
Contents 시작하며 TestContainers : 컨테이너를 활용한 통합테스트 품질 향상하기 WireMock : 외부 의존 서버를 쉽게 Stubbing 하기 Reactive Streams 테스트의 기본기 : StepVerifier WebFlux의 Controller 단위테스트 방법 WebFlux의 Stubbing WebFlux의 Service 단위테스트 WebFlux의 MongoRepository 단위테스트 WebFlux의 Integration Test JUnit의 Parameterzied Test JUnit의 Repeated Test 추천 온라인 강의 마치며Contents 시작하며 지난 블로그에서는 테스트 코드를 작성하고, 커버리지 95% 이상 유지하며 깨달은 것들을 공유했습니다. 테스트 철학, ..
Contents 시작하며 커버리지는 거들뿐 Repository 클래스는 무엇을 테스트해야 하지? 메인 클래스는 무엇을 테스트해야 하지? Unit 테스트와 Integration 테스트 커버리지 Jacoco의 Exclude는 살아있어야 한다. Instruction과 Branch 커버리지 마치며 시작하며 이번에는 F-Lab 멘토링 과정에서 진행한 프로젝트에서 테스트 코드를 작성하고, 커버리지 95% 이상 유지하며 깨달은 것들을 공유하려고 합니다. 테스트는 프로젝트의 무엇을, 어떻게, 왜 작성했는지 고수준 개념(concept)으로 다루겠습니다. *** 이번 블로그는 독자분들이 자바, 스프링, 스프링 부트의 매우 기초적인 개념을 알고 계신다는 전제하에 작성했습니다. 커버리지는 거들뿐 커버리지는 정말 거들뿐입니다...
Contents 이번 이야기 StackTrace 최소화 테스트 : 설명 StackTrace 최소화 테스트 : 결과 분석 - K6 Test Summary StackTrace 최소화 테스트 : 지표 분석 - RPS (Requests Per Second) StackTrace 최소화 테스트 : 지표 분석 - Error Rate StackTrace 최소화 테스트 : 지표 분석 - Blocked 상태 쓰레드 수 StackTrace 최소화 테스트 : 지표 분석 - JVM Heap 영역 + GC 소요시간 StackTrace 최소화 테스트 : 지표 분석 - CPU Usage StackTrace 최소화 테스트 : 결과 StackTrace 최소화 테스트 : 병목현상의 원인 배달중계 서비스. log() 제거 후 테스트 : 지..
Contents 시작하기 진행 내용 테스트 : Run 테스트 지표 분석 : 전체 테스트 지표 분석 : JVM Heap 시작하기 이번 블로그에서는 JVM 메모리 영역을 확장해서 성능 개선 여부를 확인해보겠습니다. 상황은 이렇습니다. 처리하는 Requests Per Second가 더 이상 증가하지 않는 시점에 JVM Heap 영역 사용량은 최대치까지 올라갔다. CPU가 Garbage Collection 에 필요 이상의 시간을 소비하는 것으로 보인다. JVM의 메모리를 기본설정보다 높게 잡아보자. 진행 내용 개선사항 -Xms1024 m: 시작 힙 메모리 사이즈에 처음부터 1GB를 할당 -Xmx2048 m: 최대 힙 메모리 사이즈를 2GB로 설정 기대하는 결과는? 시작부터 힙 사이즈를 크게 설정하면 GC 발생빈..
Contents 지난이야기 성능 테스트 목적 테스트 제약조건 테스트 설정 사양 (Specification) 테스트 시작 서버 지표 분석 : Rate per Second 서버 지표 분석 : CPU 사용량 서버 지표 분석 : Error Rate & HTTP Duration 서버 지표 분석 : Blocked 상태 Thread 수 서버 지표분석 : Heap 영역과 JVM 메모리 서버 지표 분석 : 결과 지난 이야기 지난 블로그에서는 전체 서비스 구조, 테스트 시나리오, 테스트 툴 K6, 테스트 프로세스 등 테스트 관련 세부사항들을 소개했습니다. 이번 포스트에서는 실제 성능 테스트를 실행하고, 결과를 통해 여러 개선 포인트를 찾아내어 다시 적용해보는 시간을 가지도록 하겠습니다. 성능 테스트 목적 1. 서버의 적정..
Contents 시작하기 : 서버 성능 테스트 이야기 전체 서비스 구조 성능 테스트 시나리오 설명 K6 사용 이유와 K6의 테스트 단위 테스트 시나리오 설명 테스트 프로세스 설명 마치며 시작하기 : 서버 성능 테스트 이야기 서버 성능테스트 이야기는 현재 진행 중인 프로젝트 In-Bob-We-Trust의 성능 테스트, 분석, 개선 과정을 담아낸 기술 블로그입니다. 진행 도중 알게 되는 내용들, 취한 액션들을 일지 형식으로 최대한 읽기 쉽게 담아내 보겠습니다. 같은 주제를 다룬 여러 기술 블로그들을 참고해본 결과, 내용이 상당히 길어질 것을 예상할 수 있으니 이야기를 여러 에피소드로 나눠서 포스트 하겠습니다. 이번 이야기에서는 테스트와 관련된 Overview, 하이레벨 뷰를 설명합니다. 현시점 프로젝트 구조..
joohyukkim
'in-bob-we-trust' 카테고리의 글 목록