Jin's IT Story
프로그램, 프로세스, 스레드 정의와 차이점 본문
목차
컴퓨터를 조금 더 깊이 이해하려면 꼭 알아야 할 개념이 있습니다. 바로 프로그램, 프로세스, 스레드입니다. 이 세 가지는 일상적으로 우리가 사용하는 소프트웨어 내부에서 어떤 일이 일어나는지를 설명해 주는 기본 용어입니다. 이 글에서는 IT 초보자와 비전공자도 이해할 수 있도록 프로그램, 프로세스, 스레드의 정의와 차이점, 실제 예시를 통해 명확하게 설명합니다.
프로그램이란 무엇인가?
‘프로그램’이란 컴퓨터에 설치된 소프트웨어 그 자체를 말합니다. 아직 실행되지 않은 상태이며, 하드디스크나 SSD에 저장되어 있는 정적인 파일 형태로 존재합니다.
예를 들어, 워드(Word), 엑셀(Excel), 포토샵 등의 아이콘을 더블클릭하기 전까지는 이들은 프로그램 상태입니다.
주요 특징:
- 실행되지 않은 소프트웨어 코드
- 하드디스크에 저장된 상태
- 여러 번 실행 가능 (프로세스 생성)
- 정적인 존재
비유: 레시피 책을 떠올려보세요. 아직 요리를 시작하지 않았고, 방법만 존재하는 문서가 ‘프로그램’입니다.
프로세스란 무엇인가?
‘프로세스(Process)’는 프로그램이 실행되었을 때 운영체제가 만들어내는 실행 단위입니다.
워드를 실행하면, 메모리에 로드되고 CPU 자원과 함께 프로세스가 생성됩니다. 같은 프로그램을 두 번 실행하면 각각의 프로세스가 독립적으로 생성됩니다.
주요 특징:
- 실행 중인 프로그램 인스턴스
- 메모리, CPU 등의 자원 사용
- 독립적 실행 (충돌 위험 적음)
- 하나의 프로그램에서 여러 프로세스 가능
비유: 레시피를 보고 실제로 요리를 시작한 요리사. 재료를 준비하고 불을 켜는 ‘행동’이 프로세스입니다.
스레드란 무엇인가?
‘스레드(Thread)’는 프로세스 내에서 작업을 수행하는 흐름(실행의 최소 단위)입니다.
여러 스레드는 같은 메모리 자원을 공유하며, 병렬 작업을 동시에 수행할 수 있습니다.
주요 특징:
- 프로세스 내 실행 단위
- 동일 자원 공유
- 빠른 작업 처리 가능
- 자원 충돌 위험 존재
비유: 요리사의 여러 손동작처럼, 동시에 국을 끓이고 샐러드를 만드는 작업이 각각의 ‘스레드’입니다.
세 가지 개념 총정리
구분 | 프로그램 | 프로세스 | 스레드 |
정의 | 실행 전 코드 묶음 | 실행 중인 프로그램 인스턴스 | 프로세스 내부의 작업 흐름 |
위치 | 하드디스크 | 메모리 | 메모리 (프로세스 내부) |
실행 여부 | 실행 전 | 실행 중 | 실행 중 (프로세스 내부에서 병렬 처리) |
자원 공유 | 없음 | 독립적 자원 사용 | 자원 공유 (충돌 가능성 있음) |
예시 | 포토샵 설치 파일 | 실행 중인 포토샵 창 | 포토샵에서 이미지 로딩, 저장 등 동시 작업 |
정리하면, 프로그램은 설치된 상태, 프로세스는 실행된 상태, 스레드는 실행 중인 작업 단위입니다. 이 세 가지 개념은 소프트웨어가 컴퓨터 안에서 어떻게 작동하는지를 이해하는 핵심입니다. 지금부터는 소프트웨어를 사용할 때 이 내부 구조를 떠올려보세요. IT 지식이 탄탄해지는 기초가 될 것입니다.
'DevBasics: 개발 개념 기초 다지기' 카테고리의 다른 글
멀티 vs 싱글 스레드 차이와 활용법 (0) | 2025.08.05 |
---|---|
[자료구조] 해시 vs 스택, 언제 어떤 구조 쓸까? (0) | 2025.08.04 |
[자료구조] 데이터 스트럭쳐 핵심 개념 완벽 정리 (0) | 2025.08.04 |
Mocking의 원리와 주요 패턴 분석 (0) | 2025.08.02 |
단위 테스트 핵심 기법, Mocking 이해하기 (0) | 2025.08.02 |