목차 리액티브 프로그래밍(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) {..
자바의 기본 자료형인 int와 long은 아래와 같은 범위의 수를 저장할 수 있다. Type Range int -2,147,483,648 ~ 2,147,483,647 (약 21억) long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (약 900경) long 타입으로도 충분히 큰 수를 저장할 수 있지만, 가끔 알고리즘 문제에서 이 범위를 넘는 수의 연산이 필요해질 때가 있다. 그럴 때 사용하는 것이 범위의 제한이 없는 자료형, BigInteger다. 추가로 BigInteger는 java.math 패키지에 소속되어 있으며, 사용 시 아래와 같이 import 해주어야 한다. import java.math.BigInteger; 선언 BigInteger 자료..
이중 반복문으로 출력할 수 있는 가장 간단한 일 중 하나가 바로 구구단이다. 스트림을 이래저래 가지고 놀다 보니까 이중 반복문도 돌아보고 싶어 졌는데, 연습하는 김에 구구단을 출력해 본다. 이중 for문으로 구구단 출력 특별한 설명은 필요 없을 것 같아서 바로 코드로 간다. import java.util.ArrayList; import java.util.List; public class MultiplicationTable { public static void main(String[] args) { for(int i = 2; i < 10; i++) { List list = new ArrayList(); for (int j = 1; j < 10; j++) { list.add(i * j); } System.o..
List → Array List → String[] 문자열 리스트를 문자열 배열로 바꾸는 건 굉장히 간단하다. import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Example { public static void main(String[] args) { List list = new ArrayList(); list.add("101"); list.add("103"); list.add("107"); String[] arr = list.toArray(new String[list.size()]); System.out.println(Arrays.toString(arr) + ", " + arr.getClass(..
map() map()은 스트림에 접근해서 사용자가 원하는 매핑을 실행해주는 메서드이다. import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Example { public static void main(String[] args) { List list = Arrays.asList(2, 3, 5, 7); List result = list.stream() .map(a -> a * 2) // 모든 요소에 곱하기 2 .collect(Collectors.toList()); System.out.println(result); } } [4, 6, 10, 14] 지정된 리스트의 각 요소에 곱하기 2를 하..
스트림을 사용하다 보면 분명히 Intstream을 사용중인데 max(), min(), average()등에서 에러가 나곤 한다. 이때 최종연산에 int 변환을 붙이거나 반환 타입을 OptionalInteger로 변환하면 해결된다. 반환타입을 double로 받고 싶을 때도 마찬가지 에러가 나는데, 이는 max(), min(), average()의 반환타입이 기본적으로 OptionalInt, OptionalDouble이기 때문이다. 설명을 읽어보면 스트림이 비어있는 경우에 비어있는 optional을 반환한다고 쓰여있다. NullPointerException을 피하기위한 장치로 보이는데, 결과부터 말하면 Optional = OptionalInt Optional = OptionalDouble 이다. 귀찮아도 원..
뭔가 검색하다 이런 것들을 봐 버렸다. 굉장해..... https://knowyourmeme.com/photos/1173139 Programming languages Gijinka | Gijinka / Moe Anthropomorphism See more 'Gijinka / Moe Anthropomorphism' images on Know Your Meme! knowyourmeme.com https://sentencedtoship.tumblr.com/post/147401402096 sentencedtoship PROGRAMMING LANGUAGES GIJINKAS PART 2: Objective-C: Smol pure innocence, owns more than 10 Apple products, bul..
- Total
- Today
- Yesterday
- 스트림
- 지지
- BOJ
- 면접 준비
- 여행
- 칼이사
- 세계일주
- 동적계획법
- RX100M5
- 알고리즘
- 자바
- Algorithm
- 야경
- 세모
- 유럽여행
- a6000
- 중남미
- java
- 유럽
- 백준
- spring
- 세계여행
- 남미
- 맛집
- 리스트
- 스프링
- Backjoon
- 파이썬
- 기술면접
- 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 |