Category/Spring22 Spring의 멀티스레드와 Blocking I/O Spring Framework는 기본적으로 Blocking I/O 방식으로 사용자의 요청을 처리한다.Blocking I/O란 입출력 작업(Input/Output)시에 동기식으로 해당 작업이 완료될때까지 해당 스레드가 대기하고있는 방식이다.스프링에서의 Blocking I/O 작업이란 파일 I/O, 데이터베이스 I/O , 네트워크 I/O와 같은 작업에서Blocking I/O 방식을 사용한다. 그런데, 스프링은 Blocking I/O방식으로 어떻게 다중 사용자의 요청을 처리할까? Tomcat의 멀티스레드 + Spring Blocking I/O 방식 Spring 프레임워크가 Blocking I/O 방식으로 사용자의 요청을 처리한다면, 예를 들어서 10명의 사용자가 요청을 보내오면Spring은 순차적으로 10명.. 2025. 3. 12. 스프링 스케줄러를 사용하여 커넥션풀의 현재 커넥션 개수 측정하기 spring을 통해 실행중인 어플리케이션에서 현재 커넥션풀의 연결된 커넥션 개수와 유휴 커넥션 개수등을 모니터링하는 방법에 대해 알아보았다.커넥션풀은 commons의 dbcp 라이브러리를 사용하고있고, 스프링 빈에 정의된 datasource을 통해커넥션풀의 maxIdle, maxActive등을 설정한다.여기서 스프링 빈에 정의된 datasource 객체는 BasicDataSource이다.commons의 dbcp 공식문서에서 BasicDataSource 클래스에 대해 살펴보면, getNumActive() 와 getNumIdle() 메소드가 있다.해당 메소드는 현재 연결중인 데이터소스(커넥션) 갯수와 유휴 커넥션 갯수를 반환한다. 따라서, DataSource는 이미 스프링빈에 정의되어있으므로 해당 데이터소.. 2024. 10. 16. [SpringBoot] 스프링 시큐리티 사용하기 기존의 스프링 레거시 프로젝트에서 스프링 시큐리티를 사용할때, 직접 configuration xml 파일 설정을 통해 시큐리티 설정을 xml방식으로 설정해주었다. 스프링부트 3.x.x이후 버전에서 스프링 시큐리티를 통해 로그인 및 접근 권한을 더 간편하게 할 수있다. 스프링 시큐리티 디펜던시 추가 Java 클래스 WebSecurityConfig를 통한 시큐리티 설정 package com.boot.board_240214.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.anno.. 2024. 2. 16. [SpringBoot] JPA를 통해 게시판 페이징 처리하기 스프링 공식문서에서 Spring Data JPA의 문서를 보면, 페이징 처리에 대한 설명이 자세히 나와있다. JPA Repository의 상속 구조를 보면, JpaRepository가 페이징과 crud기능을 가진 repository를 모두 상속받아 모든 기능을 사용할수 있다. 즉, JpaRepository를 상속받은 리포지토리를 통해 PagingAndSortingRepository 리포지토리의 Page 객체를 사용하여 간편하게 페이징 처리를 할수있는것이다. Page객체를 통한 페이징 처리 게시물 리스트를 출력하는 list 컨트롤러에서, 파라미터로 Pageable 객체를 받아준뒤, boardRepository의 findAll 메소드의 파라미터로 pageable를 추가해주면, Page 객체 타입의 board.. 2024. 2. 15. 이전 1 2 3 4 ··· 6 다음