CS 공부

프로세스와 스레드

NiceKHJ 2025. 6. 16. 15:12

브라우저 동작 원리나 웹 성능 최적화, Node.js의 동작 방식 등을 이해하려면 이 두 개념을 아는 게 중요하다.

 

프로세스란?

  • 실행 중인 프로그램 하나를 프로세스라고 부른다.
  • 프로그램을 실행하면, 운영체제(OS)가 그 프로그램을 위해 독립된 메모리 공간을 만들어준다.
  • 그 공간이 바로 프로세스이다.
    • 예시 :
    • 크롬을 열면 하나의 프로세스가 생기고 탭을 하나 더 열면 탭마다 별도의 프로세스가 생긴다.
    • 탭 하나가 멈춰도 다른 탭은 잘 작동하는 이유가 바로 이 구조 덕분이다.

 

스레드란?

  • 프로세스 안에서 실제 작업을 수행하는 실행 단위다.
  • 하나의 프로세스는 여러 개의 스레드를 가질 수 있다. (멀티스레드)
  • 스레드들은 같은 프로세스 내 메모리를 공유하면서 각자 다른 일을 병렬로 처리할 수 있다.
    • 예시 :
    • 하나의 브라우저 탭(프로세스) 안에서 화면 렌더링, 사용자 입력 감지, 네트워크 통신 등이 각각 다른 스레드에서 동시에 처리된다.

차이점 정리

항목 프로세스 스레드
정의 실행 중인 프로그램 작업을 수행하는 실행 단위
메모리 독립된 메모리 공간 같은 메모리를 공유함
영향 하나 죽어도 다른 프로세스는 영향 없음 하나 문제 생기면 같은 프로세스 안 스레드도 영향
생성 비용 상대적으로 무거움 상대적으로 가벼움
예시 크롬 탭 하나 탭 안에서 렌더링, 이벤트 처리, 네트워크 처리 등

 


프론트 기준 알아야 하는 이유❓

  • 브라우저는 탭마다 프로세스를 분리해서 안정성을 높이고
  • 각  탭 안에서는 여러 스레드로 나눠서 사용자 입력, 렌더링, 자바스크립트 등을 동시에 처리한다.
  • Node.js도 내부적으로 스레드 풀을 사용해 논블로킹 I/O를 처리한다.
  • 웹 워커는 스레드처럼 동작해서, 메인 스레드와 별도로 무거운 작업을 처리할 수 있다.