분류 전체보기 224

클라우드 컴퓨팅(Cloud Computing)

인터넷을 통해 서버, 저장소, 데이터베이스, 네트워크, 소프트웨어, 분석 등을 포함한 컴퓨팅 서비스를 제공하는 것이다. 물리적인 서버나 저장소를 직접 관리할 필요 없이, 필요한 만큼의 컴퓨팅 자원을 임대하고 사용료를 지불한다. 주요 특징온디맨드 셀프서비스(On-demand self-service)사용자는 언제든지 필요한 만큼의 컴퓨팅 자원을 자동으로 제공받을 수 있다.광범위한 네트워크 접근(Broad network access)인터넷을 통해 어디서든 접근할 수 있다.리소스 풀링(Resource pooling)여러 사용자가 동일한 물리적 자원을 공유하면서도 독립적으로 사용할 수 있다.빠른 탄력성(Rapid elasticity)필요에 따라 자원을 빠르게 확장하거나 축소할 수 있다.측정 서비스(Measured..

🟩/Cloud 2024.06.14

saveAll, save

saveAll컬렉션에 포함된 모든 엔티티를 한 번에 저장한다.하나의 트랜잭션 내에서 모든 엔티티를 저장한다.모든 엔티티가 성공적으로 저장되거나, 실패하면 모두 롤백내부적으로 JPA 구현체는 배치 처리를 사용하여 성능을 최적화할 수 있다.한 번의 데이터베이스 연결로 여러 엔티티를 저장하므로 네트워크 및 데이터베이스 오버헤드가 줄어든다.for문 save각 `save` 메서드 호출마다 별도의 트랜잭션이 생성될 수 있다.트랜잭션 관리를 명시적으로 하지 않으면, 엔티티마다 개별적인 트랜잭션이 사용될 수 있다.각 엔티티마다 데이터베이스 호출이 발생하므로 네트워크 및 데이터베이스 오버헤드가 증가한다.saveAll 예외 발생 롤백 막기`@Transactional(propagation = Propagation.REQUI..

🟩/JPA 2024.06.13

스레드 풀(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

[골드 5] 편세권

https://www.acmicpc.net/problem/31849 처음 풀이 (시간 초과)방의 개수 R, 편의점 개수 C각 방에 대하여 모든 편의점을 조사해서 최소인 편세권 점수를 구한다.하지만 문제 조건이 R+C R이 2.5 * 10^5, C가 2.5 * 10^5이라고 가정하면 시간 초과가 난다. 2번째 풀이 (시간 초과)각 방에 대하여 bfs로 제일 가까운 최초 편의점만 Map에서 탐색한다.O( R * NM)으로 판단 시간 초과가 난다.3번째 풀이 (정답)각 편의점의 위치를 distance 0이라고 두고 Queue에 전부 넣고 맵을 전부 한번 훑는다.이후에 해당 집들에서 score를 계산한다.import java.io.*;import java.util.*;class Room { int y, x..

🟦/백준 2024.06.13