DevTales
close
프로필 배경
프로필 로고

DevTales

  • 분류 전체보기 (31)
    • Java (4)
      • Spring Boot (0)
    • Kotlin (0)
    • C (1)
    • Go (9)
    • Python (4)
    • Database (3)
    • Cloud (5)
    • 기타 (4)
  • 홈
  • 방명록
[Java] I/O 작업도 비동기로 가능한가요?

[Java] I/O 작업도 비동기로 가능한가요?

Proactor Pattern 지난 포스팅에서 Selector와 Reactor 패턴에 대해 다뤘습니다.또한, Reactor 패턴을 활용하여 I/O Multiplexing이 가능한 EventLoop를 구현해 보았습니다. 하지만 Reactor 패턴에는 몇 가지 한계점이 존재합니다. 이번 글에서는 이러한 한계점과 그것을 극복한 Proactor 패턴에 대해 살펴보겠습니다. Reactor  vs  Proactor Reactor 패턴은 단일 쓰레드로 동기적으로 이벤트가 발생할 때마다 Selector가 이를 처리해야 합니다. 이로 인해, 트래픽이 과도하거나 이벤트 처리에 시간이 오래 걸리는 경우, 전체 시스템에 영향을 줄 수 있는 문제가 발생할 수 있습니다. 반면에, Proactor 패턴은 비동기적으로 I/O 작업을..

  • format_list_bulleted Java
  • · 2025. 2. 12.
  • textsms
[Java] CompletableFuture 란?

[Java] CompletableFuture 란?

자바에서의 비동기 처리 저번 글에서 동기 / 비동기, 블로킹 / 논블로킹에 대해 알아보았는데, 이번 글에서는 Java에서 비동기 작업을 처리하기 위한 강력한 클래스인 CompletableFutue에 대해 알아보겠습니다.CompletableFuture는 java.util.concurrent 패키지에 포함되어 있으며, Future 인터페이스와 CompletionStage 인터페이스를 구현하고 있는 클래스로 Java 8에서 추가된 기능입니다. 이로 인해 Lambda, Method reference 등 다양한 기능을 지원합니다. 이 글에서는 기존의 비동기 처리를 위해 사용하던 Future 인터페이스가 가지는 한계와 CompletableFuture가 그것을 어떻게 해결했는지, 그리고 CompletableFutur..

  • format_list_bulleted Java
  • · 2025. 2. 11.
  • textsms
[Java] 동기와 블로킹, 뭐가 다른가요?

[Java] 동기와 블로킹, 뭐가 다른가요?

동기와 블로킹은 다른건가요? 동기(Synchronous)와 블로킹(Blocking)은 개발을 하다 보면 흔히 접할 수 있는 개념들입니다.하지만 예전에는 이런 개념들을 막연히 알고 있었고, 그 차이점도 명확하게 이해하지 못했습니다.특히, '동기'와 '블로킹'이라는 개념을 혼동하며, 아래와 같이 생각했던 적도 있었습니다.동기(Synchronous)면 블로킹(Blocking) 아닌가?  동기/비동기, 블로킹/논블로킹은 애플리케이션의 성능과 효율성에 직결되기 때문에, 올바르게 이해하고 활용하기 위해서2가지 관점에서 자세히 살펴보겠습니다.  동기, 비동기란? 우선 동기,비동기, 블로킹, 논블로킹을 설명할 때 사용되는 단어들의 의미와동기, 비동기란 무엇인지 간단하게 확인하고 넘어가겠습니다. Caller : 작업을 ..

  • format_list_bulleted Java
  • · 2025. 2. 10.
  • textsms
  • navigate_before
  • 1
  • navigate_next
전체 카테고리
  • 분류 전체보기 (31)
    • Java (4)
      • Spring Boot (0)
    • Kotlin (0)
    • C (1)
    • Go (9)
    • Python (4)
    • Database (3)
    • Cloud (5)
    • 기타 (4)
최근 글
인기 글
최근 댓글
태그
  • #점프 투 파이썬
  • #논블로킹
  • #혼자 공부하는 C언어
  • #system call
  • #java
  • #Callback
  • #PostgreSQL
  • #비동기
  • #tucker의 go언어 프로그래밍
  • #mysql
전체 방문자
오늘
어제
전체
Copyright © Kakao Corp. All rights reserved.
Designed by 티스토리

티스토리툴바