쉽게 켜다
close
프로필 배경
프로필 로고

쉽게 켜다

  • 분류 전체보기 (202)
    • 개발 일지 (1)
    • IT (2)
    • DDD (6)
    • 스프링(Spring) (53)
      • Spring (30)
      • MVC (3)
      • JPA (7)
      • WebFlux (10)
      • Testing (1)
      • Security (1)
      • Web Socket (1)
    • 데이터베이스 (15)
      • MySQL (2)
      • Redis (1)
    • 네트워크 (11)
      • 네트워크 프로그래밍 (9)
    • Git (8)
    • HTTP (4)
    • 알고리즘 (67)
      • 알고리즘 (7)
      • BOJ (53)
      • 프로그래머스 (7)
    • JAVA (6)
      • Java (1)
      • 이펙티브 자바 (4)
      • 100가지 질문 (0)
    • Kafka (4)
    • Python (2)
    • CI_CD (1)
    • Azure (3)
    • 컴퓨터망 (11)
    • 운영체제 (0)
  • 홈
  • 태그
  • 방명록
[Spring/WebFlux] Blocking I/O와 Non-Blocking I/O

[Spring/WebFlux] Blocking I/O와 Non-Blocking I/O

I/O I/O란 간단히 얘기하면 데이터의 입력(Input)과 출력(Output) 을 일컫는 말입니다. 단순히 파일 I/O를 넘어서, 데이터를 조회하거나 추가하는 DB I/O, 네트워크 통신에서 네트워크 I/O 등이 포함됩니다. I/O는 어플리케이션의 성능에 가장 영향을 많이 미칩니다. 따라서, 높은 성능을 보장해야 하는 어플리케이션 입장에서 I/O는 큰 장애물이 될 수 있습니다. 이 I/O의 두 가지 방식인 Blocking I/O와 Non-Blocking I/O에 대해 알아봅시다. Blocking I/O Blocking I/O란, I/O 작업이 진행되는 동아 유저 프로세스가 자신의 작업을 중단한채 I/O가 끝날 때까지 대기하는 방식 을 의미합니다. 즉, 하나의 스레드가 I/O에 의해서 차단되어 대기하는 ..

  • format_list_bulleted 스프링(Spring)/WebFlux
  • · 2024. 2. 7.
  • textsms
[Spring/WebFlux] 리액티브 스트림즈(Reactive Streams)

[Spring/WebFlux] 리액티브 스트림즈(Reactive Streams)

리액티브 스트림즈가 무엇인지 살펴보고, 리액티브 스트림즈의 핵심 컴포넌트인 Publisher와 Subscriber의 동작 과정에 대해서 알아보겠습니다. 리액티브 스트림즈란? 리액티브한 코드 작성과 구성을 용이하게 해 주는 리액티브 라이브러리를 어떻게 구현할지 정의해 놓은 표준 사양을 리액티브 스트림즈라고 합니다. 한마디로, 데이터 스트림을 Non-Blocking이면서 비동기적인 방식으로 처리하기 위한 리액티브 라이브러리의 표준 사양 이라고 표현할 수 있습니다. 이를 구현한 구현체에는 RxJava, Reactor, Akka .. 등 다양한 것들이 있습니다. 리액티브 스트림즈 구성요소 리액티브 스트림즈를 통해 구현해야 하는 API 컴포넌트에는 Publisher, Subscriber, Subscription,..

  • format_list_bulleted 스프링(Spring)/WebFlux
  • · 2024. 2. 6.
  • textsms
[Spring/WebFlux] 리액티브 시스템(Reactive System)과 리액티브 프로그래밍(Reactive Programming)

[Spring/WebFlux] 리액티브 시스템(Reactive System)과 리액티브 프로그래밍(Reactive Programming)

리액티브 시스템과 리액티브 프로그래밍이 무엇인지 살펴봅시다. 리액티브 시스템(Reactive System)이란? 리액티브 시스템은 쉽게 말해 반응을 잘하는 시스템입니다. 반응을 잘한다는 것은 클라이언트의 요청에 머뭇거리지 않고 반응을 잘해서 즉시 응답해 주는 것을 의미합니다. 다시 말해서, 클라이언트의 요청에 즉각적으로 응답함으로써 지연 시간을 최소화한다 고 볼 수 있습니다. 리액티브 선언문 리액티브 선언문은 리액티브 시스템 구축을 위한 일종의 설계 원칙이자 리액티브 시스템의 특징 을 나타낸 것입니다. 자세한 내용은 아래 링크에서 확인 할 수 있습니다. https://www.reactivemanifesto.org/ko 리액티브 선언문 탄력성(Resilient): 시스템이 장애 에 직면하더라도 응답성을 유..

  • format_list_bulleted 스프링(Spring)/WebFlux
  • · 2024. 1. 31.
  • textsms
