
1. 개요이 보고서는 콘서트 예약 시스템의 부하 테스트 결과를 기반으로 발생할 수 있는 다양한 장애 상황과 이에 대한 대응 방안을 제시하고, 이를 통해 시스템의 안정적인 운영을 위해 필요한 전략과 개선 방향을 정리합니다.2. 가상 장애 대응 문서인기 콘서트의 좌석 정보 조회상황다수의 사용자가 동시에 인기 있는 콘서트의 좌석 정보를 조회하는 경우장애 발생 시나리오많은 사용자가 동시에 동일한 데이터를 조회하면서 데이터베이스 서버에 과부하가 발생하고, 이로 인해 응답 시간이 급격히 증가하거나 DB가 다운되는 상황이 발생할 수 있습니다.병목 구간인기 콘서트 좌석 정보를 조회하는 쿼리가 동시에 여러 요청을 처리하려 할 때 DB에 과도한 부하가 발생합니다. 적절한 인덱스가 없거나 기존 인덱스가 비효율적으로 설계된 ..

부하테스트시스템, API 또는 애플리케이션이 동시 사용자 수나 요청량 증가에 따라 성능이 어떻게 변화하는지를 측정하는 중요한 과정입니다. 이를 통해 특정 부하 상황에서 시스템의 응답 속도를 확인하고, 초당 처리 가능한 요청 수를 평가하며, 부하 증가 시 시스템이 안정적으로 작동하는지 확인할 수 있습니다. 또한 성능 저하의 원인을 유발하는 코드, DB 설정, 또는 서버 환경을 파악하여 병목현상을 제거하고 성능을 최적화하는 데 활용됩니다. 이러한 테스트의 결과는 시스템 안정성과 성능 개선의 중요한 기준점을 제공합니다.K6JavaScript 기반의 오픈소스 부하 테스트 도구로, API, 웹 서비스, 또는 애플리케이션의 성능 테스트를 목적으로 사용됩니다. 이도구는 Go 언어로 작성되어 경량화되고 빠른 성능을 ..
1. Global Exception HandlerGlobalExceptionHandler는 애플리케이션에서 발생하는 다양한 예외를 중앙에서 관리하고 처리하기 위한 클래스입니다. Spring에서는 @RestControllerAdvice와 @ExceptionHandler를 활용하여 전역 예외 처리를 구현합니다.주요 기능특정 예외(CoreException)에 대해 맞춤형 응답을 반환.예외의 종류에 따라 적절한 HTTP 상태 코드를 매핑.애플리케이션의 나머지 부분에 영향을 주지 않고 예외를 처리하며 로그를 기록.예상치 못한 예외는 handleAllExceptions에서 처리.@Slf4j@RestControllerAdvicepublic class GlobalExceptionHandler extends Respon..
캐시(Cache) 란?캐시는 자주 사용되는 데이터를 임시로 저장하여, 속도를 향상하고 시스템 부하를 줄이는 역할을 합니다. 데이터베이스나 다른 외부 저장소에서 데이터를 직접 조회할 때 발생하는 시간 지연을 줄이기 위해 자주 액세스하는 데이터를 메모리나 다른 빠른 저장소에 보관합니다. 캐시 사용 이유자주 요청되는 데이터를 캐시에 저장하여, 반복된 데이터 접근 시 외부 데이터 소스를 조회하는 대신 빠르게 응답할 수 있다.캐시를 사용하면 데이터베이스나 다른 서버와의 통신을 최소화할 수 있어 시스템 자원 사용을 효율적으로 관리할 수 있다.캐시를 유용하게 사용하려면동일한 데이터에 대해 반복적으로 액세스 하는 상황이 많을 때 사용하는 것이 좋다.변경이 적은 데이터일수록 캐시를 사용할 때 더 효율적이다.로컬 캐시 글..
동시성(Concurrency)동시성은 단일 코어에서 시간 분할을 통해 여러 스레드를 번갈아 수행하여 동시에 작업이 처리되는 것처럼 보이게 만드는 개념이다. I/O 작업(사용자 입력, 네트워크 요청, 파일 입출력 등) 중 CPU가 유휴 상태일 때 context switching으로 다른 스레드 작업을 처리하여 효율성을 높일 수 있다. 이를 통해 서버는 여러 클라이언트 요청을 동시에 처리할 수 있지만, 동시성 환경에서는 Deadlock, Race Condition, Starvation 등의 문제가 발생할 수 있어 신중한 설계가 필요하다.비관적 락특징: 다른 트랜잭션이 해당 데이터에 접근하려고 하면 락이 해제될 때까지 기다리게 한다.장점: 데이터 충돌을 방지하여 트랜잭션이 실패할 위험이 적고 데이터의 일관성과..

인덱스가 무엇인가요?RDBMS에서 테이블의 검색 속도를 높이기 위해 사용하는 자료 구조입니다. 테이블 내의 하나 또는 여러 개의 열을 기반으로 생성되며, 특정 열에 대해 데이터를 정렬하거나 검색 효율을 높이는 역할을 합니다. 인덱스를 사용하면 Full Table Scan을 피하고, 필요한 데이터를 더 빠르게 찾을 수 있습니다. 주로 B-Tree, Hash 등의 알고리즘을 활용하여 구현되며, 검색 속도 향상뿐만 아니라 레코드 접근의 효율성을 높이는 기초를 제공합니다. Full Table Scan: 테이블의 모든 행을 확인인덱스가 동작하는 원리데이터베이스에서 특정 열을 검색할 때, 쿼리 옵티마이저(Query Optimizer)가 인덱스를 사용할지를 판단합니다. 옵티마이저는 SQL을 가장 빠르고 효율적으로 수..
- Total
- Today
- Yesterday
- Lambda
- find
- function
- bool
- operators
- for
- isdigit
- isalpha
- Method
- If
- zip
- Upper
- Python
- combinations
- Lower
- Built-in Functions
- index
- permutations
- counter
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |