본문 바로가기
🚀 데브 노트 (IT 지식 & 팁)

프로세스(Process)와 스레드(Thread)의 차이, '공장과 일꾼' 비유로 3분 만에 완벽 정리!

by 데브프리 2026. 6. 17.

안녕하세요, 여러분의 든든한 IT 길잡이 데브프리입니다.

 

"프로세스와 스레드의 차이를 설명해 보세요."

아마 IT 기업 백엔드, 프론트엔드 직무를 막론하고 면접에서 가장 많이 등장하는 단골 질문일 것입니다. 책을 펴보면 '독립적인 메모리 공간', 'Context Switching', '자원 공유' 같은 머리 아픈 외계어들이 쏟아져 나와 창을 닫게 만들죠.

 

하지만 걱정하지 마세요! 이 복잡한 컴퓨터 공학 개념도 일상생활의 '공장과 일꾼'으로 비유하면 아주 쉽고 직관적으로 이해할 수 있습니다. 오늘 이 글을 끝까지 읽으신다면, 면접관의 질문에 씩 웃으며 완벽한 대답을 내놓으실 수 있을 겁니다. 바로 시작합니다!

 

0. 그전에 잠깐, 프로그램(Program)이란?

프로세스를 알기 전에 먼저 '프로그램'이 뭔지 알아야 합니다.

우리가 컴퓨터 하드디스크에 깔아둔 카카오톡, 크롬 브라우저, 게임 파일들을 프로그램(Program)이라고 부릅니다.

 

비유하자면 프로그램은 아직 땅에 짓지 않은 '공장 설계도(도면)'에 불과합니다. 설계도 자체는 아무런 일도 하지 않고 그저 디스크 공간만 차지하고 있을 뿐이죠.

 

1. 프로세스(Process): 설계도대로 지어진 '독립적인 공장'

우리가 크롬 아이콘을 더블클릭해서 실행하는 순간, 운영체제(OS)는 메모리라는 땅 위에 설계도(프로그램)를 바탕으로 실제 공장을 번듯하게 지어줍니다. 이렇게 실행 중인 프로그램을 바로 프로세스(Process)라고 부릅니다.

프로세스 Process 독립적인 메모리 할당
프로세스는 각각 완벽하게 분리된 독립적인 공간(공장)을 운영체제로부터 부여받습니다.

운영체제는 각 공장(프로세스)마다 안전하게 일하라고 독립적인 영토(메모리 공간: Code, Data, Stack, Heap)를 줍니다.

 

가장 중요한 특징은 '철저한 독립성'입니다. A 공장과 B 공장은 튼튼한 담벼락으로 막혀 있어서 서로의 창고(메모리)를 엿보거나 물건을 마음대로 가져갈 수 없습니다. 덕분에 카카오톡(프로세스 1)에 에러가 나서 뻗어버려도, 옆에서 돌아가던 크롬 브라우저(프로세스 2)는 아무런 영향을 받지 않고 멀쩡하게 돌아갑니다.

 

2. 스레드(Thread): 공장 안에서 일하는 '일꾼'

공장을 다 지었으니 이제 일을 해야겠죠? 이 프로세스(공장) 안에서 실제로 작업을 수행하는 일꾼이 바로 스레드(Thread)입니다.

 

모든 공장은 무조건 최소 1명 이상의 일꾼(메인 스레드)을 가지고 있습니다. 만약 해야 할 일이 너무 많아지면, 공장장은 일꾼을 여러 명 더 고용합니다. 이것이 바로 우리가 자주 듣는 '멀티 스레드(Multi-Thread)'입니다.

스레드 Thread 메모리 공유 원리
스레드(일꾼)들은 하나의 프로세스(공장) 안에서 창고와 자원을 공유하며 효율적으로 일합니다.

스레드들의 가장 큰 특징은 '자원 공유'입니다.

같은 공장에 소속된 일꾼들이므로, 휴게실이나 자재 창고(Code, Data, Heap 메모리)를 다 같이 공유해서 씁니다. 단, 일꾼마다 자기만의 작은 개인 작업대(Stack 메모리)는 따로 하나씩 가지고 있습니다.

 

자원을 공유하기 때문에 일꾼들끼리 물건(데이터)을 주고받기가 매우 쉽고 빠릅니다. 하지만 치명적인 단점도 있습니다. 만약 일꾼 한 명이 치명적인 실수(오류)를 저질러서 공장에 불을 내버리면? 자원을 공유하고 있던 다른 일꾼들도 다 함께 피해를 입고 공장(프로세스) 전체가 셧다운 되어 버립니다.

 

크롬 브라우저에서 탭 하나가 오류 났을 때 브라우저 전체가 강제 종료되는 현상이 바로 이 때문입니다.

 

3. 한눈에 비교하는 요약표

비교 항목 프로세스 (Process) 스레드 (Thread)
비유하자면? 독립적으로 세워진 '공장' 공장 안에서 일하는 '일꾼'
자원 공유 완벽히 독립됨 (공유 X) 프로세스 내의 자원을 모두 공유함
안정성 (오류 발생 시) 한 프로세스가 죽어도 다른 프로세스는 안전함 한 스레드가 죽으면 프로세스 전체가 죽을 수 있음
작업 전환(Context Switching) 속도 무겁고 느림 (공장을 옮겨 다니는 격) 가볍고 빠름 (같은 공장 안에서 작업만 바꾸는 격)
생성 단위 프로그램이 메모리에 적재될 때 프로세스 안에서 실행 흐름이 생성될 때

 

마무리

정리해 볼까요?

  • 하드디스크에 잠들어 있는 도면은 프로그램(Program)
  • 메모리에 올라와 실행 중인 독립적인 공장은 프로세스(Process)
  • 공장 안에서 자원을 공유하며 실제 일을 하는 일꾼은 스레드(Thread)입니다.

현대의 스마트폰 앱과 웹 서버는 모두 수많은 일꾼을 굴리는 '멀티 스레드' 방식으로 돌아갑니다. 자원을 효율적으로 쓰고 속도가 빠르기 때문이죠. 단, 일꾼들이 같은 자원을 동시에 건드리다가 사고가 나지 않게 관리(동기화, Synchronization)해 주는 것이 우리 백엔드 개발자들의 핵심 역량 중 하나입니다.

 

이제 면접관이 프로세스와 스레드의 차이를 묻는다면, 독립적인 공장과 자원을 공유하는 일꾼의 차이로 자신 있게 설명해 보세요!

 

오늘의 데브 노트가 유익하셨다면 공감과 댓글 부탁드립니다. 궁금한 점이 있다면 언제든 편하게 남겨주세요. 지금까지 데브프리였습니다. 감사합니다!