Study: ComputerScience(CS)

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

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

    [Linux] gdb로 디버깅하는 방법(feat. run/attach executable)

    💡 본 문서는 'gdb로 디버깅하는 방법'에 대해 정리해놓은 글입니다. 앞서 설명한 gdb에 대한 기본 설명을 읽고 오셨다면 gdb를 사용해야할 때에 대해서는 인지하셨을 거라 생각합니다. 이 문서 내에서는 활용하는 방법 중 먼저 run 방식과 attach 방식을 통해 gdb의 기능들을 살펴보고, 추후 load 방식에 대해 알아보겠습니다. 1. gdb를 익히기 위한 기본 세팅 1.1 C/C++ 파일 생성 매우 단순한 프로그램입니다. 2개의 입력인자를 받아 더하는 방식이네요. 이제 이 코드를 조금씩 분석해 나가며 기능들을 살펴보시죠. #include #include static int sum(int a, int b) { return a + b; } int main(int argc, char *argv[]) ..

    [Linux] gdb 활용하는 다양한 방법: executable, process, core dump file

    💡 본 문서는 'gdb 활용하는 다양한 방법'에 대해 정리해놓은 글입니다. C / C++ 코드를 디버깅 툴 중 가장 유명한 gdb와 이를 사용해야할 때에 대해 정리하였으니 참고하시기 바랍니다. 추가로 하기에 작성한 링크를 통해 이를 활용하여 executable, process, core dump file을 디버깅하여 분석하는 방법에 대한 글도 링크하였으니 참고하시기 바랍니다. 1. GDB란? 좋은 디버거는 문제를 해결하고, 프로그램을 좀 더 쉽게 개발하고 리버싱을 하는 등 다양한 방안에서 개발자에게 도움을 주는 도구 입니다. 많은 플랫폼에서 그에 맞춰 좋은 디버거들이 존재하고 개발자들은 자신에게 맞는 디버거를 사용하고 있습니다. 그 중 GDB(The GNU Debugger)는 많은 플랫폼, x86, x8..

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

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

    [Linux] 리눅스 크론탭(Linux Crontab) 사용법: 작업 스케줄러

    💡 본 문서는 '리눅스 크론탭(Linux Crontab) 사용법: 작업 스케줄러'에 대해 정리해놓은 글입니다. 윈도우에서는 스케줄러와 비슷하게 리눅스에서도 특정 시간에 특정 작업을 해야한다면 크론탭(Crontab)을 설정하여 사용하시면 됩니다. 이에 대해 정리하였으니 참고하시기 바랍니다. 1. 크론탭 기본 (crontab basic) 1.1 크론탭이란? crontab이란? 리눅스에서는 일반적으로 crons 데몬이 주기적인 작업 실행을 처리합니다. cron이 시작될 때부터 끝날 때까지 실행되며 cron 설정 파일은 cron table을 줄여서 crontab이라 부르게 됩니다. 1.2 크론탭 기본 사용 일단 기본이 되는 크론탭 사용법을 한 번 볼까요. 리눅스 쉘에서 다음처럼 입력합니다. $ crontab -..