[General] 어플리케이션의 동시 접속자 수, 어떻게 정해야 할까?
·
개발 (Development)/General
어플리케이션을 개발하거나 운영할 때 흔히 마주치는 질문 중 하나는 “동시 접속자를 몇 명으로 제한해야 할까?”입니다. 이는 단순한 기술 설정이 아니라, 트래픽 예측, 인프라 용량, 사용자 경험까지 고려해야 하는 중요한 결정입니다. 이번 글에서는 실제 설정 과정과 함께 계산 예제, 일 사용자 수 추정 방법까지 순차적으로 정리해보았습니다.동시 접속자 수란?동시 접속자 수(concurrent users)는 특정 시점에 어플리케이션에 동시에 접속해 있는 사용자 수를 의미합니다. 예를 들어 하루 동안 1만 명이 접속해도, 특정 시간에 동시에 100명만 접속해 있다면 동시 접속자는 100명입니다. 이 수치는 서버 용량, DB 커넥션, 네트워크 자원 등을 고려한 인프라 설계의 핵심 기준이 됩니다.동시 접속자 수를 어..
[General] UI 평균 응답시간 측정 방법 정리
·
개발 (Development)/General
웹 어플리케이션의 성능을 진단할 때, UI의 평균 응답시간을 측정하는 일은 매우 중요합니다. 특히 백엔드 API가 수없이 많은 경우, 전체가 아닌 사용자 인터페이스에서 호출되는 요청만 집계하는 방식이 필요합니다. 본 글에서는 UI 평균 응답시간을 측정하는 여러 가지 방법을 단계별로 정리합니다.1. 평균 응답시간 기본 개념평균 응답시간은 총 응답시간 / 총 요청 수로 계산됩니다.실무에서는 API마다 속도가 다르므로 API별 평균 응답시간을 따로 구하는 것이 일반적입니다.UI 요청만 별도로 필터링하여 평균을 구해야 정확한 사용자 체감 속도를 반영할 수 있습니다.2. 백엔드 로그를 활용한 방법2-1. UI 요청만 필터링하기로그 데이터에서 UI 요청을 식별하는 대표적인 방법은 다음과 같습니다.endpoint 기..
[Python/Docker] Python Docker 이미지에서 취약점 제거하기 (python:3.9.12-slim 기반)
·
개발 (Development)/Python
Docker로 Python 애플리케이션을 배포할 때, 보안 취약점(CVE)이 포함된 이미지가 생성되는 경우가 종종 있습니다. 특히 python:3.9.12-slim 이미지를 사용할 경우, 다음과 같은 치명적인 취약점들이 감지될 수 있습니다:OpenSSL, zlib, expat, pcre2, kerberos, libtasn1 등 주요 시스템 패키지 관련 CVE대표적으로 CVE-2022-2068, CVE-2022-1586, CVE-2024-45491 등이번 글에서는 해당 취약점들을 제거하기 위한 이미지 최적화 방법을 정리해 보았습니다.사용 환경베이스 이미지: python:3.9.12-slim빌드 플랫폼: linux/amd64취약점 검사 도구: docker scan, Trivy대상 취약점: CRITICAL 등..
[Java] Interface란? 클래스와 다른 점은?
·
개발 (Development)/Java
Java를 공부하다 보면 interface라는 개념이 등장합니다. 처음에는 추상 클래스와 비슷하게 느껴질 수 있지만, 인터페이스는 Java에서 매우 중요한 설계 도구입니다. 이번 글에서는 interface의 정의부터 사용 예시, 특징까지 정리해 보겠습니다.1. 인터페이스란 무엇인가요?Java에서 interface는 클래스가 구현해야 할 메서드의 목록을 명세한 일종의 규격서입니다. 실제 동작(구현)은 포함하지 않고, 메서드 이름과 매개변수 등 구조만 정의합니다. 클래스가 이 인터페이스를 implements로 구현하면, 반드시 해당 메서드들을 정의해야 합니다.public interface Animal { void sound();}Animal 인터페이스를 구현하는 클래스는 sound() 메서드를 반드시 ..
[Java] MyBatis와 JPA 속도 비교: 어떤 상황에 어떤 선택이 더 나을까?
·
개발 (Development)/Java
Java 백엔드 개발에서 가장 많이 사용되는 ORM 프레임워크인 JPA와, SQL 매핑 프레임워크인 MyBatis는 각기 다른 장점을 지니고 있습니다. 저 역시 프로젝트를 진행하면서 "어떤 상황에 어떤 것이 더 빠를까?"라는 질문을 갖고 두 프레임워크를 비교해 보게 되었습니다.이번 글에서는 MyBatis와 JPA의 속도와 성능 측면에서의 차이를 중심으로, 실제 사용 시 고려할 점들을 정리해보았습니다.1. MyBatis와 JPA는 어떤 프레임워크인가요?MyBatis는 SQL을 직접 작성하여 사용하는 SQL 매퍼 프레임워크입니다. 개발자가 SQL을 전적으로 통제할 수 있어 성능 최적화에 유리합니다.JPA는 객체지향 프로그래밍과 데이터베이스를 매핑하는 ORM 프레임워크입니다. SQL 작성을 최소화하고 생산성을..