#io
노트 7개
Backend › Architecture
비동기 서버의 이벤트 루프: 다중 접속 서버에서 Reactor 패턴까지연결마다 프로세스·스레드를 붙이던 다중 접속 서버가 I/O 멀티플렉싱, Java NIO Selector, Reactor 패턴을 거쳐 이벤트 루프가 되는 과정을 정리한다. 이벤트 루프 스레드 하나가 수많은 연결을 맡기 때문에, 그 스레드를 블로킹 I/O나 긴 계산으로 막으면 같은 루프의 모든 요청이 멈춘다. 블로킹 작업은 별도 스레드 풀로 보낸다.
Computer Science › C Programming
C 입력과 파일 입출력scanf로 표준 입력을 받고, fopen·fprintf·fread·fclose로 파일을 읽고 쓰는 C 표준 라이브러리(stdio)의 기본 입출력. 매직 넘버로 JPEG를 판별하는 바이너리 읽기 예제를 담는다.
Computer Science
컴퓨터 구조CPU, 메모리, 입출력 장치가 어떻게 구성되고 협력해 프로그램을 실행하는지, 그리고 현대 CPU의 비순차 실행·분기 예측·캐시가 코드 성능에 어떤 영향을 주는지 다루는 분야.
Computer Science › Computer Architecture
입출력 구조와 시스템 버스CPU와 주변 장치를 잇는 입출력 인터페이스와 장치 드라이버, 전송 방식(프로그램 I/O·인터럽트·DMA), 인터럽트 우선순위, 레지스터를 직접 읽고 쓰는 입출력 예(AVR), 시스템 버스의 선·대역폭·동기식과 비동기식, 병렬·데이지 체인·폴링 버스 중재, 직렬 통신.
Computer Science › Operating System
컴퓨터 시스템 구조와 인터럽트모드 비트, 타이머, 장치 제어기, 인터럽트, 시스템 콜, 동기식·비동기식과 블로킹·논블로킹 입출력, DMA, 커널 입출력 서브시스템(드라이버 계층, 블록·문자·네트워크 장치, 버퍼링·캐싱·스풀링, 입출력 성능 원칙), 커널 주소 공간을 통해 운영체제가 하드웨어를 다루는 방식과, 시스템 콜·라이브러리 함수의 차이와 man 페이지 섹션을 정리.
Computer Science › Operating System
UNIX 파일 입출력과 파일 디스크립터프로세스가 파일·파이프·소켓을 정수 하나(파일 디스크립터)로 다루는 UNIX 입출력 모델. 커널의 세 테이블, open 플래그와 read 반환값 처리, dup2와 리다이렉션, stdio 버퍼링 모드와 페이지 캐시, I/O 멀티플렉싱, mmap과 그 한계를 정리한다.
Computer Science › Programming Languages
Java 입출력과 직렬화: 스트림, Path·Files, Serializable, JacksonJava 입출력의 두 계열(바이트 스트림과 문자 스트림)과 인코딩, 보조 스트림을 겹쳐 기능을 붙이는 데코레이터 구조, 버퍼링과 flush, File 대신 쓰는 Path·Files를 정리하고, 그 위에서 객체를 바이트로 바꾸는 Java 기본 직렬화(Serializable)의 serialVersionUID·보안 문제와 대안인 JSON 라이브러리 Jackson의 어노테이션, 캐시 저장처럼 타입 정보를 보존해야 할 때의 설정과 함정을 다룬다.