평소 Spring 생태계에 대해 얼추 알기는 했지만, Web 관련 개발과 거리가 멀었다. 퇴사 전에는 '정산 업무를 해보고 싶다' 라는 생각 전까지는 Web관련 업무가 없었기도 했다. 언젠가 할 기회가 생기겠지라는 생각은 있었지만, 사용 기술 스택을 들으니 업무를 받
정의 Caller : 호출하는 함수 Callee : 호출 당하는 함수 Functional Interface (함수형 인터페이스) > - 함수형 프로그래밍을 지원하기 위해서 Java 8부터 도입 1개의 추상 메소드를 갖고 있는 인터페이스 함수를 1급 객체로 사용할 수 있다. 함수를 변수에 할당 함수를 인자로 전달 함수를 반환값으로 사용 Funct...
I/O 관점에서는 Application과 Kernel간 사이를 보자. Blocking의 종류 > Blocking은 Thread가 오랜 시간 일을 하거나 대기하는 경우 발생 CPU-bound Blocking : 오랜 시간 일을 한다. IO-bound Blocking : 오랜 시간 대기한다. CPU-bound Blocking > Thread가 대부분의 ...

CompletableFuture > 2014년에 발표된 Java 8에서 처음 도입 비동기 프로그래밍 지원 Lambda, Method reference 등 Java 8의 새로운 기능 지원 Method reference > :: 연산자를 이용해서 함수에 대한 참조를

50개에 가까운 연산자들을 활용하여 <span style="background-color: - 비동기 non-Blocking 개발 지원에 큰 역할을 한다.<span style="background-color: \`\`\`javaHelper.completi

CompletionStage 연산자 및 thenXXX vs thenXXXAsync의 차이를 thread 관점에서 다뤄보려 한다. > 간단한 Helper 클래스 코드 finishedStage : 1을 반환하는 완료된 CompletableFuture 반환 Compl

supplyAsync vs runAsync > supplyAsync > Supplier를 제공하여 CompletableFuture를 생성 가능하게 함 Supplier는 아무런 인자 없이 값을 만들고 반환하는 인터페이스. Supplier의 반환값이 Complet

현재 블로킹하게 작동 중인 코드를 비동기적으로 변경해보려 한다.Entity는 임시 디비 개념으로 사용Domain에 실제 객체 저장Service에서 반환받은 Entity들을 Domain으로 변환Repository 내부에서 조회시, 작업시간을 <span style="
History > 2011년 6월 - MS 닷넷 프레임워크를 위한 Reactive Extensions 배포 2013년 2월 - Netflix 기술 블로그에서 RxJava (0.5) 공개 2013년 9월 - Reactive manifesto v1 공표 2013년 11월
reacting to events or situaions rather than acting first to change or prevent something(무언가를 바꾸거나 예방하기 위해) <span style="background-color: 소프트웨어 아키텍

일반적인 서비스에서 구성 요소 or 객체는 다른 객체를 직접 호출하고 데이터를 받음.이 과정에서 서로 직접 의존하기 때문에, 경계가 무너지고 구성 요소간 독립적인 실행이 보장되지 않음복원력, 유연성 모두 위협여기에 reactive manifesto를 적용한다면?cal

데이터 혹은 이벤트를 제공하는 Publisher데이터 혹은 이벤트를 제공받는 Subscriber데이터 흐름을 조절하는 Subscriptionsubscribe 함수를 제공.publisher에 다수의 subscriber 등록을 지원subscription을 포함하고, Sub
subscribe가 없더라도 데이터를 생성하고, stream에 push하는 publisher트위터 게시글 읽기, 공유 리소스 변화 등여러 subscriber에게 동일한 데이터 전달subscribe가 시작되는 순간ㅂ누터 데이터를 생성하고 전송파일 읽기, 웹 API 요청

Reactive streams - Project reactor > Publisher의 경우 구현 라이브러리에 따라 다르다. Project reactor는 Spring Webflux에서 기반이 되는 라이브러리 RxJava는 Netflix에서 만들고, Rx를 Java 형

Netflix 사에서 개발Flowable, Observable, Single, Maybe, Completable, publisher 제공0..n개의 item 전달에러가 발생하면 error signal 전달 후 종료모든 item을 전달 -> complete signal

Java 1.0에서 처음 도입파일과 네트워크에 데이터를 읽고 쓸 수 있는 API 제공byte 단위로 읽고 쓸 수 있는 stream (Inputstream과 Outputstream)blocking 동작Closable 구현. 명시적으로 close하거나 try-with-re