📌 프로세스(Process)란?
프로세스는 운영체제(OS)가 프로그램을 실행시키기 위해 메모리에 올린 작업 단위입니다. 쉽게 말해, 실행 중인 프로그램이라고 할 수 있습니다.
- 프로그램을 실행하면 OS가 해당 프로그램에 필요한 자원을 할당하고 관리합니다.
- 프로세스는 서로 독립된 메모리 공간을 가집니다.
특징:
- 각 프로세스는 독립적인 메모리 영역을 갖습니다.
- 하나의 프로세스가 문제가 생기더라도 다른 프로세스에 영향을 주지 않습니다.
- 프로세스 간 통신(IPC: Inter-Process Communication)은 별도의 방법을 통해 이루어집니다.
예시:
- 크롬 브라우저 실행 시 생성된 프로세스
- 카카오톡 프로그램 실행 시 프로세스
📌 스레드(Thread)란?
스레드는 프로세스 내부에서 생성되는 실행의 흐름 단위로, 프로세스 내에서 작업을 처리하는 가장 작은 단위입니다.
- 프로세스의 자원을 공유하여 사용합니다.
- 하나의 프로세스는 여러 개의 스레드를 가질 수 있습니다(멀티 스레드).
특징:
- 같은 프로세스 내의 스레드는 메모리(힙 영역 등)를 공유합니다.
- 스레드는 개별적인 실행 스택(stack)을 갖고 있습니다.
- 자원을 공유하기 때문에, 스레드 간 통신이 프로세스보다 쉽고 빠릅니다.
- 하나의 스레드에 문제가 생기면, 같은 프로세스 내 다른 스레드에도 영향을 줄 수 있습니다.
예시:
- 웹 브라우저 내에서 탭을 여러 개 열었을 때, 각 탭을 처리하는 스레드
- 음악 재생 앱에서 음악 재생과 UI 처리를 동시에 진행할 때, 각 작업을 처리하는 스레드

📌 멀티 프로세스 vs 멀티 스레드
🔹 멀티 프로세스 (Multi-Process)
- 여러 개의 프로세스를 이용하여 동시에 작업을 수행하는 방식
- 안정성이 높고, 하나의 프로세스가 문제 발생 시 다른 프로세스에 영향을 주지 않음
- 메모리 자원이 많이 필요하고 통신이 복잡해지는 단점이 있음
🔹 멀티 스레드 (Multi-Thread)
- 하나의 프로세스 내에서 여러 개의 스레드를 생성하여 동시에 작업을 수행하는 방식
- 메모리 공유로 자원 소모가 적고 빠른 작업 처리가 가능
- 하지만 자원을 공유하기 때문에 동기화 문제(동시에 같은 자원을 접근)가 발생할 수 있음

- 예를 들어, 웹 서버는 동시 처리가 중요하기 때문에 멀티 스레드를 사용합니다.
- 크롬 브라우저는 안정성을 중요시하여 멀티 프로세스 방식을 선택합니다.
📌 예시로 이해하기
웹브라우저(크롬)의 경우:
- 브라우저 자체는 하나의 프로세스
- 각 탭은 별도의 프로세스로 작동 (안정성 확보)
- 각 탭 내에서는 이미지 처리, 네트워크 통신 등을 여러 스레드로 병렬 처리 (효율성)
즉, 프로세스와 스레드를 혼합하여 사용합니다.
🚩 한 줄 요약
프로세스는 프로그램을 실행하는 독립된 작업 단위로 각각 독립된 메모리를 사용하고,
스레드는 프로세스 내의 실행 흐름으로 메모리를 공유하면서 효율성을 높이는 작업 단위입니다.