Загружаем каталог…
Загружаем каталог…
음악을 들으면서 파일을 내려받고 글을 쓰면 컴퓨터가 여러 일을 동시에 하는 것처럼 보입니다. 이번에는 여러 작업이 진행 중이라는 말과, 같은 순간 계산한다는 말 을 구분해보겠습니다. 프로세스와 스레드의 기본 개념을 알고 있으면 읽기 편합니다. 한 코어의 시간표부터 보기 동시성은 여러 작업의 진행을 함께 다루는 성질입니다. 병렬성은 여러 작업이 같은 시간에 실제로 실행되는 성질입니다. 한 코어가 A와 B를 번갈아 실행해도 두 작업을 함께 진행할 수 있습니다. 여러 코어가 A와 B를 각각 실행하면 실제 실행 구간이 겹칠 수 있습니다. 스레드의 병렬 실행과 입출력 대기를 겹치는 이유는 OSTEP의 동시성 장 에서 확인할 수 있습니다. 그림의 칸은 설명용 구간입니다. 실제 밀리초나 측정한 성능을 뜻하지 않습니다. 상황 관찰할 것 한 코어에서 A, B 번갈아 실행 여러 작업이 진행되지만 그 코어의 실행은 번갈아 일어남 두 코어에서 A, B 실행 실제 실행 구간이 겹칠 수 있음 A가 파일 읽기를 기다리는 동안 B 실행 대기를 다른 유용한 작업과 겹침 비동기라면 계산도 빨라질까? 다음은 Node.js에서 비동기 콜백이 언제 실행되는지 보는 작은 예제입니다. const order = []; order.push("A:start"); Promise.resolve().then(() => order.push("B:callback")); order.push("A:end"); queueMicrotask(() => console.log(order.join(" -> "))); 검증한 출력은 A:start -> A:end -> B:callback 입니다. 이 예제는 마이크로태스크의 순서를 확인합니다. 코어 두 개를 사용하거나 CPU 계산을 병렬화한 실험은 아닙니다. Promise를 만들었다는 사실만으로 계산이 다른 코어로 이동하지 않습니다. Node.js의 queueMicrotask 설명 작업이 CPU 계산 때문에 오래 걸리는지, 응답을 기다리느라 오래 걸리는지부터 구분해야 합니다. 기다림을 겹칠 수 있는 작업과 계산을 나눌 수 있는 작업은 해결 방법이 달라집니다. 헷갈리지 않기 스레드 수, 비동기 함수 수, 코어 수는 서로 다른 숫자입니다. 스레드를 늘렸다고 실행 시간이 그 비율대로 줄어들지는 않습니다. 공유 상태를 보호하는 비용과 작업을 나누는 비용도 생깁니다. 이번 시간표는 실행 관계를 설명하는 모델이고 성능 예측표는 아닙니다. 확인 문제 한 코어에서 A와 B를 번갈아 실행하면 동시성인가요? 위 코드에서 Promise 콜백을 등록하면 A:end 보다 먼저 실행될까요? CPU 계산을 두 배 빨리 끝내려면 비동기 함수 두 개만 만들면 충분할까요? 답과 해설 네. 여러 작업을 함께 진행하지만 해당 코어에서 같은 순간 실행하는 것은 아닙니다. 아닙니다. 현재 동기 실행을 마친 뒤 등록한 콜백을 실행합니다. 아닙니다. 실제 병렬 실행 구조, 분할 가능한 계산, 전달 비용과 공유 자원 등을 확인해야 합니다. 복습과 다음 단계 오늘은 한 코어와 두 코어의 시간표를 직접 그려보겠습니다. 내일은 파일 읽기 대기 구간을 추가하고, 일주일 뒤에는 CPU 작업과 입출력 작업의 개선 방법을 각각 설명해보면 좋겠습니다. 다음에는 작업을 바꿀 때 실행 상태를 어떻게 이어 가는지 살펴봅니다. 자료 확인 기준: OSTEP 동시성 장과 Node.js 공식 API 문서, 2026-10-04. 예제 검증 환경: Node.js v24.13.1. 이전 기초 개념: 프로세스와 스레드 정리
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
CPU 하나인데 여러 작업이 되는 이유: 동시성과 병렬성. 음악을 들으면서 파일을 내려받고 글을 쓰면 컴퓨터가 여러 일을 동시에 하는 것처럼 보입니다. 이번에는 여러 작업이 진행 중이라는 말과, 같은 순간 계산한다는 말 을 구분해보겠습니다. 프로세스와 스레드의 기본 개념을 알고 있으면 읽기 편합니다. 한 코어의 시간표부터 보기 동시성은 여러 작업의 진행을 함께 다루는 성질입니다. 병렬성은 여러 작업이 같은 시간에 실제로 실행되는 성질입니다. 한 코어가 A와 B를 번갈아 실행해도 두 작업을 함께 진행할 수 있습니다. 여러 코어가 A와 B를 각각 실행하면 실제 실행 구간이 겹칠 수 있습니다. 스레드의 병렬 실행과 입출력 대기를 겹치는 이유는 OSTEP의 동시성 장 에서 확인할 수 있습니다. 그림의 칸은 설명용…