Infra/Performance 4

Artillery (부하테스트 툴)

Artillery란? Artillery는 웹 애플리케이션이나 API의 성능을 측정하고, 부하 테스트(Load Test)를 수행하는 오픈소스 성능 테스트 도구임. 주로 웹 서비스의 부하 상황을 가정하여 동시에 많은 사용자가 접근했을 때 서비스가 얼마나 빠르고 안정적으로 작동하는지 측정하기 위해 사용됨. • 공식 홈페이지: https://www.artillery.io/ • GitHub 레포지토리: https://github.com/artilleryio/artillery Artillery의 주요 기능과 장점 Artillery의 주요 특징 및 장점은 다음과 같음. • 간단한 설정: YAML 파일로 시나리오를 설정하고 간편하게 테스트 가능함. • 성능 측정 및 모니터링: 응답시간(Response time), 초당..

Infra/Performance 2025.03.26

병목현상

병목현상(Bottleneck)과 해결법 1. 병목현상(Bottleneck)이란? 병목현상이란 전체 시스템이나 애플리케이션의 성능을 제한하거나 느리게 만드는 특정 지점이나 구간을 말함. 즉, 마치 병의 좁은 목 부분이 전체 흐름을 느리게 만들 듯이, 한정된 리소스나 비효율적인 코드로 인해 시스템 전체 성능이 떨어지는 현상임. 병목현상이 발생하면 시스템의 다른 부분이 아무리 빨라도, 결국 가장 느린 구간의 속도로 전체 시스템 성능이 제한됨. 2. 병목현상이 발생하는 원인과 대표적 사례 병목현상은 일반적으로 다음과 같은 원인에 의해 발생함. (1) CPU 병목 CPU가 과도한 연산으로 인해 성능이 제한되는 현상임. • 무거운 연산이 과도하게 집중될 때 • 싱글 스레드 환경에서의 CPU 집중 작업 (2) 메모리..

Infra/Performance 2025.03.22

MySQL 인덱스를 활용한 성능 최적화

MySQL에서 인덱스(Index)를 사용한 성능 최적화란? MySQL에서 인덱스(Index)를 사용한 성능 최적화란, 데이터베이스가 특정 데이터를 빠르게 찾을 수 있도록 데이터의 위치를 미리 정리하여 보관하는 방법임. 인덱스는 흔히 도서관의 책 색인에 비유할 수 있음. 예를 들어, 도서관에서 특정 주제의 책을 찾으려면, 책 전체를 하나씩 확인하는 대신 색인을 보고 원하는 책을 바로 찾는 것과 같음.인덱스를 설정하면 MySQL 역시 데이터를 빠르게 검색할 수 있게 됨. 인덱스가 없을 때의 문제점 (성능 저하) 먼저, 인덱스가 없을 경우의 문제를 알아보겠음. 예를 들어, 다음과 같은 테이블이 있다고 가정함: 예시 테이블 (user):idusernameageemail1kim25kim@test.com2lee28..

Infra/Performance 2025.03.21

성능 최적화

성능 최적화(Performance Optimization)의 개념과 방법 성능 최적화란 프로그램이나 시스템이 사용하는 자원을 최소화하면서 최대의 효율로 작동하도록 만드는 작업임. 즉, 같은 자원을 사용해서 더 빠르게 동작하거나, 같은 작업을 더 적은 자원으로 처리하는 것이 목표임. 특히 백엔드 개발 시, 성능 최적화는 매우 중요하며, 빠른 응답속도와 안정적인 서비스 운영을 위해 필수적인 작업임. 성능 최적화가 중요한 이유 성능 최적화를 하면 다음과 같은 효과를 얻을 수 있음. • 사용자 경험(UX) 개선: 응답 시간이 짧아져 사용자 만족도가 올라감 • 비용 절감: 서버 리소스 낭비가 줄어들어 운영 비용이 감소함 • 안정성 증가: 부하 시 시스템이 안정적으로 운영됨 • 확장성 향상: 같은 자원으로 더 많은..

Infra/Performance 2025.03.20