1. use 훅이란?use는 React 19에서 정식으로 도입된 새로운 훅이다.Promise나 Context와 같은 리소스의 값을 쉽게 읽을 수 있게 해주는 기능이다. 1.1. 기본 문법import { use } from 'react';// 사용 예시const value = use(resource); use 훅은 일반 훅과 마찬가지로 컴포넌트나 커스텀 훅 내부에서만 호출해야 한다. 다른 훅들과 달리 조건문이나 반복문 내부에서도 호출할 수 있어 더 유연한 코드 작성이 가능하다. 1.2. 일반 훅과의 차이점기존 훅들(useState, useEffect 등)은 컴포넌트 최상위 레벨에서만 호출해야 한다.반면 use 훅은 조건문(if)이나 반복문(for) 내부에서도 호출할 수 있다.이는 내부 구현 방식의 차이 ..
최근에 책에서 봤던 내용 중 다시 보고싶은 내용이 있었는데, 어떤 책에서 봤는지 한참 이책 저책 찾아봤던 일이 있었습니다. 역시 기록을 해두지 않으면 금방 날아가 버리는 것 같아요 그런데 블로그에 적는 글은 대부분 책의 내용 중 기록할만한 지식만 정리해서 올리는거라 빠지는 내용이 많아집니다. 그래서 이번에는 아예 책과 강의를 하나씩 리뷰해서 올리려고 합니다. 예전에도 비슷하게 리뷰를 올리긴 했는데, 너무 간단하게 올려서 필요할 때 무슨 내용이 있었는지 찾기가 어려운 것 같아요. 한번 시도해보고 안되면 또 방법을 바꿔봐야겠습니다.
1. 동기 vs 비동기 I/O 비교동기 I/O 모델은 I/O 작업이 완료될 때까지 호출 스레드가 차단된다.구현이 단순하지만 확장성에 제한이 있다. ex) 동기 소켓 통신 코드// 동기 소켓 통신 예시 (개념적 의사코드)socket = createSocket();connect(socket, serverAddress); // 연결될 때까지 차단send(socket, data); // 데이터가 전송될 때까지 차단response = receive(socket); // 응답을 받을 때까지 차단 비동기 I/O 모델은 I/O 요청 후 즉시 제어를 반환하고, 작업 완료 시 알림을 받는다.복잡하지만 높은 확장성과 처리량을 제공한다. ex) 비동기 소켓 통신 코드// 비동기 소켓 통신 예시 (개념적 의사코드)socket ..
1. IOCP란?IOCP(Input/Output Completion Port)는 Windows 환경에서 제공하는 고성능 비동기 입출력 처리 메커니즘이다.다수의 I/O 요청을 효율적으로 처리하기 위해 설계된 API이다. IOCP는 커널 레벨에서 I/O 작업 완료를 관리하는 큐 시스템이다.이 큐는 비동기 I/O 작업이 완료될 때 알림을 대기 중인 스레드에게 효율적으로 전달한다. IOCP의 핵심 목적은 다중 스레드 환경에서 최소한의 스레드로 최대한의 I/O 처리량을 달성하는 것이다. 2. IOCP의 구조2.1. 완료 포트 객체의 구조완료 포트는 커널 객체로 다음 주요 구성 요소를 포함한다.완료 패킷 큐: I/O 작업 결과를 저장하는 FIFO 큐대기 스레드 목록: 완료 패킷을 기다리는 스레드 목록동시성 한도:..
1. Overlapped I/O1.1. Overlapped I/O란Overlapped I/O는 Windows 운영체제에서 제공하는 비동기 입출력 메커니즘이다.하나의 스레드가 여러 I/O 작업을 동시에 진행할 수 있게 해준다. 이름에서 알 수 있듯이, Overlapped는 여러 I/O 작업이 시간적으로 겹쳐서 실행됨을 의미한다.Overlapped I/O의 핵심은 I/O 요청을 시작한 후 결과를 기다리지 않고 다른 작업을 수행할 수 있다는 점이다. 1.2. Windows에서의 Overlapped I/OOverlapped I/O는 Windows 운영체제의 핵심 기능 중 하나로, Win32 API에서 제공된다. Windows의 I/O 모델은 크게 동기식, 비동기식(Overlapped), 그리고 비동기 완료 통지..
1. 개요서버를 운영하다보면 DB 접근을 최소화 하기 위해 데이터를 캐싱해야 할 경우가 생긴다.이때 C# 서버의 경우 대표적인 캐싱 방법으로 IMemoryCache와 Redis가 있다.두 기술은 각각의 특성과 장단점이 있어 상황에 맞게 선택해야 한다. 2. IMemoryCache와 Redis2.1. IMemoryCache란?IMemoryCache는 .NET의 메모리 기반 캐싱 라이브러리로, 애플리케이션 서버의 로컬 메모리에 데이터를 저장한다. 1) 특징서버 로컬 캐시 (해당 서버에만 저장)매우 빠른 속도 (RAM에서 직접 접근)애플리케이션과 생명주기 공유 (서버 재시작 시 캐시 초기화)2) 장점매우 빠른 읽기 속도 (메모리 직접 접근)별도 설정 없이 쉽게 사용 가능단순한 구조 (Key-Value 형태)..