Skip to Content
Java 성능, 제 2판
book

Java 성능, 제 2판

by Scott Oaks
May 2025
Beginner to intermediate
450 pages
7h 34m
Korean
O'Reilly Media, Inc.
Book available
Content preview from Java 성능, 제 2판

10장. Java 서버

이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com

이 장에서는 Java 서버 기술에 관한 주제를 살펴봅니다. 이러한 기술의 핵심은 모두 클라이언트와 서버 간에 HTTP를 통해 데이터를 전송하는 방법에 관한 것입니다. 따라서 이 장에서는 다양한 스레드 모델, 비동기 응답, 비동기 요청, JSON 데이터의 효율적인 처리 등 일반적인 서버 기술에 공통적인 주제에 중점을 두고 있습니다.

서버 확장은 대부분 스레드의 효과적인 사용과 관련이 있으며, 이를 위해서는 이벤트 중심의 비차단 I/O가 필요합니다. Apache Tomcat, IBM WebSphere Application Server, Oracle WebLogic Server와 같은 전통적인 Java/Jakarta EE 서버는 꽤 오랫동안 이를 위해 Java NIO API를 사용해 왔습니다. Netty 및 Eclipse Vert.x와 같은 최신 서버 프레임워크는 Java NIO API의 복잡성을 분리하여 더 작은 크기의 서버를 구축하기 위한 사용하기 쉬운 빌딩 블록을 제공하며, 이러한 프레임워크(모두 Netty 프레임워크 사용)를 기반으로 구축된 Spring WebFlux 및 Helidon과 같은 서버는 확장 가능한 Java 서버를 제공합니다.

이러한 최신 프레임워크는 리액티브 프로그래밍을 기반으로 하는 프로그래밍 모델을 제공합니다. 반응형 프로그래밍의 핵심은 이벤트 기반 패러다임을 사용하여 비동기 데이터 스트림을 처리하는 것입니다. 반응형 프로그래밍과 비동기 프로그래밍은 이벤트를 바라보는 다른 방식이지만, 우리의 목적상 반응형 프로그래밍과 비동기 프로그래밍 모두 동일한 성능상의 이점, 즉 프로그램을 많은 연결 또는 데이터 소스로 확장할 수 있는 기능(특히 I/O 확장)을 제공합니다.

Java NIO 개요

논블로킹 I/O의 작동 방식에 익숙하다면 다음 섹션으로 건너뛰셔도 됩니다. 그렇지 않다면 이 장의 기초가 되는 논블로킹의 작동 방식과 중요성에 대한 간략한 개요를 살펴보시기 바랍니다.

초기 버전의 Java에서는 모든 I/O가 차단되었습니다. 소켓에서 데이터를 읽으려고 시도한 스레드는 적어도 일부 데이터를 사용할 수 있거나 읽기 시간이 초과될 때까지 대기(차단)했습니다. 더 중요한 것은 소켓에서 읽기를 시도하지 않고는 소켓에서 데이터를 사용할 수 있는지 여부를 알 수 있는 방법이 없다는 것입니다. 따라서 클라이언트 연결을 통해 데이터를 처리하려는 스레드는 데이터 읽기 요청을 하고, 데이터를 사용할 수 있을 때까지 차단하고, 요청을 처리하고 응답을 다시 보낸 다음 소켓의 읽기 차단으로 돌아가야 합니다. 이는 그림 10-1에 설명된 상황으로 이어집니다.

Threads blocking on I/O reads from clients
그림 10-1. 클라이언트의 I/O 읽기에서 차단하는 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Java 학습, 제 6판

Java 학습, 제 6판

Marc Loy, Patrick Niemeyer, Daniel Leuck
Java 제네릭 및 컬렉션, 제 2판

Java 제네릭 및 컬렉션, 제 2판

Maurice Naftalin, Philip Wadler
Think Java, 제 2판

Think Java, 제 2판

Allen B. Downey, Chris Mayfield
자바 최적화: 가장 빠른 성능을 구현하는 검증된 10가지 기법

자바 최적화: 가장 빠른 성능을 구현하는 검증된 10가지 기법

이일웅, 벤저민 J. 에번스, 제임스 고프, 크리스 뉴랜드

Publisher Resources

ISBN: 9798341654631Supplemental Content