Redis Key 란? Redis는 인메모리 데이터 스토어로서, 키-값(key-value) 쌍을 저장하고 관리하는 데 사용한다. Redis의 핵심 원칙 중 하나는 데이터 모델이 간단하고 유연하다는 것이며, 이는 Redis의 모든 데이터가 고유한 키로 식별된다는 의미를 갖는다. Redis 에서 키(Key)는 Redis에서 데이터를 저장하고 검색하기 위한 고유한 식별자이다. 키는 문자열 형태로 저장되며, Redis의 다양한 데이터 유형(문자열, 해시, 목록, 집합, 정렬된 집합 등)을 다루는 데 사용된다. Redis의 키는 일반적으로 명명 규칙에 따라 구성되는데, 이는 개발자가 데이터를 쉽게 식별하고 접근할 수 있도록 도와준다. Redis의 키(Key)는 일반적인 작업으로는 데이터 저장, 조회, 수정, 삭제..
검색이란? 검색은 정보를 찾기 위해 인터넷이나 컴퓨터 데이터베이스 등을 통해 특정한 키워드나 질의문을 이용하여 원하는 정보를 찾는 과정을 말한다. 검색 엔진을 통해 수많은 웹 페이지, 문서, 이미지, 동영상 등이 색인화되어 있어 사용자가 키워드를 입력하면 해당 키워드와 관련된 정보를 검색 결과로 제공한다. 검색은 다양한 형태로 이루어질 수 있다. 가장 기본적인 검색은 텍스트 기반의 검색이며, 사용자가 키워드나 질의문을 입력하여 관련된 문서를 찾는다. 이외에도 이미지 검색, 동영상 검색, 뉴스 검색, 지도 검색 등 다양한 형태의 검색이 가능하다. 검색 엔진은 크롤러라고 불리는 프로그램을 이용하여 웹 페이지를 수집하고, 이를 색인화하여 검색 결과를 생성한다. 대표적인 검색 엔진으로는 Elasticsearch..
Nori 분석기란? Elasticsearch Nori 분석기는 한국어 텍스트를 처리하기 위해 개발된 Elasticsearch의 기본 제공 분석기이다. Nori 분석기는 주로 다음과 같은 작업을 수행한다. 1. 토큰화(Tokenization) 한국어 문장을 형태소 단위로 분리한다. 형태소는 문장에서 의미를 갖는 최소 단위로서, 일반적으로 명사, 동사, 형용사 등이 될 수 있다. Nori는 형태소 분석을 위해 색인 전에 형태소 단위로 문장을 쪼갠다. 2. 어휘 형태소 분석(Lexical Token Analysis) Nori는 어휘 사전을 사용하여 형태소를 분석한다. 어휘 사전은 일반적인 단어와 함께 한국어의 특수한 언어 현상을 처리하는 데 사용되는 사전이다. Nori는 품사 태깅, 불규칙 활용 형태소 처리,..
https://goodbyeanma.tistory.com/157 [Python] Telegram 메시지 보내주기 Python과 Telegram을 조합해서 알람 서비스를 만드는 이유 1. 편리한 알림 기능 Python과 Telegram을 함께 사용하면 간단하고 빠르게 알람 서비스를 구축할 수 있다. Telegram의 알림 기능을 활용하여 사용 goodbyeanma.tistory.com 위의 글에서는 Python 외부라이브러리를 사용해서 telegram 봇이 메시지를 보내주는 기능을 구현해 보았다. 이번 글에서는 사용자의 메시지에 Telegram 봇이 응답해 주는 기능을 구현해 볼 것이다. 라이브러리 로직 기본 구조 이번에는 안정적인 구현을 위해서 python-telegram-bot 13.8 버전을 다운로드..
Python과 Telegram을 조합해서 알람 서비스를 만드는 이유 1. 편리한 알림 기능 Python과 Telegram을 함께 사용하면 간단하고 빠르게 알람 서비스를 구축할 수 있다. Telegram의 알림 기능을 활용하여 사용자에게 즉각적으로 알림을 보낼 수 있다. 2. 높은 접근성 Telegram은 모바일 기기, 데스크톱, 웹 등 다양한 플랫폼에서 사용할 수 있어서 사용자들이 서비스에 쉽게 접근이 가능하다. 3. 안정성과 보안성 Telegram은 안정적이며 보안성이 뛰어나기 때문에 사용자들이 안심하고 서비스를 이용할 수 있다. 4. 다양한 용도로 활용 가능 Telegram은 채팅뿐만 아니라 봇을 활용한 다양한 기능을 제공하기 때문에, 알람 서비스 외에도 다양한 용도로 활용이 가능하다. 5. 유연성 ..
랜섬웨어(Ransomware) 란? 랜섬웨어(Ransomware)는 악성 코드의 일종으로, 컴퓨터 파일을 암호화하거나 사용자의 파일 시스템을 블록 하는 등의 방법으로 파일에 대한 액세스 권한을 제한하고, 해독에 대한 비용을 요구하는 소프트웨어이다. 랜섬웨어는 일반적으로 이메일, 소셜 미디어, 악성 웹사이트, P2P 네트워크 등을 통해 유포된다. 일단 사용자가 랜섬웨어에 감염되면, 랜섬웨어는 암호화된 파일에 대한 복호화 키를 보유하고, 사용자에게 이를 구매하는 것을 요구한다. 대개 랜섬웨어의 요구 금액은 비트코인과 같은 암호화폐로 지불하도록 요구되며, 요구 금액은 몇 백 달러에서 몇 만 달러까지 다양합니다. 랜섬웨어 요구금을 지불하면, 일반적으로 복호화 키를 제공하지만 그렇지 않은 경우도 많다. 랜섬웨어로..
좋은 객체지향 설계를 위한 다섯 개의 원칙이 존재한다. [ SOLID ] 1. SRP : 단일 책임 원칙 (Single Responsibility Principle) 2. OCP : 개발-폐쇄 원칙 (Open/closed Principle) 3. LSP : 리스코프 치환 원칙 (Liskov Substitution Principle) 4. ISP : 인터페이스 분리 원칙 (Interface Segregation Principle) 5. DIP : 의존관계 역전 원칙 (Dependency Inversion Principle) SRP (Single Responsibility Principle) 1) 하나의 클래스는 하나의 책임만 가져야 한다. (하나의 책임이란 것은 모호한 개념) 2) 중요한 판단의 기준은 변..
SCAN 이란? Redis는 인-메모리 데이터 구조 스토어이다. Redis는 Key-Value 데이터 구조를 사용하여, 데이터를 메모리에 유지하고, 매우 빠른 성능으로 데이터를 읽고 쓰기가 가능하다. Redis는 데이터베이스에 저장된 키/값 쌍의 목록을 관리하는 데 사용할 수 있는 다양한 명령어를 제공한다. "SCAN"은 이러한 명령어 중 하나로, Redis 데이터베이스에서 키/값 쌍을 반복적으로 조회하는 데 사용된다. Redis KEYS 명령어를 사용하여 Redis 데이터베이스에서 특정 패턴에 일치하는 키를 찾아 반환할 수 있지만, 싱글스레드를 사용하는 Redis 구조의 특성상 다른 모든 일을 제쳐두고 해당 명령만 수행하게 되므로 (작업시간 O(N) 소요) 대규모 데이터베이스에서 사용할 때는 Redis..
GC (Garbage Collection) 이란? 자바 가비지 컬렉션(Garbage Collection, GC)은 자바 가상 머신(Java Virtual Machine, JVM)에서 동작하는 메모리 관리 기법 중 하나다. 이는 프로그램에서 동적으로 할당된 메모리 중에서 더 이상 사용되지 않는 객체(가비지)를 자동으로 탐지하고 제거하여 메모리 누수를 방지하고 메모리 사용량을 최적화하는 역할을 한다. GC (Garbage Collection)가 필요한 이유? 메모리 누수 방지 프로그램에서 객체를 생성하면, 해당 객체는 동적으로 할당된 메모리 영역에 저장된다. 이후 해당 객체를 사용하지 않더라도, 개발자가 명시적으로 메모리를 해제하지 않는다면 해당 객체가 차지하는 메모리는 계속 유지된다. 이러한 상황이 지속되..
WiredTiger StorageEngine 이란? MongoDB WiredTiger는 MongoDB의 기본 스토리지 엔진 중 하나이다. WiredTiger는 2014년 MongoDB 버전 3.0에서 처음 도입되었으며, 기존의 MMAPv1 엔진 대신 새로운 알고리즘과 데이터 구조를 도입하여 더 빠르고 효율적인 데이터베이스 엔진을 만들어내는 데 중점을 두고 개발되었다. WiredTiger StorageEngine 구조 및 작동 방식 WiredTiger 스토리지 엔진은 B-Tree 구조의 데이터 파일과 서버의 장애 시 데이터 복구를 위한 저널 로그를 가지고 있다. WiredTiger의 저널 로그는 데이터 디렉터리 하위에 있는 journal이라는 디렉터리에 저장되며, 다른 RDBMS의 redo 로그처럼 로테이..