Elasticsearch엘라스틱서치(Elasticsearch)는 아파치 루씬(Apache Lucene)을 기반으로 개발된 오픈소스 분산 검색 엔진이다. 루씬의 역색인(inverted index) 구조를 활용하여 문서 내 단어들을 빠르게 색인하고 검색할 수 있다.엘라스틱서치는 검색 엔진 기능 외에도 로그 분석과 실시간 모니터링 등에 사용된다.특히 Logstash와 Kibana와 함께 사용되어 데이터 수집, 저장, 분석, 시각화를 제공할 수 있다.Elasticsearch Python Client 사용하면 Python 애플리케이션에서 Elasticsearch를 쉽게 통합할 수 있다. 1) Elasticsearch 설치Elasticsearch Python Client를 설치하려면 pip를 사용하면 된다.pip ..
VSCode에서 MySQL Extension 설치하기먼저 VSCode에 MySQL Extension을 사용하기 전, 연결할 MySQL을 먼저 준비되어야 한다.혹시 개인 연습용이라면 MySQL을 설치하고 시작하면 좋다.[MySQL] MySQL 설치하기 (윈도우 / windows)연결할 MySQL의 Host와 Port, Username과 Password를 사전에 알아두자.주의! MySQL Extension은 기존 DB에 연결해주는 역할을 하는 것이기에 연결할 DB가 준비되어 있어야 한다! Extension을 통해 새로 만드는 것이 아님으로 주의하자. 1) Extensions 아이콘을 선택하여 MySQL을 검색한다.다양한 Extension 중에 Weijan Chen의 MySQL을 선택한다. 2) Install..
1. 개발 환경 준비1) FastAPI 설치이전 글을 참고해서 FastAPI를 설치 [FastAPI] FastAPI 설치 및 간단한 웹 API 만들기FastAPIFastAPI란 빠르고 간단한 python 기반의 웹 프레임워크이다.비동기 방식을 사용하기 때문에 Uvicorn이나 Hypercorn의 ASGI Server가 필요하다.예제에서는 Uvicorn을 사용하려 한다. 1) FastAPI 및 Uvicorn 설code-angie.tistory.com 2) MySQL 설치이전 글을 참고해서 MySQL을 설치 [MySQL] MySQL 설치하기 (윈도우 / windows)MySQL MySQL은 가장 많이 사용되는 데이터베이스 중 하나이며, 무료이기에 간단히 설치해 바로 사용할 수 있다. 윈도우와 리눅스 등 다양..
MySQLMySQL은 가장 많이 사용되는 데이터베이스 중 하나이다.무료이기에 간단히 설치해 바로 사용할 수 있다. 윈도우와 리눅스 등 다양한 운영체제에서 사용 가능해 확장성이 뛰어나다. 표준 SQL 형식을 사용해 쉽게 활용할 수 있다.1) MySQL Installer 다운로드하기아래 웹 페이지로 이동하여 MySQL Product Archives에서 MySQL Installer를 다운로드한다. MySQL :: Download MySQL Installer (Archived Versions)Please note that these are old versions. New releases will have recent bug fixes and features! To download the latest releas..
FastAPIFastAPI란 빠르고 간단한 python 기반의 웹 프레임워크이다.비동기 방식을 사용하기 때문에 Uvicorn이나 Hypercorn의 ASGI Server가 필요하다.예제에서는 Uvicorn을 사용하려 한다. 1) FastAPI 및 Uvicorn 설치pip install fastapipip install "uvicorn[standard]" 2) main.py 예제 파일 생성하기from typing import Unionfrom fastapi import FastAPIapp = FastAPI()@app.get("/")def read_root(): return {"Hello": "World"}@app.get("/items/{item_id}")def read_item(item_id: int..
문제트리는 사이클이 없는 무방향 그래프이며, 두 노드 사이의 경로가 항상 하나만 존재한다.두 노드를 선택하여 양쪽으로 쫙 당길 때, 가장 길게 늘어나는 경우를 트리의 지름이라고 한다.입력으로는 루트가 있는 가중치가 있는 간선들로 이루어진 트리가 주어지며, 트리의 지름을 구하는 프로그램을 작성해야 합니다.풀이트리의 지름을 찾기 위해 DFS를 활용한다.트리의 임의의 노드 $x$를 기준으로 잡는다.노드 $x$로부터 노드 간 거리를 DFS를 통해 구하고, 거리가 가장 먼 노드 $y$를 찾는다.노드 $y$를 기준으로 노드 간 거리를 다시 구한다.거리가 가장 먼 노드 $z$를 찾는다. 노드 $y$와 노드$z$ 사이의 거리가 트리의 지름이다. (가장 큰 값을 출력하면 된다.)◆ 트리의 지름 증명트리의 지름 양쪽 끝 ..
문제 n개의 보석의 무게(m)와 가격(v) 정보가 주어지고, m개의 가방이 최대 담을 수 있는 무게(c) 정보가 주어졌을 때, 가질 수 있는 보석의 최대 가격을 구하는 문제이다. 이때 한 개의 가방에는 한 개의 보석만 넣을 수 있다. 풀이 우선순위 큐를 사용하여 문제를 풀 수 있다. 보석과 가방의 무게를 비교하고 담을 수 있는 보석이라면 가장 큰 가격의 보석을 담도록 하는 것이다. 먼저 보석의 정보를 얻을 때, 같은 무게를 가진 보석이 다수 존재할 수 있음으로 딕셔너리 자료구조에 담는다. 딕셔너리로 관리하는 것이 메모리가 조금 늘지만 더 빠른 속도를 보여준다. 한 개의 가방에는 한 개의 보석만 들어가기 때문에 보석의 최대 무개(1000000)와 비교해서 넘어가는 것은 최대 무게로 대체한다. 보석의 무게가..