
1. K6 부하 테스트 시나리오 작성하고 결과 지표 분석하기(K6 Load Testing)[ K6 부하테스트 스크립트 작성하기 ]과거에는 Ngrinder 또는 JMeter 등을 활용해 부하 테스트 또는 성능 테스트를 진행했었는데, 최근에는 그라파나(Grafana) 진영에서 만든 K6 역시 자주 사용되곤 한다. K6 깃허브 페이지의 Releases에 접속하여 실행 가능한 파일을 받고, 다음과 같은 실행 명령어를 통해 손쉽게 부하 테스트를 진행할 수 있다. K6의 핵심 설계 목표는 최고의 개발자 경험을 제공해주는 것이라고 하는데, 손쉬운 실행 방법에서도 이를 체감할 수 있다../k6 run --vus 3 --duration 5s script.js 위의 명령어는 가상의 사용자 3명을 기준으로 5초 동안 부하..

1. MCP(Model Context Protocol)에 대하여 알아보고 IntelliJ와 Claude를 MCP로 연동하기[ MCP(Model Context Protocol)에 대하여 ]MCP(Model Context Protocol)이란 AI 어시스턴트를 콘텐츠 저장소, 비즈니스 도구, 개발 환경 등 다양한 데이터 시스템에 연결하기 위한 새로운 오픈소스 표준이다. 대부분의 LLM(대형 언어 모델)은 학습한 데이터만을 기반으로 동작하기 때문에 실제 작업 환경에 대한 맥락이 부족하여 활용도가 떨어질 수 있다는 문제점이 대두되기 시작했다. 따라서 관련 데이터를 제공하여 LLM의 성능과 활용도를 높이고자 데이터 소스와 AI 시스템을 통합하는 단일 프로토콜이 탄생하게 되었다. 이를 통해 개발 도구(IDE, 코드..

1. Lettuce를 사용하는 경우에 MGET 동작 방식에 대해 이해하기 [ Redis MGET 명령어와 CrossSlot 에러 ]MGET 이란 Multi-Get의 줄임말로, 여러 개의 key에 대하여 GET 요청을 보내는 방식을 의미한다. 그러면 레디스는 각각의 GET 요청에 대한 응답을 목록으로 반환하여 제공해준다.MGET key1 key2 key3 key41) "value1"2) "value2"3) "value3"4) "value4" MGET 요청을 보낼 때는 주의할 점이 하나 있는데, 레디스 클러스터 환경에서는 MGET 요청으로 전달되는 key들이 항상 동일한 슬롯을 향해야 한다는 것이다. 레디스 클러스터 환경에는 키를 특정 노드에 배분하는 단위인 슬롯(Slot)이라는 개념이 존재한다. 기본적으..
1. Redis 메모리 사용량 추정하기(Redis Memory Usage Estimation) [ 사전 지식 습득하기 ]레퍼럴에 대하여이번에 레디스 메모리 사용량을 분석할 서비스는 다음과 같은 초대 이벤트 서비스이다. 친구들에게 나의 초대키를 공유하여 친구가 접속하면 나에게 혜택을 받는 구조인데, 이를 레퍼럴(Referral)이라고 한다. 일종의 추천인 제도라고 볼 수 있는데, 흔히 사용되는 마케팅 기법 중 하나이다. 이러한 마케팅 기법에는 때 크게 공유자와 피공유자라는 두 종류의 액터가 등장하는데, 이러한 내용을 바탕으로 레디스에 저장되는 메모리 사용량을 추산해보도록 하자. 참고로 이번 이벤트의 참여자는 500만명으로 가정한다. 레디스 오버헤드를 포함한 사용량 공식 도출다른 모든 시스템과 마찬가지로..

1. 데이터 중심의 세상과 객체 지향 프로그래밍(Data-Oriented and Object-Oriented Programming)[ 데이터 중심의 세상 ]21세기는 두말 할 필요 없이 데이터가 중심인 세상이다. 많은 데이터들이 기록되고 수치화되며, 데이터를 분석하여 얻은 결과는 수 많은 의사결정의 근거가 된다. 이렇듯 데이터 중심의 세상이 되면서, 프로그래밍 세계에도 변화가 도래했다. 마이크로서비스 아키텍처가 등장하고 데이터가 중심이 되어 서비스들 간에 데이터를 교환하는 것이 상당히 중요해졌다. 이를 위해 자바는 대표적으로 Ember라는 프로젝트를 통해 언어를 고도화하여 생산성을 높이고자 하였고, 그 과정으로 데이터를 손쉽게 모델링할 수 있도록 도와주는 record 클래스 등이 등장하게 되었다. 심..