1. Prop Drilling1.1. 문제 정의Prop Drilling은 복잡한 리액트 앱에서 상태(state)를 여러 컴포넌트가 공유해야 할 때, 상위 컴포넌트에서 관리하고 props를 통해 전달하는 과정에서 중간에 있는 많은 컴포넌트들이 단순히 데이터를 전달하는 역할만 하게 되는 문제를 말한다. Prop Drilling의 문제컴포넌트 재사용이 어려워짐불필요한 상용구 코드(Boilerplate)가 증가함코드 유지보수가 복잡해짐컴포넌트 간 의존성이 높아짐불필요한 리렌더링이 발생할 수 있음 1.2. 해결책 1: 컴포넌트 합성(Component Composition)컴포넌트 합성은 중첩된 컴포넌트 구조에서 중간 컴포넌트들을 거치지 않고 직접 데이터나 함수를 전달할 수 있게 해주는 패턴이다. 주요 특징:chi..
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) 내부에서도 호출할 수 있다.이는 내부 구현 방식의 차이 ..
최근에 책에서 봤던 내용 중 다시 보고싶은 내용이 있었는데, 어떤 책에서 봤는지 한참 이책 저책 찾아봤던 일이 있었습니다. 역시 기록을 해두지 않으면 금방 날아가 버리는 것 같아요 그런데 블로그에 적는 글은 대부분 책의 내용 중 기록할만한 지식만 정리해서 올리는거라 빠지는 내용이 많아집니다. 그래서 이번에는 아예 책과 강의를 하나씩 리뷰해서 올리려고 합니다. 예전에도 비슷하게 리뷰를 올리긴 했는데, 너무 간단하게 올려서 필요할 때 무슨 내용이 있었는지 찾기가 어려운 것 같아요. 한번 시도해보고 안되면 또 방법을 바꿔봐야겠습니다. 2025.04.07 - 포기.. 막상 해보니 이렇게 하면 모든 내용을 다 적어야되네요. 그냥 기존보다 조금만 더 자세히 리뷰하기로..
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), 그리고 비동기 완료 통지..