Nginx: 마이크로캐싱(Micro-Caching) 적용하기
·
🐧Linux
마이크로 캐싱이란?마이크로 캐싱은 아주 짧은 TTL(보통 1~10초) 동안 응답을 캐시에 저장해 두고, 같은 요청이 들어오면 백엔드 대신 캐시에서 바로 응답하는 기법입니다. 짧은 TTL이라 실시간성은 유지하면서도, 순간 트래픽 폭주(새로고침, 인기 API 호출 등)를 효과적으로 흡수할 수 있습니다.필요한 이유사용자가 새로고침을 여러 번 하거나, 다수 유저가 동시에 동일 API를 호출하면 백엔드(DB, 애플리케이션)에 부하가 급증합니다.대부분의 API/페이지는 몇 초 단위로 변경되지 않기 때문에 짧게라도 캐시하면 부하를 크게 줄일 수 있습니다.⚙️ 동작원리첫 요청 → 캐시에 없음 → 백엔드 호출 → 응답 저장TTL(예: 3초) 안의 동일 요청 → 캐시에서 바로 응답TTL 만료 → 백엔드 재호출 후 캐시 갱..
GO 언어로 동일한 데이터베이스 테이블 Row 비교하기: 고루틴 이용
·
🧑🏽‍💻Dev:Lang/GO
package mainGo 프로그램의 시작점입니다. main 패키지를 정의하면 이 파일은 실행 가능한 프로그램(entry point)을 만든다는 의미import ( "database/sql" "fmt" "sync" _ "github.com/go-sql-driver/mysql") 구문:Go 코드에서 외부 패키지를 불러올 때 사용합니다.각 줄 설명:"database/sql"Go에서 SQL 데이터베이스를 사용하기 위한 표준 인터페이스입니다. MySQL뿐 아니라 PostgreSQL, SQLite 등 다양한 DB 드라이버와 함께 사용할 수 있게 도와줘요."fmt"출력 관련 함수들이 있는 패키지입니다. 예: fmt.Println()."sync"동시성 제어(멀티스레드)를 위한 패키지예요. 예: sync.WaitGro..
Nginx: 하나의 서버에서 두 도메인 SSL 설정 방법
·
🐧Linux
하나의 서버에서 2개의 웹 프론트 서버가 서로 다른 도메인으로 SSL(443포트) 사용 가능하다. 단, 아래 조건을 만족해야 한다.✅ 전제 조건도메인이 서로 다름예: a.example.com, b.example.com각 도메인에 대해 유효한 SSL 인증서Let’s Encrypt 등에서 도메인 별 인증서 발급리버스 프록시(Web 서버)가 하나만 443 포트를 바인딩Nginx나 Apache 같은 리버스 프록시를 사용해 도메인에 따라 백엔드 서버로 트래픽 분기🧱 구조 예시[Client] |443 포트 요청 (도메인 A 또는 B) ↓[Nginx Reverse Proxy] (SSL 인증서 설정, 443 포트 점유) ├──> http://localhost:3001 (도메인 A용 웹 앱) └──> ..
MariaDB ➡️ MySQL Migration: mydumper & myloader 사용법 정리(스키마 제외, 데이터만)
·
카테고리 없음
📌 개요이 글에서는 MySQL에서 특정 데이터베이스의 데이터만 덤프하고, 다른 서버에 복원하는 과정을 mydumper / myloader 툴로 설명합니다.✅ 병렬 덤프 및 복원 지원✅ 데이터만 추출 및 복원✅ 병렬 덤프 및 복원 지원🧱 설치🧤 ubuntusudo apt updatesudo apt install mydumper -y🧤 데이터 덤프 (Source DB 에서)mydumper \ -h [DB-IP] \ -u [User] \ -p ['password'] \ -B [DataBase_name] \ --no-schemas \ --outputdir /home/ubuntu/[output_dir] \ --threads 4🔖 옵션 설명옵션설명-hDB 서버 주소-u, -p접속 계정 정보-B..
PostgreSQL: DB Dump 방식으로 다운그레이드 가이드
·
📊DB/PostgreSQL
✅ 1단계: PostgreSQL 17 클라이언트 설치sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpmsudo dnf -qy module disable postgresqlsudo dnf install -y postgresql17✅ 2단계: 백업 (pg_dump 사용) - 17버전export PGPASSWORD='password'/usr/pgsql-17/bin/pg_dump \ -h 192.168.3.72 \ -p 5432 \ -U DB-User \ -d NineMemos_Dev_BC_01 \ -Fc \ ..
SSL 파일형식 통합: Apache와 Nginx에서의 활용 방법
·
🐧Linux
apache와 nginx에서 쓰는 SSL 파일형식이 다름. 각각 만들어줘야 하지만, 통합해서 쓸 수 있는 방법이 있음.인증서와 체인 파일을 하나로 합친 파일을 생성하고, 이를 웹 서버에서 공통적으로 사용하도록 설정하면 됨.cat star_crt.pem ChainCA.crt RootCA.crt > fullchain.pemfullchain.pem 파일과 Private.key 파일을 웹 서버 설정apache 설정 ServerName example.com SSLEngine on SSLCertificateFile /path/to/fullchain.pem SSLCertificateKeyFile /path/to/Private.keynginx 설정server { listen 443 ssl; ..
웹 컴포넌트와 HTML의 기초
·
🧑🏽‍💻Dev:Lang/Python
웹의 이해웹의 이해월드 와이드 웹(world wide web) 은 인터넷에 연결된 컴퓨터를 이용하여 사람들과 정보를 공유할 수 있도록 거미줄처럼 엮인 공간웹 컴포넌트 : HTML과 HTTP : HTMLHTML(Hyper Text Markup Language)은 웹상의 정보를 구조적으로 표햔하기 위한 언어HTTP 프로토콜 : 데이터 송수신을 위해HTML 형식 : 데이터를 표시하기 위해웹 컴포넌트 : HTML과 HTTP : HTML태그는 꺾쇠 괄호 로 둘러싸여 있고, 그 안에 정보르에 대한 의미를 적음. 그리고 그 의미가 끝나는 부분에 슬래시(/) 를 사용하여 해당 태그를 종료 Hello, World # 제목 요소, 값은 Hello, World웹 컴포넌트 : HTML과 HTTP : HTTPHTTP(Hyper..
Python: Matplotlib을 활용한 데이터 시각화
·
🧑🏽‍💻Dev:Lang/Python
matplotlib 시각화Matplotlib는 데이터 시각화와 2D 그래프 플롯에 사용되는 파이썬 라이브러리.Matplotlib 기본 사용matplotlib.pyplot기본 그래프import matplotlib.pyplot as plt plt.plot([1,2,3,4]) # x 값 자동 완성. plt.ylabel('y-label') plt.show()기본 그래프import matplotlib.pyplot as plt plt.plot([1,2,3,4], [1,4,9,16]) # x, y 지정 plt.show()레이블 설정import matplotlib.pyplot as plt plt.plot([1,2,3,4], [1,4,9,16]) plt.xlabel('X-label') plt.ylabel('Y-label..
Python: DFS 및 BFS, A* 알고리즘 설명
·
🧑🏽‍💻Dev:Lang/Python
1. DFS 알고리즘BFS에 있던 큐(Queue) 대신에 스택(stack)으로 자료구조를 대체하기만 하면 쉽게 구현하실 수 있다.graph = dict() graph['A'] = ['B', 'C']graph['B'] = ['A', 'D']graph['C'] = ['A', 'G', 'H', 'I']graph['D'] = ['B', 'E', 'F']graph['E'] = ['D']graph['F'] = ['D']graph['G'] = ['C']graph['H'] = ['C']graph['I'] = ['C', 'J']graph['J'] = ['I']def dfs(graph, start_node):# 항상 두개의 리스트를 별도로 관리해주는 것. need_visited, visited = list(), li..
게임 탐색 알고리즘: 미니맥스와 알파-베타 가지치기
·
🧑🏽‍💻Dev:Lang/Python
탐색 방법 개요탐색맹목적 탐색정보이용 탐색게임에서의 탐색 → 적대적탐색(두개의 에이전트가 적대적 관계를 가질 때)게임에서의 탐색 알고리즘minimax 알고리즘알파 — 베타 가지치기몬테카를로 시뮬레이션몬테카를로 트리 탐색minimax 알고리즘두 사람이 번갈아 수를 두고 승패를 겨루는 게임으로 확장체스와 바둑 등새로운 탐색 알고리즘 필요인공지능은 어떤 전략을 구사해 상대를 이길 수 있을까?미니맥스 전략내가 둘차례에서는 MAX상대 차례에서는 min을 적용(상대의 최적의 수는 나에게 최악의 수이므로 min 적용.)alpha−Beta 가지치기Minimax을 개선한 적대적 탐색방법으로써, MAX가 찾아 놓은 최선값인 알파값을 유지하여 후보 노드의 좋은 정도가 알파값 보다작을 경우 가지치기를 함으로써 보다 효율적인 ..