2025/04/02 15

알고리즘 1: 슬라이딩 윈도우 (Sliding Window)

✅ 개념 요약고정 크기 또는 가변 크기의 “창(window)”을 배열 위에서 왼→오 방향으로 이동하며 처리시간복잡도 O(n)으로 반복 연산 최소화💡 문제: 가장 긴 1의 연속 구간 (최대 K번 0을 1로 바꾸기)0과 1로 이루어진 배열 nums가 주어진다. 최대 k번 0을 1로 바꿀 수 있을 때,1로만 이루어진 가장 긴 연속 부분 배열의 길이를 구하라.python Input: nums = [1,1,0,0,1,1,1,0], k = 2 Output: 7✅ 풀이 (슬라이딩 윈도우)python def longest_ones(nums, k): left = 0 max_len = 0 zero_count = 0 for right in range(len(nums)): if nums[..

알고리즘 2025.04.02

알고리즘 추천: 투 포인터 (Two Pointer)

✅ 개념 설명투 포인터는 배열을 탐색할 때 두 개의 포인터를 사용해서 효율적으로 문제를 해결하는 방식입니다.보통 정렬된 배열에서, 시간 복잡도를 줄이기 위해 사용합니다.✅ 언제 쓰나?정렬된 배열에서 두 수의 합부분 배열 / 구간합 / 슬라이딩 윈도우중복 제거 / 정렬된 리스트 병합문자열 서브패턴 찾기✅ 핵심 아이디어왼쪽 포인터 (L), 오른쪽 포인터 (R) 를 초기화조건에 따라 포인터를 이동시키며 배열을 탐색특정 조건(합, 길이 등)에 만족하면 정답 후보로 저장📘 예제 문제: 두 수의 합 (Two Sum II - Input Array Is Sorted)🧾 문제 설명정렬된 배열 numbers가 주어질 때, 두 수의 합이 target이 되는 인덱스를 반환하시오.(인덱스는 1부터 시작, 정답은 항상 존재)..

알고리즘 2025.04.02

Claude × Model Context Protocol (MCP) 연동 개발 가이드

Claude 모델이 MCP (Model Context Protocol) 클라이언트로 사용되는 상황을 전제로,FastAPI 기반 MCP-compatible 서버를 포함한 전체 구조와 샘플 코드를 Claude와 연동 가능한 형식으로 다시 정리🧠 Claude × Model Context Protocol (MCP) 연동 개발 가이드📌 핵심 요약LLM ClientClaude (Anthropic)MCP ServerFastAPI 앱 (JSON-RPC 2.0)Toolsfetch_github_issues, etc.TransportHTTP (or WebSocket)FormatJSON-RPC v2Claude는 tool.list, tool.call, resource.list 등의 메시지를 통해 외부 서버에 기능 요청을 합..

AI 2025.04.02

Model Context Protocol (MCP) Anthropic 개발 방법

**Model Context Protocol (MCP)**는 Anthropic이 주도하여 설계한 AI와 외부 시스템 간의 상호작용을 위한 오픈 프로토콜입니다. 이 프로토콜은 특히 LLM이 외부 도구·리소스와 안전하고 일관된 방식으로 상호작용할 수 있게 해줍니다.아래는 MCP 개발 배경, 구조, 작동 방식, 개발 방법 및 예시까지 자세하게 정리한 내용입니다.🧠 MCP란 무엇인가?**MCP (Model Context Protocol)**는:LLM이 외부 세계에 안전하게 연결되도록 설계된 표준 통신 프로토콜입니다.클라이언트 ↔ 서버 (LLM ↔ Tool) 구조에서 모델이 서버에게 도구 사용 요청을 보낼 수 있습니다.JSON-RPC 기반 메시지 규격을 따르며, 다양한 리소스, 툴, 프롬프트, 샘플링을 통합 관..

AI 2025.04.02

Nginx 지시자(directive) 기초 분석 예제!!

Nginx 기본 설정 파일 (nginx.conf) 예제이며, 지시자(directive)마다 한글 주석을 달아 이해하기 쉽게 구성해드렸습니다.버전은 Nginx 1.24 기준이며, 대부분의 설정은 최신 버전에서도 동일하게 작동# 전역 설정 영역 (Global Settings)user nginx; # Nginx 프로세스를 실행할 사용자 (리눅스 유저)worker_processes auto; # 워커 프로세스 수 (CPU 수에 따라 자동 설정)error_log /var/log/nginx/error.log warn; # 에러 로그 파일 경로 및 로그 수준pid /var/run/nginx.pid; # PID 파일 경로# 이벤트 ..

CICD 2025.04.02

Airflow + Redis + Kafka를 포함한 통합 docker-compose 구성

🧱 전체 아키텍처 구성 개요┌────────────┐ ┌──────────────┐│ Producer │ ───▶ │ Kafka │ ◀──┐└────────────┘ └──────────────┘ │ ▼ ┌─────────────┐ ┌────────────┐ ┌────────────┐ │ Airflow │ ◀▶ │ Redis Queue│ ◀▶│ Celery │ └─────────────┘ └────────────┘ └────────────┘ Kafka: 실시간 메시징/스트리밍 처리Redis: Celery 브로커 or 캐시 저장소Airflow: DAG 기반..

IT 2025.04.02

왜 dev/prod 환경을 분리해야 할까?

🎯 왜 dev/prod 환경을 분리해야 할까?항목개발 환경 (dev)운영 환경 (prod)코드 변경자주 변경, 테스트 위주변경 최소화, 안정성 중시로깅/디버깅상세 로그, 리로드 기능 활성화최소 로그, 보안 로그, 핫리로드 비활성화외부 연동로컬 DB, 모킹 서버실제 DB, 외부 연동 시스템 사용이미지 구성bind-mount, 캐시 비활용완전한 이미지 빌드, 멀티스테이지 빌드 활용보안민감 정보 노출 가능환경변수로 암호화된 키, TLS, CORS 제약 등 적용🧱 구조 설계 예시my-app/├── docker-compose.yml # 공통 설정├── docker-compose.dev.yml # 개발 전용 override├── docker-compose.prod.yml # 운영..

CICD 2025.04.02

dockerfile과 docker-compose 비교 와 예제코드

🧱 Dockerfile vs docker-compose 비교 항목Dockerfiledocker-compose목적단일 애플리케이션의 이미지를 정의여러 컨테이너(서비스)를 통합 실행 및 관리사용 방식docker build → docker rundocker-compose up, down으로 전체 서비스 컨트롤주요 기능OS, 종속성, 코드 복사, CMD 설정여러 컨테이너 연결, 네트워크, 볼륨, 환경 변수 설정장점이식성, 이미지 버전관리, CI/CD 연동마이크로서비스 또는 개발환경 전반 구성 자동화단점네트워크, DB, 연동 구성은 따로 필요복잡한 빌드 옵션은 Dockerfile에 위임 필요🐳 예제: Spring Boot + PostgreSQL📁 폴더 구조spring-boot-app/├── Dockerfil..

CICD 2025.04.02

gRPC 연동 정리 (Java vs Kotlin vs NestJS)

📌 gRPC란?Google이 개발한 고성능, 언어 중립 RPC 프레임워크데이터 직렬화는 Protocol Buffers(proto) 사용HTTP/2 기반으로 양방향 스트리밍, 성능 우수REST보다 빠르며 마이크로서비스 통신에 적합🔗 기술별 구성 방식 요약항목Java (Spring Boot)Kotlin (Ktor)NestJS (TypeScript)주요 라이브러리grpc-spring-boot-starter, protobufgrpc-kotlin, kotlinx-coroutines@grpc/grpc-js, @nestjs/microservices서버 정의@GRpcService로 구현코루틴 기반 suspend 함수 사용@GrpcMethod 데코레이터 사용클라이언트 정의ChannelBuilder + Stub 사용비..

Java 2025.04.02