🟩/Spring Boot 5

스레드 풀(Thread Pool)

사전에 생성된 스레드 집합을 유지하여 요청이 들어올 때마다 새로운 스레드를 생성하는 대신 재사용하는 기법이다.자원의 낭비를 줄이고, 스레드 생성 및 소멸의 오버헤드를 감소시켜 성능을 향상한다.ThreadPoolTaskExecutorSpring Boot에서는 기본적으로 여러 작업을 비동기적으로 처리하기 위해 다양한 스레드 풀을 설정할 수 있다.`ThreadPoolTaskExecutor`를 사용하여 설정할 수 있다.Spring에서 제공하는 스레드 풀 구현체이다.`corePoolSize`기본적으로 유지할 스레드 수초기에는 이 수만큼의 스레드를 생성하며, 작업이 들어오면 이 스레드들이 작업을 처리한다.`maxPoolSize`최대 스레드 수큐가 가득 찼을 때, 추가로 생성할 수 있는 최대 스레드 수이다.`queu..

🟩/Spring Boot 2024.06.13

Spring WebFlux

Spring 5에서 도입된 모듈리액티브 프로그래밍을 지원하는 비동기 및 논블로킹 웹 프레임워크이다.전통적인 Spring MVC와 달리, Reactive Streams API를 기반으로 하여 비동기적이고 논블로킹 방식으로 HTTP 요청을 처리한다. 고성능, 높은 동시성, 효율적인 리소스 사용을 가능하게 한다. Reactive Streams비동기 스트림 처리의 표준이다.WebFlux는 이 표준을 기반으로 구축되었으며, 두 가지 주요 데이터 타입인 `Mono`와 `Flux`를 사용한다.Mono단일 결괏값을 비동기적으로 반환하는 타입이다. 하나의 객체나 빈 결과를 나타낸다Flux다중 결괏값을 비동기적으로 반환하는 타입이다.여러 개의 객체나 스트림을 나타낸다. Functional 및 Annotation 기반 프로..

🟩/Spring Boot 2024.06.13

I/O 모델

동기식 블로킹 I/O 모델I/O 작업이 완료될 때까지 호출한 쓰레드가 블로킹된다. 데이터 읽기 또는 쓰기 작업이 완료될 때까지 해당 쓰레드는 다른 작업을 수행하지 못하고 기다린다. ex) `RestTemplate`을 사용하는 HTTP 호출이다. 비동기식 논블로킹 I/O 모델I/O 작업이 완료될 때까지 호출한 쓰레드가 블로킹되지 않는다. 대신 I/O작업이 완료되면 콜백 메소드가 호출되거나 Future/Pipeline을 통해 결과를 처리한다. ex) `webClient`를 사용하는 HTTP 호출이다.

🟩/Spring Boot 2024.06.13

Spring Security

Spring 애플리케이션의 보안 기능을 제공하는 강력하고 유연한 프레임워크인증(authentication)과 권한 부여(authorization) 기능을 제공하여 애플리케이션을 보호한다.주요 기능인증 (Authentication)사용자가 누구인지 확인하는 과정이다.폼 로그인, HTTP Basic 인증, OAuth, LDAP 등 다양한 인증 방식을 제공한다.권한 부여 (Authorization)인증된 사용자가 애플리케이션의 어떤 리소스에 접근할 수 있는지 결정하는 과정이다. 역할 기반 접근 제어(RBAC)와 같은 다양한 권한 부여 메커니즘을 제공한다. 보안 설정애플리케이션의 보안 정책을 설정할 수 있는 다양한 구성 옵션을 제공한다.보안 규칙을 정의하여 특정 URL 패턴에 대해 접근을 제어하거나, 특정 사용..

🟩/Spring Boot 2024.04.15

데이터 소스, 커넥션 풀

데이터 소스 (DataSource)JDBC(Java Database Connectivity) API에서 데이터베이스 연결을 관리하는 주요 인터페이스이다.데이터베이스 연결의 설정, 관리, 풀링을 처리하며, 데이터베이스와의 통신을 간소화한다.커넥션 풀 (Connection Pool)데이터베이스와의 연결을 재사용할 수 있도록 여러 개의 데이터베이스 연결을 미리 생성하여 관리하는 메커니즘새로운 연결을 생성하는 오버헤드를 줄이고, 다수의 클라이언트 요청을 효율적으로 처리할 수 있다.라이브러리로 HikariCP, Apache Commons DBCP2, Tomcat JDBC Connection PoolHikariCP는 Spring Booot 2.x의 기본 커넥션 풀이다. HikariCP 설정`maximum-pool-..

🟩/Spring Boot 2024.03.30