Language

    [리엑티브 생산자 Publisher 2] Flowable & Observable (feat. 배압전략)

    생산자 Flowable vs Observable 비교 Floawable Observable Reactive Streams 인터페이스 구현 O 구현 X 데이터 처리 Subscripber 에서 처리 Observer 에서 처리 배압 기능 (데이터 갯수 제어) O X Subscription 으로 전달받는 데이터 갯수를 제어할 수 있음 배압기능이 없기때문에 데이터 갯수를 제어할 수 없음 구독 해지 Subscription로 해지 Disposeable으로 해지 Flowable 생산자 (배압 전략) 배압이란, Flowable(생산자)에서 데이터를 통지하는 속도가 Subscriber(구독자)에서 통지된 데이터를 처리하는 속도보다 빠를 때 밸런스를 맞추기위해 데이터 통지량을 제어하는 기능을 말한다. 데이터 통지속도와 데이..

    [리엑티브 생산자 Publisher 1] Cold Publisher & Hot Publisher

    Cold Publisher & Hot Publisher Cold Publisher(차가운 생산자) 생산자는 소비자가 구독 할때마다 데이터를 처음부터 새로 통지한다. 데이터를 통지하는 새로운 타임 라인이 생성된다. 소비자는 구독 시점과 상관없이 통지된 데이터를 처음부터 전달 받을 수 있다. void ColdPublisher(){ Flowable flowable = Flowable.just(1, 3, 5, 7); flowable.subscribe(data -> System.out.println("구독자1: " + data)); flowable.subscribe(data -> System.out.println("구독자2: " + data)); } Hot Publisher(뜨거운 생산자) : 생산자는 소비자 수..

    객체지형 4대 패러다임(캡슐화, 추상화, 다형성, 상속)

    1. 캡슐화(Encapsulation) 객체의 속성(data fields)과 행위(메서드, methods)를 하나로 묶고 실제 구현 내용 일부를 외부에 감추어 은닉한다 사용목적: 정보은닉 구현방법: 접근지정자(private, protected, public) 2. 추상화 공통의 속성이나 기능을 묶어 이름을 붙이는 것 사용 목적: 모델링 구현 방법: 클래스 3. 다형성(Polymorphism) 다형성이란 프로그램 언어 각 요소들(상수, 변수, 식, 객체, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질 사용목적: 사용 편의 구현방법: 오버로딩(여러 종류의 타입을 받아들여 결국엔 같은 기능을 하도록 만들기 위한 작업), 오버라이딩(오버라이딩은 상위 클래스의 메서드를 하위 클래스에서 재정의..

    Kotlin 표준(Scope)함수: apply, also, with, run, let

    Scope Function 이라는 함수명에서 알 수 있듯이, 이 함수들을 람다식을 이용해서 호출하면 일시적인 Scope(범위)가 생기게 되고, 이 범위 안에서는 전달된 객체에 대해 "it" 또는 "this" 라는 Context Object를 통해서 접근하게 됩니다. Scope Function에는 서로 다른 두 가지 주요 차이점이 있습니다. 1) Context Object를 참조하는 방법 (this, it) 2) Return value 1) Context Object: this or it Scope Function 람다식 내에서 Context Object는 실제 객체명 대신, "it" 또는 "this" 키워드로 접근하게 됩니다. this run, with, apply 는 Context Object를 "th..

    해시, 스택/큐, 힙, 정렬, 완전탐색, DFS/BFS

    해시 완주하지 못한 선수 import java.util.HashMap; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; HashMap hm = new HashMap(); for (String player : participant) hm.put(player, hm.getOrDefault(player, 0) + 1); for (String player : completion) hm.put(player, hm.get(player) - 1); for (String key : hm.keySet()) { if (hm.get(key) != 0){ answer = key; } } ..

    구현 - 아이디어를 코드로 바꾸는 구현

    상하좌우 문제 NxN정사각형 공간의 가장 왼쪽 위 좌표는 (1, 1), 가장 오른쪽 아래는 (N, N) 이다. 여행가 A는 상, 하, 좌, 우 방향으로 이동할 수 있으며, 시작 좌표는 항상 (1,1)이다. L(왼쪽 한칸) R(오른쪽 한칸) U(위로 한칸) D(아래로 한칸) 움직이는 의미이고, 이 4개의 문자로 된 문자열대로 움직였을때 최종 도착할 지점의 좌표를 구하라 단 NxN 공간을 벗어나 는 움직임은 무시됨( 입력예시 R R R U D D 출력예시 3 4 더보기 해결방법 ㅐㅐ public static void main(String[] args) { Scanner sc = new Scanner(System.in); // N을 입력받기 int n = sc.nextInt(); sc.nextLine(); /..