본문 바로가기

개발 지식/기본지식14

Kafka란 Kafka란카프카(Kafka - Event Streaming 기반 비동기 메시징)란, 대규모 실시간 데이터 스트리밍을 처리하기 위한 분산 메시징 시스템이다. 원래는 링크드인(LinkedIn)에서 개발되었고, 지금은 Apache Software Foundation에서 오픈소스로 관리하고 있다. Apache Kafka는 실시간 데이터 스트리밍을 위한 고성능 분산 메시지 브로커이다. Apache Kafka 구조데이터를 생산자가 전송Kafka 브로커가 데이터를 저장소비자가 이를 읽어감 Kafka의 접근 방식이 주는 이점이점설명확장성Kafka의 파티셔닝된 로그 모델을 사용하면 데이터를 여러 서버에 분산할 수 있으므로 단일 서버에 담을 수 있는 수준 이상으로 데이터를 확장할 수 있다.신속함Kafka는 데이터 스트림.. 2025. 5. 20.
프로세스 간 통신(IPC) 란 IPC(Inter-Process Communication) 이란프로스세 간 통신은 다른 프로세스 간에 데이터를 전송하거나 상호작용하기 위한 메커니즘을 말한다.다양한 IPC 기법이 존재하며, 각각의 기법은 다른 상황이나 요구에 맞게 선택되어 사용된다. 멀티스레드와 함께 멀티 프로세스의 데이터 전송 기술이다. IPC 방법파이프(Pipes)명명된 파이프(Named Pipes)메시지 큐(Message Queues)공유 메모리(Shared Memory)소켓(Sockets)RPC(Remote Procedure Call)파일(file)파이프(Pipes)파이프 통신은 프로세스 간에 단방향으로 데이터를 전달하는 IPC 메커니즘 중 하나이다. 기본 구조[ 부모 프로세스 ] --쓰기--> [ 파이프 ] --읽기--> [ 자.. 2025. 5. 16.
메모리 관리란 # 메모리란메인 메모리, RAM을 의미한다.프로그램 실행 시 필요한 주소, 정보들을 저장하고 가져다 사용할 수 있게 만드는 공간 메모리 관리가 필요한 이유메모리 관리는 컴퓨터 시스템의 안정성과 성능을 유지하기 위해 꼭 필요한 작업이다. 시스템 자원의 효율적 분배컴퓨터는 물리 메모리(RAM)가 한정되어 있으므로, 여러 프로그램이 동시에 실행되더라도 각각에게 적절한 크기의 메모리를 효율적으로 나누어줘야 한다. 이를 제대로 관리하지 않으면 특정 프로그램이 과도하게 메모리를 차지하거나, 다른 프로그램의 메모리 공간을 침범해 시스템 전체의 오류를 일으킬 수 있다. 프로세스 간 보호다른 프로그램의 메모리 공간 침범이 시스템 전체의 오류를 일으키는 이유는 각 프로그램(프로세스)은 자신만의 메모리 공간을 가져야하기 때.. 2025. 5. 15.
터미널 기본 명령어 / 실습 터미널 기본 명령어 기본 명령어명령어설명pwd현재 위치 확인ls -l현재 디렉토리 내용 확인cd [폴더명][폴더명] 으로 이동cd ..이전 디렉토리로 이동touch [파일명]파일 하나 생성rm [파일명]파일 삭제mkdir [폴더 이름]디렉토리 생성텍스트 검색 및 처리명령어설명grep [패턴] [파일]파일에서 특정 문자열(패턴) 검색예: grep error logfile.txtgrep -r [패턴] [디렉토리]디렉토리 내 모든 파일에서 재귀적으로 검색awk '{print $1}' [파일]파일의 각 줄에서 첫 번째 필드 출력예: awk '{print $2}' access.logawk -F',' '{print $1}' [파일]구분자를 쉼표(,)로 설정해 필드 출력sed 's/old/new/' [파일]첫 번째 .. 2025. 5. 14.
스레드와 동시성 스레드(Thread)어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 방식을 멀티 스레드(MultiThread) 라고 한다. 프로세스 vs 스레드멀티프로세스와 멀티스레드는 양쪽 모두 여러 흐름이 동시에 진행된다는 공통점을 가지고 있다. 하지만 멀티프로세스에서 각 프로세스는 독립적으로 실행되며 각각 별개의 메모리를 차지하고 있는 것과 달리 멀티스레드는 프로세스 내의 메모리를 공유해 사용할 수 있다. 또한 프로세스 간의 전환 속도가 빠르다. 멀티스레드 단점각각의 스레드 중 어떤 것이 먼저 실행될지 그 순서를 알 수 없다. 예를 들어,두 스레드가 특.. 2025. 5. 13.
프로세스 관리 프로세스 관리운영체제는 자원을 프로세스에 할당하고, 프로세스가 정보를 공유와 교환을 가능하게 하며, 각 프로세스 자원을 다른 프로세스로부터 보호 하고, 동기화를 통해 협력을 가능하게 한다. 이러한 요구를 중족하기 위해 운영체제는 각 프로세스를 위한 자료 구조를 관리한다. 이를 통해, 프로세스의 상태와 자원 소유권을 기술할 수 있으며, 운영 체제는 각 프로세스를 효율적으로 감시하고 제어할 수 있다. 즉, 운영체제가 수행하는 핵심 기능 중 하나로, 시스템에서 실행 중인 모든 프로세스를 효율적으로 생성하고, 실행하고, 종료하며, 자원을 분배하고, 상태를 관리하는 것을 말한다. 주요기능기능설명프로세스 생성 및 종료새로운 프로세스 생성 (fork, exec), 작업 완료 후 종료 (exit)스케줄링CPU를 .. 2025. 5. 8.