어제 수업을 듣다가 동시성과 병렬성에 대해 배웠다. 말로만 들으니 헷갈려서 시간이 난 김에 정리. 선 요약 병렬성은 동시성을 구현하는 방법 중 하나. 동시성은 동시처럼 보이지만 수도(Pseudo) 동시성. 병렬성이 진짜 동시성. Concurrency vs. Parallelism 동시성(Concurrency) 병렬성(Parallelism) 여러 작업이 동시에 실행되고 있는 것처럼 처리되는 것 여러 작업이 실제로 동시에 실행되는 것 싱글(멀티) 코어 환경에서 논리적 멀티 스레드 생성 및 오버래핑 멀티 코어 환경에서 물리적 멀티 스레드 생성 및 실행 2개 이상의 논리 스레드 필요 2개 이상의 코어, 2개 이상의 물리 스레드 필요 빠른 시간에 하나씩 많은 것을 번갈아가며 처리(멀티 태스킹) 한번에 많은 것을 처..
프로젝트 리액터(Project Reactor), 혹은 리액터는 리액티브 스트림즈의 구현체다. 로고와 이름부터 원자로, 아이언맨을 떠오르게 만드는 리액터는 2014년에 태어난 현대적인 기술로 2022년 현재 3.4.24 버전까지 릴리즈 되어있다. 스프링 MVC와 비교했을 때 가장 큰 차이점은 논 블로킹 통신을 지원한다는 점이며, 명령형이 아닌 선언형 프로그래밍으로 이루어졌다는 것 역시 큰 차이점이다. 지난 글에서 리액터를 사용한 리액티브 프로그래밍의 기초와 용어에 대해 보았으니, 2022.10.13 - [Development/Spring] - [Spring]리액티브 프로그래밍 시작하기, 용어 정리 [Spring]리액티브 프로그래밍 시작하기, 용어 정리 지난 글에서 리액티브 프로그래밍과 리액티브 스트림즈, ..
summarizingInt()는 Collectors와 함께 사용 돼 정수형 스트림에서 제목의 계산을 한번에 해주는 연산자이다. 물론 그중 원하는 요소를 뽑아오는 것도 얼마든지 가능한 아주 기특한 아이이다. 코드를 보자. import java.util.IntSummaryStatistics; import java.util.List; import java.util.stream.Collectors; public class SummarizingExample { public static void main(String[] args) { List list = List.of(2, 3, 5, 7, 11, 13, 17, 19); IntSummaryStatistics statistics = list.stream() .coll..
지난 글에서 리액티브 프로그래밍과 리액티브 스트림즈, 그 구현체인 프로젝트 리액터에 대해 알아보았다. 2022.10.12 - [Development/Spring] - [Spring]리액티브 프로그래밍(Reactive Programming) 2022.10.12 - [Development/Spring] - [Spring]리액티브 스트림즈(Reactive Streams) [Spring]리액티브 스트림즈(Reactive Streams) 지난 글에서 리액티브 시스템이란 쉽게 말해 반응 속도가 빠른 프로그램을 설계하는 원칙이며 리액티브 프로그래밍은 그 원칙을 구현하는 논 블로킹, 비동기 방식의 선언형 개발 패러다임이라 gnidinger.tistory.com 짧게 요약하면 아래와 같은 내용이다. 리액티브 프로그래밍 ..
목차 지난 글에서 리액티브 시스템이란 쉽게 말해 반응 속도가 빠른 프로그램을 설계하는 원칙이며 리액티브 프로그래밍은 그 원칙을 구현하는 논 블로킹, 비동기 방식의 선언형 개발 패러다임이라 했었다. 2022.10.12 - [Development/Spring] - [Spring]리액티브 프로그래밍(Reactive Programming) [Spring]리액티브 프로그래밍(Reactive Programming) 리액티브 프로그래밍(Reactive Programming)이란 논 블로킹, 비동기 데이터 흐름 및 새로운 정보의 가용성에 기반을 둔 선언형 개발 패러다임이다. 또는 리액티브 시스템을 구현하는 방법이자 하위 개 gnidinger.tistory.com 이번 글에선 리액티브 프로그래밍의 표준 사양인 리액티브 ..
목차 리액티브 프로그래밍(Reactive Programming)이란 논 블로킹, 비동기 데이터 흐름 및 새로운 정보의 가용성에 기반을 둔 선언형 개발 패러다임이다. 또는 리액티브 시스템을 구현하는 방법이자 하위 개념이라고 볼 수도 있다. 정의에 사용된 단어에 대한 뜻은 잠시 후에 알아보기로 하고, 우선 리액티브 시스템이 무엇인지 정리하고 가자. Reactive System 리액티브 시스템이란 '반응이 좋은, 민감한' 시스템이란 뜻이다. 이렇게 말해선 잘 와닿지 않을 수도 있으니, 조금 더 직관적으로 말하자면 리액티브란 한 마디로 입력이 발생했을 때 최대한 빠른 시간에 응답하도록 하는 설계 원칙이라고 할 수 있다. 이는 웹 앱에서 굉장히 중요한 원칙인데, 고객들이 대체로 느린 반응속도를 기다려주지 않기 때..
자꾸 까먹어서 쓸 때마다 검색하는 나 자신이 초라해서 정리한다. 자바엔 세 가지 출력 메서드가 존재한다. print() - 출력 println() - 출력 후 줄바꿈 printf() - 형식(Format)이 있는 출력 그중에서 잘 외워지지 않지만 간간히 써먹는 printf()에 대해 알아보자. 먼저 사용 문법은 아래와 같다. System.out.printf(format, arguments) 괄호의 첫 번째 칸에 형식을, 두 번째 칸 이후에 출력할 변수를 넣으면 되는데, 예를 들면 아래와 같이 쓰인다. public class PrintfExample { public static void main(String[] args) { String str = "Gnidinger"; int n = 3000; Syst..
각종 알고리즘 문제를 풀거나, 입력 값으로 데이터를 받을 때 의도했건 그렇지 않건 문자열 앞 뒤로 공백이 생기고, 생긴 공백을 제거해야 할 때가 있다. trim()은 그때 사용하는 메서드이고, strip()은 자바 11부터 지원하기 시작한 비슷한 메서드이다. 둘의 공통점과 차이점을 간단하게 알아보자. 공통점 public class TrimStripExample { public static void main(String[] args) { String str = " Hello Gnidinger! "; System.out.printf("원본 문자열: '%s'%n", str); System.out.printf("문자열.trim(): '%s'%n", str.trim()); System.out.printf("문자열..
소수(Prime Number)는 1과 자기 자신으로밖에 나누어 떨어지지 않는 1 이외의 정수를 말한다. 지난 글에 올렸던 스트림으로 도는 이중 반복문을 소수 찾기에 응용해 보았다. 임의의 정수 m과 n사이의 소수를 전부 출력하는 코드이며, 단순이 2부터 자기 자신의 제곱근까지 전부 나누어보는 방법을 취한다. 조금 더 정확하게는 두 가지의 필터링을 사용하는데, 1보다 큰 수일 것 2부터 자기 자신의 제곱근(의 반올림)까지 나누어 떨어지지 않을 것 이다. 코드를 보자. import java.util.Scanner; import java.util.stream.IntStream; public class SearchPrimeNumbers { public static void main(String[] args) {..
- Total
- Today
- Yesterday
- 스트림
- 유럽
- 여행
- Backjoon
- BOJ
- 세모
- 칼이사
- 세계일주
- 백준
- 파이썬
- 지지
- 맛집
- 알고리즘
- 면접 준비
- 세계여행
- java
- RX100M5
- 남미
- 스프링
- 리스트
- 유럽여행
- 기술면접
- spring
- 중남미
- Algorithm
- 야경
- a6000
- 동적계획법
- Python
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |