본문 바로가기

분류 전체보기116

[Linux/Ubuntu] 메모리 / 디스크 / 디렉토리 용량 확인 많은 사람들이 AWS에서 Ubuntu를 기반으로 EC2 인스턴스를 많이 생성해서 운용하는 것으로 알고 있는데, 운용함에 있어 알아두면 좋은 명령어들이다. 1. 메모리 확인 # 기본 명령어 $ free # 가독성을 높인 옵션 $ free -h # 저장 바이너리 단위로 출력 # (-b, -k, -m, -g) : 순서대로 바이트, 키비바이트, 메비바이트, 기비바이트 # (--tebi, --pebi) : 테비바이트, 페비바이트 $ free -b # 용량 단위로 출력 # (--kilo, --mega, --giga, --tera, --peta) $ free --kilo 위 명령어를 입력하면 아래 6가지 항목을 출력한다. total : 현재 인스턴스의 총 메모리 used : total 메모리에서 항목 중 free 및.. 2023. 7. 21.
[Redis] Pub/Sub 1. Pub(Publish) / Sub(Subscribe) : Pub / Sub이란, 특정 채널에 메시지를 발행하는 발행자와 해당 채널을 구독하여 메시지를 수신하는 구독자로 구성되어 있다. 발행자가 메시지를 발행하게 되면 해당 채널을 구독하는 모든 사용자들이 메시지를 받을 수 있다는 특징을 가지고 있으며, 그 예시로 카카오톡 단체 채팅방을 들 수 있는데, 한 사람이 메시지를 쓰면 모든 사람이 해당 메시지를 읽을 수 있는 점이다. 발행자는 어떤 사용자가 구독을 한지 모르고 채널에 메시지를 발행하기만 하고, 구독자는 채널에 발행된 메시지를 가져오기만 하기 때문에, 발행자와 구독자가 서로 분리가 되어서 상호 상태에 대하여 알지 못한다는 특징도 가지고 있다. Redis에서 Pub/Sub은 비동기 처리로 메시지를.. 2023. 7. 19.
[OS] 메모리 구조 운영 체제의 프로그램이 실행되려면 실행되려는 프로그램(코드)이 메모리에 먼저 적재되고, 추가로 프로그램에서 사용할 변수를 할당할 메모리 또한 필요로 한다. 위의 그림을 토대로 운영체제에서 프로그램(한 개 이상의 프로세스로 이루어진 집합체)에 배정하는 메모리 영역은 4가지 영역으로 구분되어 있다. Code 영역 Data 영역 Heap 영역 Stack 영역 Code -> Data -> Heap -> Stack 순으로 Low Memory -> High Memory로 분류된다. Low Memory : logical address가 존재하는 메모리 공간 High Memory : logical address를 갖고 있지 않는 메모리 공간 1. Code 영역 : 메모리에 배정된 Code 영역은 이름 그대로 프로그램의.. 2023. 7. 13.
[Redis] Redis-cli 기본 명령어 Redis에 저장되는 데이터 구조에는 다양한 형태를 가지고 있고 그에 따라 명령어도 많이 구분되어 있다. 이는 Redis 공식 Docs에 설명이 세부적으로 나와있고, 정확한 가이드가 나와있다. Docs : https://redis.io/docs/data-types/ 그중에서 가장 많이 사용되는 Strings, Lists, Sets, Sorted Sets와 Hashes의 Redis-cli의 명령어에 대하여 알아볼 것이다. 1. Strings # redis-cli set # Create / Update(Key 존재 시) get # Read del # Delete(String 타입 이외에도 적용 가능) getset # value 값을 가져오고 set값으로 대체 append # value + (ex. key가 .. 2023. 7. 11.
[Redis] Redis란 1. Redis란 : Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS) IMDB : 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조 Single Thread : 명령어를 하나씩 처리하기 때문에 긴 명령어가 들어오면 처리될 때까지 후 순위의 명령어의 대기가 필요 get, set과 같은 단순한 명령어의 경우 초당 10만 개 이상 처리가 가능 2. 활용 사례 : I/O가 많은 데이터 처리 사용자의 세션 관리 API 캐싱 3. Redis의 데이터 구조 : Strings : 텍스트, 직렬화된 개체 및 이진 배열을 포함하여 바이트 시퀀스를 저장 Lists : 문자열 값의 연결된 목록 스택과 큐를 구현 백그라운드 작.. 2023. 7. 9.
[Kafka] 멱등성/At least once/At most once/Exactly once MSA(Micro Service Architecture)에서 EDD(Event Driven Development)를 기반으로 개발을 할 때 Kafka를 이벤트 브로커로 많이 사용하게 되고, 그와 더불어서 이슈가 되는 것이 멱등성에 관한 내용이다. 아래 글은 Kafka에서 멱등성과 관련된 내용을 다룬 것이다. 1. 멱등성(Idempotence) : 멱등성 : 동일한 요청이 여러 차례 반복되어 작업이 처리되어도 동일한 결과를 나타내는 특성 Kafka의 Producer와 Consumer가 Pull 방식으로 발생한 이벤트를 처리하는데, 여기서 Producer와 Consumer에서 메시지 유실 또는 메시지 중복 처리가 발생할 수 있고, 이는 멱등성을 보장하지 못한다. 2. At least once : at_lea.. 2023. 7. 1.