본문 바로가기

전체 글

(23)
Scheduler 📚 이전학습더보기SinkScheduler 📘Thread에 대한 이해 🧵Thread의 기본 개념정의: 프로세스 내에서 실행되는 가장 작은 실행 단위특징: 독립적인 실행 경로와 스택을 가짐동시성: 여러 작업을 동시에 처리 가능Thread의 종류User Thread (사용자 스레드)애플리케이션 레벨에서 생성/관리개발자가 직접 제어 가능Daemon Thread (데몬 스레드)백그라운드에서 실행데몬 스레드는 백그라운드에서 동작하며, 주요 애플리케이션의 동작에 영향을 미치지 않고 보조 작업을 수행합니다.백그라운드에서 실행데몬 스레드는 메인 스레드가 종료될 때 자동으로 종료됩니다. 즉, 명시적으로 종료 시키지 않아도 됩니다.자동종료데몬 스레드는 메인 스레드가 종료될 때 자동으로 종료됩니다. 즉, 명시적으로 종료..
2차원DP - 내리막 📝 내리막길- 2차원 동적 프로그래밍 문제 해결2차원 테이블에서 [0 , 0] 에서 부터 시작하여 우측하단 Y,X에 대해 도달 할 수 있는 경우의 수 를 구하는 문제이다.  📌 문제 조건&설명Input 값으로 X , Y 테이블의 크기가 주어지며, 테이블 좌표에 대한 값이 주어진다.내리막길의 시작은 [ 0 , 0 ] 에서 부터 시작한다.현재 좌표에서 이동할 때 Source 자연수와 Target 자연수를 비교하여 Src > Target 이면 좌표이동 가능테이블의 가장 우측 하단 좌표에 도달 할 수 있는 경우의 수를 구한다.🗒️ 접근방식상,하,좌,우 좌표 이동 제약에 대한 조건 확인 const which = [ // 방향이동할 좌표 선정 [0, 1], // → [0, -1],..
Sinks 📚 이전학습더보기더보기백프레셔🌟 WebFlux Sinks - 개요 및 주요 개념WebFlux Sinks는 프로그래밍 방식으로 데이터를 리액티브 스트림에 푸시할 수 있는 메커니즘을 제공합니다.외부 이벤트나 수동 트리거가 데이터를 생성하는 시나리오에서 특히 유용합니다.✨ WebFlux Sinks의 주요 특징⚡ Backpressure 지원Sinks는 다운스트림 구독자의 수요를 존중하며, 리소스를 효율적으로 활용합니다.🔒 스레드 안전성동시 접근 및 데이터 방출이 안전하게 관리되어 멀티스레드 환경에서 적합합니다.🎛️ 유연한 데이터 방출여러 전략(unicast, multicast, replay)을 통해 이벤트가 구독자에게 전달되는 방식을 제어할 수 있습니다.🛠️ WebFlux Sinks의 유형🟩 Unic..
Backpressure 📚 이전학습더보기Reactor 란?🌊 WebFlux Backpressure 정리📖 Backpressure란?백프레셔는 데이터 소비자가 데이터를 생산자보다 빠르게 처리할 수 없을 때 발생하는 문제를 관리하기 위한 메커니즘입니다.Reactive Streams 표준에서 중요한 개념으로, 생산자와 소비자 간의 데이터 처리 속도를 조정하여 시스템 안정성을 보장합니다.🎯 백프레셔의 주요 목표데이터 과부하 방지소비자가 처리할 수 없는 양의 데이터를 제공하지 않도록 조율.시스템 안정성 향상처리량을 조정하여 OOM(OutOfMemory)과 같은 문제 방지.효율적인 리소스 사용CPU, 메모리 등 자원을 최적으로 활용하여 병목현상 최소화.📚 Backpressure를 알기 전 필요한 개념Buffer의 개념Publis..
DP - RGB거리 백준(1149) 📝RGB거리- 동적 프로그래밍 문제 해결RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다.집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 📌 문제 조건&설명1번 집의 색은 2번 집의 색과 같지 않아야 한다.N번 집의 색은 N-1번 집의 색과 같지 않아야 한다.i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다.즉, 집은 N개 있고 , 각각의 집을 RGB중 하나로 칠한다. + 1번 ( R ) , 2번 ( R ) 중복되게 칠하면안됨! 🗒️   접근방식  DP[0] 에 기본 R..
DP-피보나치 타일링 백준(11726) 📝 2N 타일링- 동적 프로그래밍 문제 해결2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.  📌 문제 조건&설명첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 🗒️ 접근방식피보나치 수열을 생각해보자.(0,1) 이 있다고 생각하고 이것을 쭉쭉 계속 더해보자 ( 규칙을 발견하자 )0+1=1      ➡️  [0]1+1=2      ➡️  [1] 1+2=3      ➡️  [2] 3+2=5      ➡️  [3]        5+3=8      ➡️  [4] 방식 1. [N] 값을 찾으려면?..
Recactor 용어정의 📚 이전학습더보기Reactor 란?Reactor 용어 정의 📘Reactor에서 사용되는 주요 용어와 개념들을 정리합니다. 이 용어들은 Reactor를 학습하고 사용할 때 중요한 기초가 됩니다.1. Publisher 📤데이터를 발행(방출) 하는 역할.데이터를 생산하거나 이벤트를 발생시키는 생산자(Producer) 역할을 담당.Flux 또는 Mono가 대표적인 Publisher의 구현체입니다.2. Subscriber 📥데이터를 소비하거나 이벤트를 구독하는 역할.Publisher의 데이터를 처리하거나 반응하는 소비자(Consumer) 역할을 담당.데이터를 요청하거나 구독 해지 등의 작업을 수행합니다.3. Emit 🚀Publisher가 데이터를 내보내는(방출하는) 행위를 뜻합니다.예: Flux가 값을 ..
Reactor 란? 📚 이전학습더보기Spring WebFlux란?리액터(Reactor)란? ⚡Reactor는 리액티브 프로그래밍을 지원하기 위한 강력한 리액티브 라이브러리입니다.Reactive Streams 스펙을 구현한 라이브러리 중 하나로, 비동기 데이터 흐름을 다루기 위한 도구를 제공합니다.1. Reactor의 역할 🔄Reactor는 Spring 에코 시스템에서 중요한 역할을 합니다:Reactive Stack의 기반으로 동작.Spring WebFlux와 같은 리액티브 프레임워크의 핵심 구성 요소로 포함.Reactor는 비동기 데이터 흐름 처리에 적합하며, 고성능, 높은 동시성을 요구하는 애플리케이션 개발을 지원합니다.2. Reactor의 주요 특징 ✨🌀 Reactive Streams 표준 구현Reactor는 Re..