이것저것 개발기록

프로세스 vs 스레드, 핵심 차이 완벽 정리 본문

IT 이야기

프로세스 vs 스레드, 핵심 차이 완벽 정리

Garam Kim 2025. 12. 27. 11:14

"프로그램 실행의 단위, 제대로 구분하고 계신가요?"
운영체제의 기초이자 면접 단골 질문인 프로세스와 스레드의 차이를 메모리 관점에서 분석합니다.

1. 프로세스와 스레드의 정의

  • 프로세스(Process): 실행 중인 프로그램의 인스턴스입니다. 운영체제로부터 독립된 메모리 공간(Code, Data, Stack, Heap)을 통째로 할당받습니다.
  • 스레드(Thread): 프로세스 내에서 실행되는 여러 흐름의 단위입니다. 같은 프로세스 내의 Stack을 제외한 메모리 영역을 공유합니다.

2. 왜 스레드를 사용할까?

프로세스를 새로 만드는 것보다 스레드를 만드는 것이 자원 소모가 훨씬 적기 때문입니다(Context Switching 비용 감소). 하지만 메모리를 공유하기 때문에 동시성 문제가 발생할 수 있다는 단점이 있습니다.

💡 실무 노트

면접에서 "스레드는 왜 Stack만 따로 갖나요?"라는 질문이 자주 나옵니다. 각 스레드가 독립적인 함수 호출과 로직을 수행하려면 자신만의 실행 이력(Stack)이 반드시 필요하기 때문입니다.

팁: 멀티스레드 환경을 다룰 때는 항상 Thread-Safe한 코드를 고민해야 합니다. 내가 공유 자원(정적 변수 등)을 건드리고 있지는 않은지 늘 체크하는 습관을 가져보세요.