일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- reactive
- dfs
- api-gateway
- spring cloud netflix eureka
- netflix eureka
- Java
- 단위테스트
- spring cloud netflix
- java #jvm #reference #gc #strong reference
- unittest
- 설계
- unit
- docker
- Dynamic Routing
- code refactoring
- microservice architecture
- test
- zuul
- forkandjoinpool #threadpool #jvm #async #non-blocking
- Eureka
- spring cloud
- 탐색
- springcloud
- container image #docker #layer #filesystem #content addressable
- 서비스스펙
- spring cloud netflix zuul
- netflix
- BFS
- Spring Data Redis
- Today
- Total
phantasmicmeans 기술 블로그
Control Flow: if, when, for, while 위 control flow의 항목들은 익숙한 것들이다보니 모든 내용을 다룰 필요는 없어보이니.. https://kotlinlang.org/docs/reference/control-flow.html If 코틀린에서 if는 expression으로 간주 될 수 있다. 즉 값을 반환할 수 있다는 말이다. 삼항 연산자를 대신할 수 있는 이유도 이 때문인데 아래 코드를 보자 // Traditional usage var max = a if (a b) { max = a } else { max = b } // As expression!! 값 반환 val max = if (a ..
Kotlin Null Safety 기본적으로는 NPE를 제거하기 위해 Kotlin은 null 할당을 허락하지 않는다. 그러나 nullable한 무언가 필요하다면 타입 끝에 ? 를 붙이면 된다 . fun main() { var neverNull: String = "This can't be null" neverNull = null // error var nullable: String? = "You can keep a null here" nullable = null // OK } Null 접근 fun test(str: String?) : String { return str } TypeMismatch 위와 같이 nullable 타입을 인자로 받는 경우 null check가 없다면 IDE에서 아래와 같은 ..
Hello World intellj에 코틀린 프로젝트 생성 및 Hello world는 아래 문서로 https://kotlinlang.org/docs/tutorials/jvm-get-started.html 1. Variables Kotlin은 불변성을 강제하지 않는다. var / val을 사용하여 이를 컨트롤 하면 된다. val: immutable var: mutable val a: String = "initial" // immutable var b: Int = 1 // mutable 또한 Kotlin은 타입 추론을 잘한다. 변수 선언시 타입을 포함하지 않아도 대입 값을 보고 타입 추론한다. var c = 3 // compiler infers the type Int var d = "ABC" // compi..
일반적인 flow는 Publisher -> Data -> Subscriber이다. 그러나 Publisher -> [Data1] -> Operator -> [Data2] -> Operator2 -> [Data3] -> Subscriber 처럼 Operator를 활용해 Subcriber에 도달하는 Data를 컨트롤 할 수 있다. 쉽게 말해 Operator는 Data를 가공한다. JAVA8의 Stream 관련 메소드와 비슷한 의미를 가진다고 보면 된다 아래 코드는 3가지 operator를 거쳐 logSubscriber에게 데이터가 전달되는 과정을 나타낸다. 기본 개념은 아래와 같다. 대리 Subscriber를 사용하여 subscriber를 연결한다. 초기 Publisher에서 정의한 Subscription을 ..
흐름 제어 푸시모델만 사용하는것으로는 기술적 한계가 있다. 메시지 기반 통신의 본질은 요청에 응답하는 것이다. Producer가 Subscriber의 처리 능력을 무시하면 시스템에 악영향을 끼칠 수 있기 때문에 매우 까다롭다. 느린 프로듀서와 빠른 컨슈머 컨슈머가 매우 빠르게 동작하는 상황에서 프로듀서가 느리게 동작한다고 가정하자. 이러한 상황은 컨슈머의 능력을 프로듀서가 믿지 못하기에 발생할 수 있다. 상황에 따라 컨슈머의 처리 능력이 동적으로 변할 수도 있다. 가장 쉽게는 프로듀서 수를 늘려서 컨슈머에게 부담을 증가시킬 수 있고 그렇지만.. 결론적으로 이러한 문제를 해결하기 위해 필요한 것은 실제적 요구이다. 순수 푸시모델은 이러한 메트릭을 제공할 수 없으므로 동적으로 시스템의 처리량을 증가시키는 것..