2025. 2. 8. 13:26ㆍ정보기술/운영체제 (OS)
1️⃣ IPC란 무엇인가?
컴퓨터에서 실행되는 프로그램들은 프로세스(Process) 라고 불립니다. 보통 한 개의 프로그램은 여러 개의 프로세스로 구성되기도 하며, 프로세스끼리 협력해야 할 때가 많습니다. 하지만 운영체제는 보안을 위해 각 프로세스의 메모리를 서로 분리하기 때문에, 프로세스끼리 직접 데이터를 주고받는 것이 불가능합니다.
이때 필요한 것이 바로 IPC(Inter-Process Communication, 프로세스 간 통신) 입니다.
📌 일상적인 예로 보는 IPC
IPC의 개념을 쉽게 이해하기 위해, 두 사람이 대화를 하는 상황을 떠올려 봅시다.
- 1번 방식: 직접 말하기 → 공유 메모리 방식
두 사람이 같은 공간에서 말로 직접 소통하는 것은 공유된 공간(공유 메모리)을 사용하는 것과 비슷합니다.
(예: 팀원들이 화이트보드에 아이디어를 적으며 함께 작업) - 2번 방식: 메모지를 주고받기 → 메시지 기반 방식
만약 두 사람이 떨어져 있고, 서로의 기억(메모리)에 직접 접근할 수 없다면? 메모지를 주고받아야 합니다.
이것이 메시지 큐, 파이프, 소켓 등 IPC 방식과 비슷한 개념입니다.
(예: 회사에서 메일을 주고받으며 협업)
즉, IPC는 서로 분리된 프로세스가 데이터를 주고받을 수 있도록 도와주는 통신 방법입니다.
📌 왜 IPC가 필요할까?
IPC가 필요한 이유를 실제 컴퓨터 프로그램 사례로 살펴봅시다.
✅ 사례 1: 웹 브라우저와 백그라운드 프로세스
우리가 인터넷에서 웹사이트를 열 때, 웹 브라우저는 보이지 않는 백그라운드 프로세스와 통신해야 합니다.
- 예를 들어, 크롬 브라우저를 실행하면 여러 개의 프로세스가 작동합니다.
- 하나의 프로세스는 웹페이지를 렌더링하고,
- 다른 프로세스는 새로운 탭을 실행하고,
- 또 다른 프로세스는 다운로드를 담당합니다.
이처럼 브라우저는 여러 프로세스를 병렬로 실행하면서도, 서로 정보를 주고받아야 합니다.
이때 IPC를 사용하여 데이터(웹페이지 내용, 다운로드 진행률 등)를 주고받는 것입니다.
✅ 사례 2: 음악 스트리밍 앱
음악을 듣는 동안 우리가 다른 앱을 실행할 수 있는 이유도 IPC 덕분입니다.
- 음악 앱은 백그라운드에서 음악을 재생하는 프로세스와, 우리가 눈으로 보는 UI 프로세스로 나뉩니다.
- 우리가 음악을 "다음 곡으로 넘기기" 버튼을 누르면, UI 프로세스는 백그라운드 프로세스에게 "다음 곡을 재생하라"라는 메시지를 보냅니다.
- IPC를 통해 이 요청이 전달되고, 음악이 변경됩니다.
📌 IPC 없이 운영체제가 동작할 수 있을까?
IPC가 없다면, 프로세스끼리 서로 정보를 주고받을 방법이 없어집니다.
그러면 우리가 사용하는 대부분의 프로그램이 정상적으로 작동하지 않습니다.
- 운영체제(OS)도 내부적으로 IPC를 사용
→ 예: 키보드 입력을 받아 프로그램이 처리하는 과정 - 일반적인 애플리케이션도 IPC를 활용
→ 예: 채팅 앱에서 메시지를 서버와 주고받는 과정 - 멀티 프로세스 시스템에서는 필수 요소
→ 예: 대용량 데이터를 병렬 처리하는 시스템 (ex. 영상 편집, 빅데이터 분석)
따라서 IPC는 컴퓨터가 여러 개의 작업을 효율적으로 수행하기 위해 반드시 필요한 기술입니다. 🚀
📌 정리
✔️ IPC(Inter-Process Communication)는 프로세스 간 데이터를 주고받는 기술이다.
✔️ 프로세스는 서로의 메모리에 직접 접근할 수 없기 때문에 IPC가 필요하다.
✔️ IPC 방식에는 공유 메모리 방식과 메시지 기반 방식이 있다.
✔️ 웹 브라우저, 음악 앱, 채팅 앱 등 다양한 소프트웨어에서 IPC를 사용한다.