분류 전체보기 212

4장 함수형 인터페이스

함수형 인터페이스(Functional Interface)단 하나의 추상 메서드만을 가진다.함수를 값으로 취급하기 때문에 어떤 함수를 호출할 때, 함수 자체를 파라미터로 전달가능하다.단 하나의 추상 메서드를 가지는 인터페이스 예제public class Example { public static void main(String[] args) { List cryptoCurrencies = SampleData.cryptoCurrencies; Collections.sort(cryptoCurrencies, new Comparator () { @Override public int compare(CryptoCurency c1, CryptoCurrency cc2) { return cc1.getUnit(..

3장 Blocking I/O vs Non-Blocking I/O

Blocking I/O하나의 스레드가 I/O에 의해서 차단되어 대기하는 것CPU 대비 많은 수의 스레드를 할당하는 멀티스레드는 문제점 발생컨텍스트 스위칭으로 인한 스레드 전환 비용 발생컨텍스트 스위칭기존에 실행되고 있는 프로세스의 정보를 PCB라는 공간에 저장되고, 다시 실행해야 할 프로세스 정보를 PCB로부터 불러오는 과정을 컨텍스트 스위칭이라고 한다.컨텍스트 스위칭이 많으면 많을수록 CPU 전체 대기 시간은 길어지기 때문에 성능은 저하된다.과도한 메모리 사용으로 오베헤드 발생 가능성새로운 스레드가 생성되면 JVM에서는 해당 스레드를 위한 스택 영역의 일부를 할당하며, 스래드 정보는 개별 프레임에 저장서블릿 컨테이너 기반의 Java 웹 애플리케이션은 요청당 하나의 스레드를 할당한다. 각각 하나의 스레드..

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의 인덱스 범위 안에 무조건 있기 ..

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..

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

본 글은 블로그 작성자가 직접 푼 풀이이며, 틀린 풀이가 있을 수 있습니다. 틀린 풀이가 있을 시에 댓글로 알려주시면 감사하겠습니다! 2431113345 1. 후보키가 아님, 불필요한 속성을 포함하지 않는 최소한의 속성을 가져야 하기 떄문이다.2. 슈퍼키 맞음. 대체키이기 때문이다3. NULL 값 불가, 기본키 중 하나이기 때문이다.4. 가질수 있다. 12.1. R: A, S: (C,D), (C,E)2. R의 기본키 (A), S의 기본키 (C,D) 13.1. a2인 튜플 반환2. A,B 속성 가진 것만 반환3. a2 b14. 다 곱한 결과 반환5. (a1, b1, c1, c1, d2, e1), (a1, b1, c1, c1, d1, e2), (a2, b1, c1, c1, d2, e1), (a2, b1, c..

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

본 글은 블로그 작성자가 직접 푼 풀이이며, 틀린 풀이가 있을 수 있습니다. 틀린 풀이가 있을 시에 댓글로 알려주시면 감사하겠습니다!4333221121 데이터베이스(Database): 관련된 데이터의 집합. 효율적으로 접근, 관리, 저장할 수 있는 방식으로 구조화된 데이터의 집합DBMS(Database Management System): 데이터베이스를 관리하는 소프트웨어. 데이터의 생성, 검색, 업데이트, 삭제 기능을 제공함.데이터 모델(Data Model): 데이터베이스의 구조, 데이터의 종류, 데이터 간의 관계 및 데이터에 대한 규칙을 정의한 표현 방식데이터베이스 시스템(Database System): DBMS와 함께 데이터베이스를 구성하고 운영하는 시스템을 의미 12. 통합된 데이터integrate..