JMeter를 활용한 API 성능 테스트 및 개선 시도1
서론 🏥 CareBridge: AI 기반 간호간병통합서비스 플랫폼 캡스톤 프로젝트를 진행하며 백엔드 서버를 구축했다. 개발 과정에서 특정 API의 성능 테스트를 진행했는데, 예상보다 성능이 좋지 않아 개선이 필요했다. 테스트를 위해 프로시저를 활용하여 더미데이터를 생성했다. 시스템 구조 데이터베이스 구조 Patient 테이블은 다음과 같은 스키마...
서론 🏥 CareBridge: AI 기반 간호간병통합서비스 플랫폼 캡스톤 프로젝트를 진행하며 백엔드 서버를 구축했다. 개발 과정에서 특정 API의 성능 테스트를 진행했는데, 예상보다 성능이 좋지 않아 개선이 필요했다. 테스트를 위해 프로시저를 활용하여 더미데이터를 생성했다. 시스템 구조 데이터베이스 구조 Patient 테이블은 다음과 같은 스키마...
1. 서블릿(Servlet)이란? 서블릿(Servlet)은 Java 기반의 웹 애플리케이션 프로그래밍 기술로, 클라이언트의 요청을 처리하고 동적인 웹 페이지를 생성하는 서버측 프로그램입니다. 서블릿은 javax.servlet.http.HttpServlet 클래스를 상속받아 구현되며, Java EE(Enterprise Edition) 스펙의 일부로 정...
1. 개요 데이터베이스 규모가 커질수록 성능과 확장성 문제가 발생합니다. 이러한 문제를 해결하기 위한 핵심 전략으로 샤딩(Sharding)과 파티셔닝(Partitioning)이 있습니다. 두 기법 모두 대용량 데이터를 관리하는 방법이지만, 구현 방식과 목적에 차이가 있습니다. 사진출처 2. 파티셔닝(Partitioning)이란? 파티셔닝은...
인덱스(index)란? 인덱스는 책의 색인과 유사한 개념으로, 데이터베이스에서 특정 데이터를 빠르게 찾기 위한 자료구조입니다. 인덱스가 없다면 데이터베이스는 테이블의 모든 행을 순차적으로 검색해야 하는데(풀 테이블 스캔), 이는 대용량 데이터에서 매우 비효율적입니다. 인덱스의 작동 원리 인덱스는 주로 B-Tree, B+Tree 등의 자료구조를...
🔄 데이터베이스 트랜잭션이란? 트랜잭션은 데이터베이스의 상태를 변화시키는 하나의 논리적 작업 단위입니다. 트랜잭션은 여러 개의 연산을 포함할 수 있으며, 이 연산들은 모두 성공적으로 실행되거나 전혀 실행되지 않아야 합니다. 트랜잭션의 주요 특징 원자성(Atomicity): 트랜잭션 내의 모든 연산은 전부 실행되거나 전혀 실행되지 않아야 합니...
프로세스(Process)란? 프로세스는 실행 중인 프로그램의 인스턴스입니다. 운영체제로부터 자원을 할당받아 독립적으로 실행되는 작업 단위로, 컴퓨터 시스템의 기본적인 실행 단위로 간주됩니다. 프로세스의 주요 특징 독립적인 메모리 공간: 각 프로세스는 자신만의 메모리 공간(코드, 데이터, 힙, 스택)을 가지며, 다른 프로세스와 격리됩니다. ...
동기(Synchronous)와 비동기(Asynchronous) 동기와 비동기를 이해하면 작업 처리 방식을 효율적으로 설계할 수 있습니다. 이 두 가지는 프로그래밍에서 작업 흐름을 결정짓는 핵심 개념으로, 특히 I/O 작업(입출력), 네트워크 통신, 사용자 인터페이스(UI) 같은 영역에서 중요한 역할을 합니다. 단순히 “작업을 기다리느냐, 안 기다리느...
안녕하세요! 이번 포스트에서는 Spring 프레임워크와 오픈소스 프로젝트 JabRef에서 직접 경험한 다국어 웹 애플리케이션 개발의 핵심 기술인 국제화(i18n: Internationalization) 설정과 구현 방법을 자세히 알아보겠습니다. 특히 최근 제가 참여한 JabRef PR #12582를 통해 배운 실전 경험을 공유합니다. 1. 국제화...
📌문제 링크 https://www.acmicpc.net/problem/16236 📌문제 설명 이 문제는 BFS를 사용해 상어가 가장 가까운 물고기를 찾아 먹으며 성장하는 과정을 시뮬레이션하는 문제입니다. 상어는 자신보다 작은 물고기만 먹을 수 있으며, 먹은 물고기의 수가 상어의 크기와 같아지면 크기가 증가합니다. 이때, 가장 가까운 물고...
📌문제 링크 https://www.acmicpc.net/problem/2003 📌문제 설명 주어진 숫자 배열에서 연속된 부분 배열의 합이 M이 되는 경우의 수를 구하는 문제입니다. 해시맵을 이용하여 현재까지의 합을 저장하고, 이를 통해 효율적으로 경우의 수를 계산합니다. 📌코드 import java.io.BufferedReader...