반응형

2021/08 5

Kotlin 클래스 주요 개념 with Java class와 차이점

클래스 정의에 대한 Java와 Kotlin 차이점이 포스트에서는 코틀린에서의 클래스가 자바와 어떻게 다른지 대략적으로 정리한 내용을 다룹니다.공부하면서 정리한 포스트이기에 잘못된 내용이나 부족한 부분이 있을 수 있습니다.댓글로 일러주시면 감사하겠습니다 :)1. class 키워드에 대한 차이점기본적으로 자바에서는 class 키워드를 통해 클래스를 정의합니다.class SomeClass { // 속성, 메서드 선언}코틀린에서는 이렇게 선언하면 기본적으로 클래스를 포함한 모든 멤버가 final로 정의됩니다. (상속 불가)class SomeClass { // 속성, 메서드 선언}때문에 코틀린에는 상속 및 재정의가 가능한 요소로 만들어주는 open이라는 키워드가 있습니다.클래스, 속성, 메서드 모든 곳..

Back-End/Kotlin 2021.08.29

리액티브 프로그래밍 시리즈 3 - 스레드 스케쥴링 (Thread scheduling)

이 포스트 시리즈는 Reactive Programming은 토비의 스프링 저자 이일민님의 리액티브 프로그래밍 유튜브 강좌를 공부하며 정리한 내용입니다.1. 표준 Reactive streams의 문제점지금까지 봐온 코드는 전부 하나의 스레드에서 동작한다.이 코드를 실전에서 활용하기엔 그닥 유용하지 않은 코드이다.Publisher가 Blocking I/O를 사용하거나 데이터를 준비하는데 시간이 오래걸릴 경우 그걸 다 기다려야하기 때문이다.반대로 Publisher의 데이터 생성은 굉장히 빠른데, Subscriber의 데이터 처리가 늦을 경우도 마찬가지다.Reactor에서는 Scheduler를 스레드 개념의 오퍼레이터를 활용해 이부분을 해결한다.여기에서는 이 개념을 직접 구현한 코드를 보겠다.아래 기본적인 Pu..

리액티브 프로그래밍 시리즈 2 - Operators와 Reactor 맛보기

이 포스트 시리즈는 Reactive Programming은 토비의 스프링 저자 이일민님의 리액티브 프로그래밍 유튜브 강좌를 공부하며 정리한 내용입니다.0. TipsStream 인터페이스에 iterate 라는 메소드가 있다.이 메소드는 어떠한 데이터 스트림을 쉽게 만들어 낼 수 있는 메소드이다.public List createSampleIntegerList(int count) { return Stream.iterate(1, e -> e + 1).limit(count).collect(Collectors.toList());}위 코드는 1 ~ 10까지 정수를 담은 리스트를 만든다.핵심은 iterate(시작값, 값의 변화 함수) 메소드인데, 위 예시에서 시작값은 1, 변화는 1씩 증가시킨다라는 뜻이다.그리고..

리액티브 프로그래밍 시리즈 1 - Reactive Streams 개요

이 포스트 시리즈는 Reactive Programming은 토비의 스프링 저자 이일민님의 리액티브 프로그래밍 유튜브 강좌를 공부하며 정리한 내용입니다.1. Iterable과 Observable의 차이점Iterable과 Observable은 정반대의 동작방식으로 같은 목적의 문제를 해결한다.1.1. Iterable 개념자바에서 연속적인 데이터 구조를 표현할 때 List를 주로 사용한다.그리고 주로 아래와 같이 for-each 구문을 사용한다.import java.util.List;import java.util.Arrays;List list = Arrays.asList(1, 2, 3, 4, 5);for (Integer i : list) { System.out.println(i);}이는 List 인터페이스가..

Spring Cloud Gateway 기본 활용법

0. Spring Cloud Gateway 란? Netflix OSS의 API Gateway 컴포넌트인 Zuul을 Spring 진영에서 직접 만든 API Gateway 입니다. Zuul은 기본적으로 블록킹 방식으로 동작했었는데요. (Zuul 1.x) 이를 개선하기 위해 Zuul 2.x에서 논블록킹 방식을 도입했습니다. Spring 진영에서는 Zuul의 동기방식이었던 단점을 보완하며 Spring 생태계에 더 적합한 형태의 비동기 API Gateway를 만든것이 바로 Spring Cloud Gateway 입니다. This project provides an API Gateway built on top of the Spring Ecosystem, including: Spring 5, Spring Boot 2 ..