1. 기본
같은 호스트에서 IPC가 필요한 이유는 무엇인가요?
더보기
- 프로세스는 각자 독립적인 주소 공간을 가지기 때문에 메모리를 공유하지 않음
IPC 방식에 대해 어떤것이 있는지 설명해주세요
더보기
- 공유 메모리: 특정 메모리를 프로세스들이 함께 사용. 속도 빠름. 구현 어려움. 동기화 필수
- 파일: 특정 파일을 프로세스들이 함께 사용. 속도 느림. 구현 쉬움. 영속성 있음.
- 파이프라인: 부모-자식 프로세스간 단방향 스트림. 속도 중간. 구현 쉬움. 간단한 데이터 전송
소켓이란 무엇인가요?
더보기
- 네트워크를 통해 다른 프로세스 간 통신을 위한 인터페이스 (파일처럼 취급)
- 양방향 통신
RPC는 무엇인가요?
더보기
- 원격 서버에 있는 함수를 로컬 함수처럼 호출할 수 있도록 네트워크 통신을 추상화한 방식
- 함수 호출 방식
2. 중급
공유 메모리의 가장 큰 단점은 무엇인가요?
더보기
- 직접 동기화 구현을 해야함. (레이스 컨디션 발생 가능)
- 구현 난이도 높음
파이프는 어떤 제약 조건을 가지고 있나요?
더보기
- 부모-자식 프로세스 관계일때만 사용가능
- 단방향 통신
- 프로세스 소멸 시, 데이터 소멸됨
소켓과 RPC의 가장 큰 차이점은 무엇인가요?
더보기
- 추상화 수준
- 소켓은 데이터를 직접 주고받는 저수준 통신 방식
- RPC는 원격 함수를 호출하는 고수준 통신 방식
3. 고급 (꼬리질문)
대용량 데이터를 빠르게 전송해야 할 때 사용하는 IPC 기법은?
더보기
- 공유 메모리
- 속도가 가장 빠름
IPC 설계가 잘못되면 어떤 문제가 발생할 수 있나요?
더보기
- 성능 저하: 불필요한 커널 개입
- 동기화 문제: 데드락
- 데이터 불일치: 동기화 누락
카카오/네이버와 같은 대규모 서비스에서는 IPC를 어떻게 설계할까요?
더보기
- 멀티스레드 기반 선호. 공유 메모리 최소화
- 확장성 고려: 수평 확장