[Spring] IoC와 DI

[Spring] IoC와 DI

IoC(Inversion of Control : 제어의 역전)와 DI(Dependency Injection : 의존성 주입)의 주 목적은 컴포넌트의 의존성을 제공하고 이를 라이프사이클 전반에 걸쳐 관리하는 보다 간편한 메커니즘을 제공하는 것 입니다. 의존성이 필요한 컴포넌트를 의존 객체(dependent object)라 하고 IoC에서는 이를 "대상(target)"이라고 합니다. 일반적으로 IoC는 의존성 주입(DI)과 의존성 룩업(DL)의 두 가지 하위분류로 나눌 수 있습니다. 이들 하위분류는 다시 구체적인 IoC 서비스 구현체로 나뉩니다. 이 분류체계를 그림으로 간단히 나타내면 다음과 같습니다. 위의 IoC의 종류에 대해 자세히 알아봅시다. IoC의 종류 의존성 룩업(Dependency Lookup ..

  • format_list_bulleted 스프링(Spring)/Spring
  • · 2023. 10. 26.
  • textsms
[JPA] 엔티티 매핑(1) - @Entity @Table

[JPA] 엔티티 매핑(1) - @Entity @Table

JPA를 사용하는 데 있어 가장 중요한 일은 엔티티와 테이블을 정확히 매핑하는 것이다. JPA는 다양한 매핑 어노테이션을 지원하는데 크게 4가지로 분류할 수 있다. 객체와 테이블 매핑 : @Entity, @Table 기본 키 매핑 : @Id 필드와 컬럼 매핑 : @Column 연관관계 매핑 : @ManyToOne, @JoinColumn 이번 포스트에서는 1, 2, 3번에 대해 알아보자. 📂 @Entity JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션을 필수로 붙여야 한다. @Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라고 부른다. 속성은 다음과 같다. 속성 기능 기본값 name JPA에서 사용할 엔티티 이름을 지정한다. 보통은 기본값인 클래스 이름을 사용한다. 설정..

  • format_list_bulleted 스프링(Spring)/JPA
  • · 2023. 4. 27.
  • textsms
[JPA] 준영속

[JPA] 준영속

이번 포스팅에서는 영속 → 준영속의 상태 변화를 알아보자. 📂 준영속 영속성 컨텍스트가 관리하는 영속 상태의 엔티티가 영속성 컨텍스트에서 분리된 것을 준영속 상태라고 한다. 따라서, 준영속 상태의 엔티티는 영속성 컨텍스트가 제공하는 기능을 사용할 수 없다. 영속 상태의 엔티티를 준영속 상태로 만드는 방법엔 크게 3가지가 있다. em.detach(entity) : 특정 엔티티만 준영속 상태로 전환 em.clear() : 영속성 컨텍스트를 완전히 초기화 em.close() : 영속성 컨텍스트를 종료 순서대로 한 번 알아보자. 1️⃣ 엔티티를 준영속 상태로 전환 : detach() em.detach() 메소드는 특정 엔티티를 준영속 상태로 만든다. - detach() 테스트 코드 public void test..

  • format_list_bulleted 스프링(Spring)/JPA
  • · 2023. 4. 27.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • ···
  • 9
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (202)
    • 개발 일지 (1)
    • IT (2)
    • DDD (6)
    • 스프링(Spring) (53)
      • Spring (30)
      • MVC (3)
      • JPA (7)
      • WebFlux (10)
      • Testing (1)
      • Security (1)
      • Web Socket (1)
    • 데이터베이스 (15)
      • MySQL (2)
      • Redis (1)
    • 네트워크 (11)
      • 네트워크 프로그래밍 (9)
    • Git (8)
    • HTTP (4)
    • 알고리즘 (67)
      • 알고리즘 (7)
      • BOJ (53)
      • 프로그래머스 (7)
    • JAVA (6)
      • Java (1)
      • 이펙티브 자바 (4)
      • 100가지 질문 (0)
    • Kafka (4)
    • Python (2)
    • CI_CD (1)
    • Azure (3)
    • 컴퓨터망 (11)
    • 운영체제 (0)
최근 글
인기 글
최근 댓글
태그
  • #백준
  • #프로그래머스
  • #MPC
  • #network
  • #SpringWebFlux
  • #BOJ
  • #CUDA
  • #spring
  • #리액티브프로그래밍
  • #jpa
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바