그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록Concurrency
Concurrency

프로세스보다 스레드 컨텍스트 스위칭이 더 빠른 이유는 무엇인가요?

실무4/5
설계3/5
인간4/5
기초4/5

면접관의 질문 의도

용어 정의에서 멈추는 답인지, 페이지 테이블·TLB 같은 비용 구성요소까지 들고 와서 왜 차이가 나는지를 설명할 수 있는지를 가른다.

큐레이션 답변

학습 자료

스레드 전환이 프로세스 전환보다 빠른 핵심 이유는 같은 프로세스 안에서는 주소 공간을 공유하기 때문이다. 프로세스 전환은 페이지 테이블 교체와 TLB·캐시 비움 같은 메모리 맥락 비용이 같이 따라붙지만, 스레드 전환은 레지스터와 스택 포인터, 스케줄링 상태 교체 정도로 끝난다. 단 "스레드는 늘 빠르다"가 아니라 교체할 컨텍스트가 적다가 본질이며, 락 경합이나 캐시 스래싱이 심해지면 그 이점은 빠르게 사라진다.

좋은 답변 구조

  1. 01컨텍스트 스위칭이 무엇이고 어떤 상태를 교체하는 동작인지 먼저 정의한다
  2. 02프로세스 전환에서 일어나는 주소 공간·페이지 테이블·TLB 관련 비용을 단계별로 짚는다
  3. 03스레드 전환에서 생략되는 단계가 무엇이고 왜 가능한지 비교한다
  4. 04스레드 수가 늘어나면 이 이점이 사라지는 지점을 한계로 덧붙인다

자주 실수하는 포인트

스레드 전환이 항상 빠르다고 단정하고 락 경합·캐시 스래싱 같은 조건을 빠뜨린다
프로세스 전환 비용을 "메모리가 다르니까"로만 말하고 TLB·페이지 테이블 같은 구체 요소를 못 짚는다
사용자 레벨 스레드와 커널 레벨 스레드의 전환 비용 차이를 한 묶음으로 설명한다

실무 맥락

  • 트래픽이 늘면서 워커 프로세스 수와 스레드 풀 크기 중 무엇을 늘려야 할지 결정해야 하는 API 서버
  • I/O 대기가 많은 작업과 CPU를 오래 쓰는 작업이 한 서버에 섞여 있는 환경
  • 스레드/프로세스 수를 늘렸는데 처리량은 안 오르고 컨텍스트 스위치 지표만 치솟는 상황

본인 경험에 녹이는 힌트

Node.js 클러스터 모드나 Java 스레드 풀에서 워커 수를 늘렸다가 처리량이 꺾인 경험이 있다면 비용 구조와 연결할 수 있다

vmstat이나 perf로 컨텍스트 스위치 카운트가 튀는 걸 직접 본 적이 있다면 그 지점을 답변에 끌어올 수 있다

스레드 풀 크기를 조정해 응답 지연이 변한 사례가 있다면 왜 그 비용이 발생했는지로 풀어낼 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1스레드 수를 무작정 늘리면 어떤 부작용이 생기나요
Q2사용자 레벨 스레드와 커널 레벨 스레드는 전환 비용이 왜 다른가요
Q3비동기 이벤트 루프 모델은 이 비용을 어떤 방식으로 줄이나요
Q4TLB 플러시는 어느 시점에 일어나고 성능에 어떤 영향을 주나요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문