본문 바로가기

반응형

java

(12)
QPS(Queries Per Second)와 RPS(Requests Per Second) 1. QPS (Queries Per Second)QPS는 초당 쿼리 수를 의미하며, 주로 데이터베이스나 검색 엔진에서 사용됩니다. 즉, 데이터베이스나 검색 시스템이 1초 동안 처리할 수 있는 쿼리의 수를 나타냅니다.사용 예시:데이터베이스가 초당 처리할 수 있는 SELECT 쿼리 수.검색 엔진이 초당 처리할 수 있는 검색 요청 수.목표: QPS는 데이터베이스 시스템이나 검색 시스템의 성능을 평가할 때 중요한 지표로 사용되며, 이 값을 높이기 위한 쿼리 최적화나 인덱싱 등을 통해 성능을 개선할 수 있습니다.2. RPS (Requests Per Second)RPS는 초당 요청 수를 의미하며, 주로 웹 서버나 API 서버에서 사용됩니다. 즉, 1초 동안 서버가 처리할 수 있는 HTTP 요청의 수를 나타냅니다.사..
웹서버 Tomcat과 Undertow 성능 최적화 (server.xml, application.yml) Tomcat과 Undertow 설정 방법 및 각 설정의 뜻웹 애플리케이션 서버를 설정할 때, Tomcat과 Undertow는 자주 사용되는 두 가지 웹 서버입니다. 두 서버 모두 성능 최적화와 안정성을 위해 다양한 설정 옵션을 제공하는데, 이 글에서는 각 서버의 설정 방법과 설정 항목에 대한 의미를 정리해 보겠습니다.1. Tomcat 설정 방법Tomcat은 Java 기반의 서블릿 컨테이너로, 웹 애플리케이션을 실행하기 위해 자주 사용됩니다. Tomcat의 설정은 server.xml 파일을 통해 이루어집니다.주요 설정 항목 및 의미protocol="org.apache.coyote.http11.Http11Nio2Protocol"의미: NIO2 기반의 비동기 소켓 처리를 활성화합니다. 비동기 처리는 I/O 작..
[Java] for문 vs Stream 성능 비교 및 차이점 정리 Java 8 이상에서는 컬렉션을 처리할 때 for문 대신 Stream API를 활용하는 경우가 많습니다.코드를 더 간결하게 만들 수 있고, 병렬 처리도 쉽게 가능하죠.하지만 성능이나 가독성 측면에서는 어떤 차이가 있을까요?오늘은 실제 성능 비교 테스트와 함께 for문과 Stream의 차이를 정리해보겠습니다.✅ 1. 기본 차이점항목for문Stream프로그래밍 스타일명령형 (Imperative)선언형 (Declarative)코드 길이비교적 길고 절차적임짧고 함수형 스타일병렬 처리직접 쓰레드 구현 필요.parallel() 사용으로 간단함학습 난이도직관적이고 쉬움함수형 개념 이해 필요✅ 2. 예시: 문자열 숫자들의 합 구하기String numStr = "1234567890";🔸 for문 방식int sum = ..
파일 조각 업로드 (Chunked Upload) HTTP 방식의 파일 업로드 도중 중단되었을 때 나중에 이어서 업로드하는 기능을 구현하려면 파일 조각 업로드(chunked upload) 방식이나 비동기 파일 업로드 방식 등을 고려할 수 있습니다.1. 파일 조각 업로드 (Chunked Upload)파일을 작은 조각으로 나누어 업로드하는 방식입니다. 중단되었을 때, 이미 업로드된 부분은 그대로 두고, 중단된 부분부터 다시 업로드를 시작할 수 있습니다.클라이언트 측: 파일을 일정 크기(예: 1MB)로 분할하여 업로드합니다. 각 조각은 순차적으로 서버로 전송되며, 서버는 각 조각을 받고 저장합니다.서버 측: 각 파일 조각을 수신하여 임시 디렉터리에 저장하고, 모든 조각이 업로드되면 이를 하나로 합쳐서 최종 파일을 생성합니다.중단 처리: 클라이언트가 중단된 지..
[JAVA] 스레드 병렬 처리 방법 ExecutorService를 이용한 병렬처리 ExcutorService를 사용하면 스레드를 직접 관리하지 않고도 병렬 처리를 수행할 수 있다. 아래 예제는 스레드 풀을 생성하고, 병렬로 작업을 진행한다.import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;public class ParallelProcessingExample { public static void main(String[] args) { // 스레드 풀 생성 ExecutorService executor = Executors.newFixedThreadPoo..
[Java mail] MIME 구조 메일 본문은 이메일의 실제 내용을 나타내며, 주로 텍스트 형식이나 HTML, Multipart 요소를 포함할 수도 있습니다.각 부분은 특정 형식이나 콘텐츠 유형을 나타내는 MIME(Multipurpose Internet Mail Extensions) 형식으로 지정됩니다.이번글에서는 MIME에 대해 정리해보겠습니다.MIME (Multipurpose Internet Mail Extensions) 이메일이나 웹에서 텍스트 이외의 데이터를 전송할 때 사용되며, 다양한 유형의 데이터를 포함하는 것을 가능하게 합니다.텍스트 이외의 데이터, 예를 들어 이미지, 오디오, 비디오 등의 멀티미디어 데이터를 이메일이나 웹을 통해 전송할 수 있도록 지원합니다.여러 유형의 데이터를 함께 포함하는 멀티파트 메시지를 생성할 수 있..
[JavaMail] 메일 원본과 Message 헤더 메일 원본이메일 헤더와 본문을 포함한 데이터이며, 이메일 관리나, 스팸여부 파악 등에 사용될 수 있습니다.이메일 헤더는 이메일의 메타데이터를 포함하며, 본문은 텍스트 또는 HTML 내용을 포함하고 있습니다.이메일 클라이언트(네이버, 지메일, 아웃룩 등)에서 “원본 표시”, “원문 보기” 버튼이나 링크를 통해 확인 할 수 있습니다. Message 헤더이메일의 Message 헤더는 이메일의 메타데이터를 포함하며, 시스템이 메시지를 처리하는 데 필요한 정보들을 포함합니다.메일 헤더설명From메일의 송신자 이름 및 계정 정보To메일의 수신자 이름 및 계정 정보Cc메일의 참조자 이름 및 계정 정보Bcc메일의 숨은 참조자 이름 및 계정 정보Subject메일 본문의 제목Reply-To수신자가 회신할 이름 및 계정 정..
[JavaMail]메일 프로토콜 POP3와 SMTP, IMAP POP3 (Post Office Protocol version 3)POP3는 전자 메일을 수신하기 위한 프로토콜로, 이메일 서버에서 클라이언트로 이메일을 가져오는 데 사용됩니다.보통 이메일 클라이언트가 POP3를 사용하여 이메일 서버에 접속하여 이메일을 다운로드합니다.SMTP (Simple Mail Transfer Protocol)SMTP는 전자 메일을 발송하기 위한 프로토콜로, 이메일 클라이언트가 이메일 서버에 이메일을 전송할 때 사용됩니다.이메일 클라이언트는 SMTP를 사용하여 메일 서버에 이메일을 보내며, 이후 메일 서버가 수신자의 메일 서버로 메일을 전송합니다.IMAP (Internet Messaging Access Protocol)POP3는 이메일을 클라이언트 장치로 다운로드한 후 서버에서 삭제..

반응형