전체 글 234

2장 리액티브 스트림즈

2.1 리액티브 스트림즈(Reactive Streams)개발자가 리액티브한 코드를 작성하기 위해서는 코드 구성을 용이하게 해주는 리액티브 라이브러리가 필요하다.리액티브 라이브러리를 어떻게 구현할지 정의해 놓은 별도의 표준 사양이 리액티브 스트림즈이다.데이터 스트림을 Non- Blocking이면서 비동기적인 방식으로 처리하기위한 리액티브 라이브러리의 표준사양리액티브 스트림즈를 구현한 구현체로 RxJava, Reactor, Akka Streams, Java9 Flow APi 등이 있다.2.2 리액티브 스트림즈의 구성 요소리액티브 스트림즈를 통해 구현해야 하는 API 컴포넌트에는 Publisher, Subscriber, Subscription, Processor가 있다.Publisher: 데이터를 생성하고, ..

1장 리액티브 시스템과 리액티브 프로그래밍

리액티브 시스템(Reactive System)이란?어떤 이벤트나 상황이 발생했을 때, 반응을 해서 그에 따라 적절하게 행동하는 것을 의미한다.클라이언트의 요청에 즉각적으로 응답함으로써 지연 시간을 최소화한다.리액티브 선언문MEANS: 리액티브 시스템에서 주요 통신 수단으로 무엇을 사용할 것인지 표현한 것입니다.비동기 메시지 기반의 통신을 통해서 구성요소들 간의 느슨한 결합, 격리성, 위치 투명성 보장위치 투명성: 사용자 및 응용 프로그램이 데이터가 어디에 저장되어 있는지에 대한 세부 정보를 숨긴다.FORM: 메시지 기반 통신을 통해서 어떠한 형태를 지니는 시스템으로 형성되는지를 나타낸다. (탄력성, 회복성)탄력성(Elastic): 시스템의 작업량이 변화하더라도 일정한 응답을 유지하는 것을 의미한다.응답성..

Binary Search, Recursive Binary Search

1. Binary Search단순 Binary Search 코드이다.정렬된 배열에서 특정 값을 찾는 효율적인 알고리즘이다. 검색 범위를 절반씩 줄여나가면서 목표 값을 찾는다.l = 0, r = n-1으로 초기화한 다음에, 중간 값을 찾아서, 범위를 좁혀나간다.a[m] > x 인 경우, 즉 m의 배열값이 x보다 큰 경우 r = m-1로 설정한다. (0~m-1 탐색)a[m]   증명 (Proof by Invariant)invariant는 불변 법칙이다. invariant를 설정하고, invariant가 깨지지 않음을 통해 증명한다.a[i] = x 라면, i는 l과 r의 인덱스 범위 안에 무조건 있을 것이다. 이는 l과 r이 아무리 변해도, a[i] = x인 i는 l과 r의 인덱스 범위 안에 무조건 있기 ..

etc/알고리즘 2024.10.26

MySQL로 배우는 데이터베이스 개론과 실습 2판 - 5장 문제 풀이

211113(1)DELIMITER //CREATE PROCEDURE InsertCustomer ( IN custid VARCHAR(10), IN name VARCHAR(10), IN address VARCHAR(20), In phone VARCHAR(10))BEGIN INSERT INTO Customer (custid, name, address, phone) VALUES (custid, name, address, phone);END //DELIMITER ;(2)delimiter //CREATE PROCEDURE BookInsertOrUpdate(mybookid INTEGER, mybookname VARCHAR(20), mypublisher VARCHAR(20), mypri..

MySQL로 배우는 데이터베이스 개론과 실습 2판 - 4장 문제 풀이

1.ABS(-15) : 15CEIL(15.7) : 16COS(3.14159) : -1FLOOR(15.7) : 15LOG(10,100) : 2MOD(11,4) : 3POWER(3,2) : 9ROUND(15.7) : 16SIGN(-15) : -1TRUNCATE(15.7, 0) : 15CHAR(67 USING utf8) : CCONCAT('HAPPY','Birthday') : HAPPYBirthdayLOWER('Birthday') : birthdayLPAD('Page 1',15,'*.') : *.*.*.*.*Page 1REPLACE('JACK','J','BL') : BLACKRPAD('Page 1',15,'*') : Page 1*********SUBSTR('ABCDEFG',3,4) : CDEFTRIM(LEAD..

MySQL로 배우는 데이터베이스 개론과 실습 2판 - 3장 문제 풀이

1.select bookname from BOOK where bookId =1;select bookname from BOOKwhere price >= 20000;select sum(salePrice) from Orderswhere custId = (select custId from customer where name = '박지성');select count(*) from Orderswhere custid = (select custId from Customer where name = '박지성');select count(distinct publisher) from BOOK Bjoin orders O on o.bookId = B.bookIdwhere custid = (select custId from Custo..