인프런 커뮤니티 질문&답변

유영재님의 프로필 이미지

작성한 질문수

리눅스 IPC 프로그래밍 - 이론과 실습

- Live Programming(Stream Socket - Part 1)

소켓을 이용한 IPC는 기존 다른 방식들과 어떠한 점이 차이가 있나요??

19.07.16 08:16 작성

·

214

0

궁금합니다!

답변 1

0

런잇(ProgCoach4U)님의 프로필 이미지
런잇(ProgCoach4U)
지식공유자

2019. 07. 16. 23:21

socket은 네트워크 상에서 통신을 하기 위한 종단점으로 추상화된 개념 입니다. 기본적으로 시스템 내부 혹은 시스템 외부의 다른 프로세스와 네트워크 통신하기 위해 사용되죠. 이렇게 넓은 기능/개념 중에서 우리는 소켓을 IPC에 사용하기도 하는 것이죠.

소켓에 여러 가지 기능이 있습니다. stream 형식으로 사용할 수도 있고, datagram 형식으로 사용할 수도 있습니다. 또 Internet domain으로 바인드할 수도 있고, unix domain으로 바인드해서 사용할 수도 있습니다. 경우에 따라서는 외부 프로세스와도 통신을 하면서 내부 프로세스와도 통신을 할 수도 있습니다. 소켓이 네트워크 기능을 담고 있다보니 네트워크 기능을 이용해 IPC로도 사용할 수 있습니다. 예를 들자면, multicast를 이용해 IPC를 할 수도 있겠죠. 또, netlink socket과 같은 특수한 기능을 사용할 수도 있습니다. 

이처럼 소켓을 이용해 IPC를 하고자 한다면 소켓의 다양한 기능을 사용할 수 있다는 점이 가장 큰 장점이 되겠습니다. 대신 기능이 다양한 만큼 사용하기에 조금 까다로울 수 있겠죠? :)