분류 전체보기 781

mysql 테스트를 위해 더미데이터 생성하는 방법

더미 데이터를 고민한 이유는?mysql index 이론을 공부하기 위해 더미 데이터 천만개 이상이 필요했습니다. sysbench 도구로 더미 데이터 생성어떻게 생성하지 고민하다가 sysbench를 사용하여 쉽게 해결했습니다. sysbench는 멀티 쓰레드 기반 벤치마크 도구입니다. 주로 데이터베이스 벤치마크할 때 사용합니다. sysbench는 벤치마크를 위해 더미 데이터를 생성하는 기능이 있습니다. sysbench prepare이라는 명령어를 사용하면 더미데이터를 생성합니다. --table-size라는 인자에 더미데이터 개수를 설정할 수 있습니다. 아래는 더미 데이터를 천만개 생성합니다.sysbench oltp_read_write \ --mysql-host=127.0.0.1 \ --mysql-por..

grafana k6 웹 대시보드 활성화 하는 방법

요약k6 결과 데이터를 시각화 또는 결과 html파일로 생성하고 싶다면 웹 대시보드를 사용해보세요. 웹 대시보드는 디폴트로 비활성화 되어 있어, 환경변수 K6_WEB_DASHBOARD를 true로 해야 합니다.K6_WEB_DASHBOARD=true ./k6 run script.js k6 웹 대시보드란?k6는 테스트 결과를 stdout으로 보여줍니다. 데이터를 시각화하려면 데이터 포맷을 json 등으로 변경하서 작업하거나 database와 연동해야 합니다. 데이터 시각화 설정의 단점은 시각화 할때까지의 과정이 많습니다. 즉, 준비시간이 많이 걸립니다. 준비시간이 짧을 때 또는 일회성으로 데이터를 시각화 하고 싶을 때는 웹 대시보드 기능이 좋습니다. virtual users, latency, reque..

grafana k6 데이터를 influxDb v2에 저장하는 방법

이 글은 k6 데이터를 influxDB v2에 저장하는 방법을 설명합니다. 요약2025.4월 기준 k6의 데이털는 influxdb v2를 저장하지 못합니다. 만약 저장해야 한다면 xk6-output-influxdb플러그인을 사용해야 합니다.플러그인 링크: https://github.com/grafana/xk6-output-influxdb k6 데이터를 데이터베이스에 저장해야하는 이유k6 데이터는 부하 테스트 결과입니다. 해당 데이터는 k6를 실행할때만 임시적으로 저장하는 휘발성데이터입니다. 따라서 부하 테스트를 분석하고 여러 사람과 같이 공유하려면 데이터베이스에 저장해야 합니다. k6에서 지원하는 데이터베이스를 real time이라고 부릅니다. 현재 지원하는 real time은 시계열 DB입니다. in..

그라파나를 컨테이너로 구축할 때, data source를 코드로 구성하는 방법

이 글은 그라파나를 컨테이너(예: docker, 쿠버네티스)로 구축할 때, data source를 코드로 구성하는 방법을 설명합니다. data source란?grafana에 연결할 데이터베이스 목록을 data source라고 부릅니다. 예를 들어 아래 그림에서는 그라파나에 influxDB를 연결했습니다. data source 설정방법data source의 설정은 datasource.yml에서 합니다. datasource.yml파일은 /etc/grafana/provisioning/datasources/datasource.yml 경로에 위치합니다. 아래 예제는 influxdb를 추가하기 위한 설정입니다.apiVersion: 1datasources:- name: InfluxDB type: influxdb..

Grafana k6 설정 질문, ChatGPT와 Gemini Pro 2.5는 다르게 답했다. 누가 정답일까?

로컬에서 부하 테스트를 진행하기 위해 인프라 구축을 어떻게 할지 고민하고 있었습니다. 간단한 테스트여서 docker-compose를 사용하여 Grafana k6데이터를 장기기억하기 위해 데이터베이스 설정을 하려고 했습니다. 데이터베이스는 influxDB를 사용했습니다. docker-compose.yml 파일 설정을 chatGPT 4o, Gemini Pro 2.5에 질문을했습니다.  chatGPT 4o, Gemini pro 2.5는 대답을 다르게 했습니다. Gemini Pro 2.5는 influxDB v2 사용법을 안내했습니다.services: influxdb: image: influxdb:2.7 chatGPT 4o는 influxDB v1 사용법을 안내했습니다.services: influxdb: ..

python uv init의 "No interpreter found"에러 해결방법

uv init으로 uv project를 초기화 할 때, uv가 python 경로를 인식하지 못하면  No interpreter found에러가 발생합니다.error: No interpreter found for path `3.12.1/envs/jwt` in managed installations or search path 해결 방법은 uv init을 할 때 --python인자에 python 경로를 설정해주면 됩니다. python 경로는 which로 조회할 수 있습니다.uv init --python $(which python)

25년 건강에 대한 회고 - 혼자사는 집에서 기절 3번

25년 4월 첫째주 주말에 집에서 기절 3번을 했습니다. 뜨거운 물에서 반신욕을 일어날 때 어지러운 느낌이 들었는데, 정신을 차려보니 목욕탕에 누워있었습니다. 그리고 일어나고 기절을 연속 2번 했습니다. 뇌MRI, 심전도, 혈액검사 등 검사등을 진행했는데 다행히 이상은 없었습니다. 의사선생님은 영상으로는 문제가 없어보이지만 기절을 연속 3번한거는 비정상적이라고 말씀하셨습니다. 처음 반신욕 후 기절한건 기립성 저혈압일 수 있다고 말씀해주셨습니다. 혼자 살다보니 정신을 못차렸으면 위험한 상황이었습니다 ㅜ.ㅜ 개인적으로 기절을 몇번 한 이유는 저의 수면시간이 관련 있는 것 같습니다. 약 6년동안 하루 평균 수명시간이 4시간 30분이었고, 25년 3월 잠을 안자고 약 30시간 이상 근무를 2번 했던게 기절에 큰..

회고모음 2025.04.10

애플리케이션 분석 역량이 서비스 운영에 중요한 이유(feat-firebase-admin SDK)

이 글에서는 만났던 성능저하 문제를 재현하려고 했지만 실패했던 사례를 공유합니다. 들어가며요즘 일하면서 느낀 것 중에 하나는 서비스 운영 또는 쿠버네티스 운영을 위해서는 “개발능력이 필수”입니다. 인프라 이슈가 아닌 애플리케이션 성능 문제는 아키텍처, 데이터베이스, 코드 이해 능력이 있어야 문제를 파악할 수 있습니다. 최근 서비스 운영하면서 많은 문제가 개발과 관련된 문제였습니다. 따라서 아키텍처를 이해하고 코드의 어떤 부분이 성능을 낮추는지 알아야 했습니다. 아직 저는 개발역량이 많이 부족하기 때문에 현상만 관찰할 수 있었고 원인은 분석하지 못했습니다. 그리고 오류를 재현하려고 했지만 재현도 실패했습니다. ㅜ.ㅜ 최근에 오류재현을 실패했던 문제는 java firebase-admin SDK의 높은 메모..