Study: ComputerScience(CS)/CS: Network

    [Network] C/C++에서 프로세스 간 통신

    💡 본 문서는 'C/C++에서 프로세스 간 통신'에 대해 정리해놓은 글입니다. 프로세스 간 통신은 ip로 통신하는 것보다 빠른 일련의 과정을 통해 메모리를 주고 받고 있습니다. 이 방법 중 일부에 대해 정리하였으니 참고하시기 바랍니다. 1. 소개 많은 사람들이 무거운 작업을 분리하고 추가 최적화, 많은 독립성을 제공할 수 있기 때문에 프로그램을 위해 스레드보다 프로세스를 선택합니다. 예로 들어, Google 크롬 브라우저에서 각 탭을 실행하기 위해서 무거운 처리(예: 서버와의 통신, 네트워크 리소스 관리, 렌더링 등)을 해야하며, 각 탭은 매우 독립적으로 작동하기에 이는 프로세스를 사용하도록 작동합니다. 따라서 하나 프로세스 죽더라도 다른 프로세스에는 영향을 주지 않습니다. 또한 이 설계를 통해 비활성 ..

    [Network] 프로세스 간 통신 방법: IPC(Inter Process Communication)

    💡 본 문서는 '프로세스 간 통신 방법: IPC(Inter Process Communication)'에 대해 정리해놓은 글입니다. 프로세스들은 기본적으로 상호독립적입니다. 메모리를 공유하지 않기 때문에 각자 자신의 일만 하며 서로 간섭을 하지 않아요. 하지만 필요에 따라 프로세스간 정보를 교환해야하는 경우가 있겠죠? 이때 별도 수단을이용하여 프로세스 통신하는 방법론을 통칭하여 IPC(Inter Process Communication) 라고 합니다. 이러한 프로세스 간 통신(IPC)를 적용하기 위해 찾아보던 중 다양한 방법을 접하였고 이를 정리하였으니 참고하시기 바랍니다. 1. 프로세스간 통신(inter-process communication, ipc) 1.1 프로세스 간 통신이란? 프로세스 사이에 서로 ..

    [Network] Socket 소켓 프로그래밍 (feat. sockaddr_in, IPv4...)

    💡 본 문서는 'Socket 소켓 프로그래밍'에 대해 정리해놓은 글입니다. C/C++에서 "sys/socket.h"을 사용하여 소켓 프로그래밍하는 방법에 대해 정리하였으니 참고하시기 바랍니다. 1. 소켓 통신이란? 1.1 소켓(Socket) 이란? 소켓(Socket)은 프로세스가 네트워크 세계로 데이터를 내보내거나 혹은 그 세계로부터 데이터를 받기 위한 실제적인 창구 역할을 합니다. 그러므로 프로세스가 데이터를 보내거나 받기 위해서는 반드시 소켓을 열어서 소켓에 데이터를 써보내거나 소켓으로부터 데이터를 읽어들여야 합니다. 소켓은은 프로토콜, IP 주소, 포트 넘버로 정의됩니다. 프로토콜(protocol): 원래 외교상의 언어로써 의례나 국가간에 약속을 의미하며, 통신에서는 어떤 시스템이 다른 시스템과 통..

    [Network] Message Queue(메시지큐) 정리

    💡 본 문서는 'Message Queue(메시지큐) 정리'에 대해 정리해놓은 글입니다. 벤더들 사이의 통신을 하려다보니 비동기로 메시지 처리하는 프로토콜이 필요했는데, Message Queue가 이를 잘 처리해주는 것을 확인하고 Message Queue에 대해 정리한 글이니 참고 부탁드립니다. 1. Message Queue 1.1 Message Queue(이하 메시지 큐) 배경 메시지 지향 미들웨어(Meesage Oriented Middleware: MOM)은 비동기 메시지를 사용하는 다른 응용 프로그램 사이에서 데이터 송수신을 의미합니다. MOM을 구현한 시스템을 메시지 큐(MessageQueue: MQ)라 합니다. 메시지 큐는 별도의 공정 작업을 연기할 수 있는 유연성을 제공하여 SOA(Service..