답변 1
0
2019. 07. 16. 23:21
socket은 네트워크 상에서 통신을 하기 위한 종단점으로 추상화된 개념 입니다. 기본적으로 시스템 내부 혹은 시스템 외부의 다른 프로세스와 네트워크 통신하기 위해 사용되죠. 이렇게 넓은 기능/개념 중에서 우리는 소켓을 IPC에 사용하기도 하는 것이죠.
소켓에 여러 가지 기능이 있습니다. stream 형식으로 사용할 수도 있고, datagram 형식으로 사용할 수도 있습니다. 또 Internet domain으로 바인드할 수도 있고, unix domain으로 바인드해서 사용할 수도 있습니다. 경우에 따라서는 외부 프로세스와도 통신을 하면서 내부 프로세스와도 통신을 할 수도 있습니다. 소켓이 네트워크 기능을 담고 있다보니 네트워크 기능을 이용해 IPC로도 사용할 수 있습니다. 예를 들자면, multicast를 이용해 IPC를 할 수도 있겠죠. 또, netlink socket과 같은 특수한 기능을 사용할 수도 있습니다.
이처럼 소켓을 이용해 IPC를 하고자 한다면 소켓의 다양한 기능을 사용할 수 있다는 점이 가장 큰 장점이 되겠습니다. 대신 기능이 다양한 만큼 사용하기에 조금 까다로울 수 있겠죠? :)