일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 아마존웹서비스
- Compute Engine
- AWS Database
- GKE
- Solution Architect Certificate
- Amazon Web Service
- Google Cloud
- AWS Certificate
- Cloud Storage
- container
- Kubernetes Engine
- 앤서블
- gcp
- AWS Solution Architect
- Solution Architect
- AWS 자격증
- AWS
- Google Cloud Platorm
- Cloud SQL
- kubernetes
- Cloud Datastore
- Google Cloud Platform
- ansible
- 리버스 프록시
- VPC
- Google Cloud Platrofm
- playbook
- Reverse Proxy
- Cloud Spanner
- Cloud Bigtable
- Today
- Total
목록language (14)
sungwony
JAVA8의 parallelStream은 멀티스레드 프로그래밍을 간편하게 해준다. 개발자가 직접 스레드 혹은 스레드풀을 생성하거나 관리할 필요없이 parallelStream(), parallel()만 사용하면 알아서 ForkJoinFramework를 이용하여 작업들을 분할하고 병렬적으로 처리하게 된다. 이번에 조회가 오래 걸리는 시스템을 개선하면서 조회 서비스를 다음과 같이 처리하였다. public class StreamUtils { private static final int PARTITION_SIZE = 100; public static List getResultParallel(List parameter, Function mapper){ if (parameter == null || parameter...
리액티브 프로그래밍이란? 여러 API를 취합해서 전달해야 하는 시스템에서는 각 API들의 경과 시간 전체 합산 시간만큼 필요하지만 반대로 리액티브로 진행할 경우 여러 API 중 가장 긴 경과 시간이 전체 시간 - 데이터 흐름과 전달에 관한 프로그래밍 패러다임 - 데이터 스트림과 변경 사항에 대한 전파(Propagation)를 중심으로 하는 프로그래밍 패러다임 - 데이터가 통지될 때마다 관련 프로그램이 반응(Reaction)해 데이터를 처리하는 방식으로 데이터를 직접 가져와 처리(PULL)하는 것이 아니라 보내온 데이터(PUSH)를 받은 시점에 반응해 이를 처리하는 방식이다. - 함수형 프로그래밍과 유사한 선언적 코드(declarative code)를 사용하여 비동기 처리 파이프라인을 생성할 수 있는 새로..
Java8에서는 더블 콜론(::)이라는 문법이 추가되었다. 더블 콜론은 정확하게는 'Method Reference'라고 부른다. 즉, 메소드 참조를 의미한다. 메소드 참조의 종류는 4가지이다. 종류 예시 static 메소드 참조 ContainingClass::staticMethodName 특정 객체의 인스턴스 메소드 참조 containingObject::instanceMethodName 특정 유형의 임의의 객체에 대한 인스턴스 메소드 참조 ContainingType::methodName 생성자 참조 ClassName::New 각각의 메소드 참조가 어떻게 이루어지는지 살펴보자. static 메소드 참조 import java.util.Arrays; public class MethodReferenceSampl..
Java 8에는 "stream"이 추가되었다. 이는 Java I/O 인터페이스의 InputStream, OutputStream과는 완전히 다르다. 스트림은 "연속된 정보"를 처리하는데 사용한다. 지금까지 우리가 알고 있는 연속된 정보에는 '배열'과 '컬렉션' 등이 존재한다. 아쉽게도 배열에서는 스트림을 활용할 수 없다. 하지만 배열을 컬렉션으로 변환하여 스트림을 활용할 수 있다. 먼저 스트림의 구조에 대해서 알아보자. list.stream().filter(x -> x>10).count() 스트림 생성 중개 연산 종단 연산 스트림 생성 : 컬렉션의 목록을 스트림 객체로 변환. 여기서 스트림 객체는 java.util.stream패키지의 Stream 인터페이스를 말한다. 이 Stream() 메소드는 당연히 C..
java.util.function 패키지 Java 8에 추가되었으며 람다 표현식을 보조하는 인터페이스를 모아놓은 패키지이다.Function, Supplier, Consumer, Predicate, UnaryOperator, BinaryOperator 등의 인터페이스가 있으며, 람다 표현식으로 선언될 추상 메소드를 하나씩 가지고 있다.java.util.function API Predicate- boolean test(T t)- default Predicate and(Predicate
람다(lambda) 표현식은 Java 8의 가장 특징적인 표현식. 람다 표현식은 함수형 프로그래밍에 유용하고 개발을 용이하게 한다. 람다 표현식은 인터페이스 메소드가 "하나"인 것들만 적용이 가능하다. 람다 표현식은 익명 클래스로 전환이 가능하며, 익명 클래스는 람다 표현식으로 전환이 가능하다. 기본 문법 람다 표현식은 3 부분으로 구성되어 있다. 매개 변수 목록 화살표 토큰(Arrow Token) 처리 식 (int x, int y) -> x+y 아래는 인터페이스를 익명클래스와 람다표현식으로 선언한 예 public class NestedAndLambda { public static void main(String[] args) { NestedAndLambda sample = new NestedAndLamb..
『자바 8에 추가된 것들은?』 · Optional · Default method · 날짜 관련 클래스 · 병렬 배열 정렬 · StringJoiner 『자바 8에서 변경된 것들은?』 · 함수형 프로그래밍 · 람다(Lambda) 표현식 · 메소드 참조 · java.util.function 패키지 · Stream
JVM의 Runtime Data Area는 자바 애플리케이션 실행을 위한 메모리 영역이다. RegisterJVM StackNative Method StackMethod AreaHeapRegister, JVM stack, Native Method Stack은 각 Thread가 개별적으로 소유한 공간.(Thread와 운명을 함께 한다.) Method Area, Heap은 모든 Thread가 공유하는 공간.(JVM 기동시에 생성된다.) JVM은 Stack 기반 구조를 가지고 있다. Register CPU 내 Register는 데이터를 신속하게 저장하여 사용하는 공간으로 data, address, status 등으로 구성되어 있다. 한편 가상 머신인 JVM에도 PC(Program Counter) Register..
클로저(closure)의 활용(1) - 특정 함수에 사용자가 정의한 객체의 메서드 연결하기 다음과 같은 소스를 보자 function HelloFunc(func){ this.greeting = "hello"; } HelloFunc.prototype.call = function(func){ func ? func(this.greeting) : this.func(this.greeting) } var userFunc = function(greeting){ console.log(greeting); } var objHello = new HelloFunc(); objHello.func = userFunc; objHello.call(); 위의 소스코드에서 함수 HelloFunc는 greeting 변수가 있고, func ..
"이미 생명 주기가 끝난 외부 함수의 변수를 참조하는 함수를 클로저라고 한다" function outerFunc(){/*자유 변수*/var x = 1; return function(){/*x와 arguments를 활용한 로직*/}} var new_func = outerFunc();/* outerFunc 실행 컨텍스트 종료 */new_func(); *실행 컨텍스트 "실행 가능한 코드를 형상화하고 구분하는 추상적인 개념" "실행 가능한 자바스크립트 코드 블록이 실행되는 환경" "현재 실행되는 컨텍스트에서 이 컨텍스트와 관련 없는 실행 코드가 실행되면,새로운 컨텍스트가 생성되어 스택에 들어가고 제어권이 그 컨텍스트로 이동한다." 1. 실행 컨텍스트 생성 과정- 활성 객체 생성실행 컨텍스트가 생성되면 자바스크립..