WELCOME TO THE LAB

Code, Create,
and Keep Learning.

코드와 기술을 탐구하고 경험을 기록하는 개발 연구실.
AI · Backend · Cloud · Engineering

PUPBANI'S LAB / DEV JOURNAL
FIND YOUR INTEREST

Explore Topics ✳

All Categories →
BROWSE ARTICLES

전체 글

총 338개의 글 · AI·LLM, 백엔드, 클라우드, 데이터베이스, 개발 자동화까지. 기술을 탐구하고 실무 경험과 최신 IT 트렌드를 기록하는 개발자 기술 블로그, Pupbani’s Lab입니다.

DB/PostgreSQL

RAG 하이브리드 검색 구현: PostgreSQL pgvector·키워드 검색·RRF 완벽 가이드

RAG 하이브리드 검색(Hybrid Search)은 키워드 검색과 벡터 검색을 각각 실행한 뒤 결과를 결합하는 방식입니다. 제품 코드·계약번호처럼 정확히 일치해야 하는 표현과 의미가 비슷한 자연어 질문을 함께 처리할 때 유용합니다. PostgreSQL에서는 내장 전문 검색(Full Text Search), pgvector, RRF(Reciprocal Rank Fusion)를 조합해 별도의 검색 서버 없이 구현할 수 있습니다.기술 문서 확인: 2026-11-14. 예제는 학습용이며 실제 PostgreSQL 서버에서 실행·성능 검증하지 않았습니다.1. 벡터 검색만 사용하면 무엇이 부족할까?임베딩은 문장 사이의 의미적 유사성을 찾는 데 강하지만, 정확한 모델명·문서번호·고유명사 일치까지 보장하지는 않습니다. ..

↗
DB/PostgreSQL

PostgreSQL EXPLAIN ANALYZE 사용법: 느린 SQL 실행계획 분석과 인덱스 최적화

PostgreSQL에서 느린 SQL을 분석하려면 EXPLAIN (ANALYZE, BUFFERS)로 실행계획과 실제 실행 통계를 확인하세요. 가장 먼저 예상 행 수와 실제 행 수의 차이, 테이블 스캔 방식, 반복 횟수, 버퍼 읽기, 전체 실행 시간을 살펴보는 것이 좋습니다. 단, ANALYZE 옵션은 쿼리를 실제 실행하므로 운영 데이터에 영향을 줄 수 있습니다.작성·공식 문서 확인: 2026-11-13 · PostgreSQL 18 문서 기준 · 아래 실습 SQL은 설명용이며 실제 DB에서 실행 검증하지 않았습니다.1. EXPLAIN과 EXPLAIN ANALYZE의 차이PostgreSQL의 쿼리 플래너는 테이블 통계와 비용 추정을 이용해 실행계획을 선택합니다. EXPLAIN은 선택된 계획과 예상 비용을 보여..

↗
AI/정보보안

마스킹 vs 암호화 vs 토큰화 차이: 개인정보 보호 방법과 Python 구현 가이드

마스킹은 정보를 화면에서 가리는 처리, 암호화는 키를 이용해 원문을 복원할 수 있는 형태로 보호하는 처리, 토큰화는 원문을 별도의 대체값으로 치환하고 대응 관계를 안전하게 관리하는 방식입니다. 세 기술은 목적이 다르므로 개인정보를 다루는 API·데이터베이스·AI 시스템에서는 상황에 맞게 조합해야 합니다.1. 마스킹·암호화·토큰화 차이 한눈에 보기구분마스킹암호화토큰화목적표시·노출 제한기밀성 보호원문 사용 최소화예시010-****-1234인증된 암호문고객 식별자 대신 임의 토큰원문 복원표시 결과만으로는 일반적으로 불가올바른 키로 복호화별도 매핑 저장소를 통해 조회 가능핵심 위험원본 DB·로그가 그대로 노출키 유출·nonce 재사용토큰 저장소·매핑 권한 유출여기서 토큰화는 JWT 같은 인증 토큰 발급과 다른 ..

↗
AI/딥러닝(Deep Learning)

Cross Attention vs Self Attention 차이: PyTorch 구현으로 이해하기

Self Attention은 같은 시퀀스에서 Query·Key·Value를 만들고, Cross Attention은 Query와 Key·Value의 출처가 서로 다른 어텐션입니다. PyTorch에서는 두 방식 모두 torch.nn.MultiheadAttention으로 구현할 수 있으며, 핵심 차이는 forward(query, key, value)에 전달하는 텐서입니다. 이 글에서는 동일한 어텐션 레이어로 두 구조를 실행하고, 가중치 차원과 패딩 마스크를 직접 검증합니다. Self Attention과 Cross Attention의 핵심 차이 어텐션은 Query(Q)가 Key(K)와 얼마나 관련 있는지 점수를 계산하고, 그 결과로 Value(V)를 가중합합니다. 두 방식은 계산식 자체보다 정보를..

↗
최신 IT 이슈

Gemini 4 Carbon API 공개: Argon과 차이점, 가격, Python 사용법 총정리

Gemini 4 Carbon은 2026년 11월 10일 Google이 개발자·기업 대상으로 API 접근을 공개한 고성능 AI 모델입니다. 장시간 이어지는 코딩·디버깅, 복잡한 지식 작업, 보안 연구에 초점을 맞췄으며 Google AI Studio의 유료 개발자와 기업용 Gemini 환경에서 이용할 수 있다고 발표했습니다. 단순히 '더 좋은 모델'이 아니라 어떤 작업에 Carbon을 투입하고 어떤 작업을 더 가벼운 모델에 남길 것인가가 실제 도입의 핵심입니다.작성·공식 발표 확인: 2026-11-11. 이 글의 가격·성능은 Google의 2026-11-10 발표 기준이며, 독립 재현 결과가 아닙니다.1. Gemini 4 Carbon은 무엇인가?Google은 2026년 10월 28일 Carbon을 차세대 프..

↗
최신 IT 이슈

OpenAI Images 2.6 API 출시: Flare vs Sunburst 차이와 이미지 생성 자동화 가이드

OpenAI가 2026년 11월 4일 공개한 Images 2.6은 이미지 생성 API에서 속도 중심의 GPT-Image-2.6 Flare와 품질·편집 일관성 중심의 GPT-Image-2.6 Sunburst를 선택할 수 있도록 한 업데이트입니다. 개발자는 작업 목적에 맞춰 모델과 품질을 분리해 선택하고, 실제 요청 형식과 비용은 API 문서를 확인해야 합니다. 단순한 이미지 생성 모델 교체보다 반복 편집·브랜드 일관성·운영 비용 관리에 의미가 있습니다.공식 발표: 2026-11-04 · 자료 확인: 2026-11-10 · 대상: OpenAI 이미지 생성 API 개발자 · 이 글의 코드 예시는 실제 API 호출을 실행하지 않았습니다.1. Images 2.6에서 무엇이 달라졌나?OpenAI의 공식 발표에 따르..

↗
AI/AI 라이브러리

RAG 출처 검증 방법: AI 답변의 인용 오류·환각을 줄이는 Python 구현 가이드

RAG 답변에 출처 링크가 붙어 있어도 그 내용이 실제 문서에 근거한다고 단정할 수는 없습니다. 신뢰할 수 있는 RAG를 만들려면 검색된 문서의 고유 ID와 버전을 보존하고, 답변의 각 주장에 연결된 인용이 실제 검색 결과에 존재하는지 확인한 뒤, 해당 문단이 주장을 뒷받침하는지 별도로 평가해야 합니다. 이것이 RAG 출처 검증(Citation Verification)과 근거성 검증(Groundedness)의 핵심입니다.기술 문서 확인: 2026-11-09. 이 글은 특정 기업의 실제 구축 사례가 아닌 범용 설계 가이드입니다.1. RAG에 출처가 있어도 환각이 발생하는 이유검색 증강 생성(Retrieval-Augmented Generation)은 외부 문서를 검색해 언어 모델의 답변에 활용합니다. 그러나..

↗
Container/Docker

Docker Compose Secrets 사용법: .env 대신 API 키·DB 비밀번호 안전하게 관리하기

Docker Compose에서 API 키와 데이터베이스 비밀번호를 안전하게 전달하려면 environment에 값을 직접 넣기보다 secrets를 사용하고, 애플리케이션이 /run/secrets/이름 파일을 읽도록 설계하는 편이 좋습니다. 다만 일반 Docker Compose의 파일 기반 시크릿은 Docker Swarm의 암호화된 시크릿 저장소와 동일하지 않습니다. 호스트 파일의 보안, 권한, 백업, 회전 정책까지 관리해야 합니다.기술 문서 확인: 2026-11-08 · 대상: Docker Compose를 사용하는 Linux 컨테이너 기반 개발·운영 환경 · 예제는 로컬 실행 및 부하 테스트를 수행하지 않았습니다.1. 왜 .env 파일만으로는 부족할까?.env는 Compose 설정값을 편리하게 관리하는 수..

↗
AI/AI 라이브러리

RAG 청킹 전략 완벽 가이드: Chunk Size·Overlap 설정과 Python 구현 방법

RAG 청킹(Chunking)은 문서를 검색 가능한 작은 단위로 나누는 작업입니다. 좋은 청킹 전략은 무조건 잘게 자르는 것이 아니라, 질문에 답하는 데 필요한 문맥을 보존하면서 검색 결과에 불필요한 내용을 줄이는 것입니다. 처음에는 문단 중심의 재귀 분할을 기준선으로 삼고, 실제 질문에 대한 검색 적중률과 답변 근거의 정확도를 비교하면서 크기와 오버랩을 조정하는 것이 좋습니다.기술 문서 확인: 2026-11-07 | 이 글의 수치와 코드는 출발점 및 예시이며, 실제 성능을 검증한 결과가 아닙니다.1. RAG에서 청킹이 중요한 이유RAG(Retrieval-Augmented Generation)는 문서에서 관련 내용을 검색해 LLM의 답변 생성에 참고시키는 구조입니다. 문서를 통째로 임베딩하면 서로 다른 ..

↗
FROM THE NOTEBOOK

Latest Articles ✳

View all →
DB/PostgreSQL

RAG 하이브리드 검색 구현: PostgreSQL pgvector·키워드 검색·RRF 완벽 가이드

RAG 하이브리드 검색(Hybrid Search)은 키워드 검색과 벡터 검색을 각각 실행한 뒤 결과를 결합하는 방식입니다. 제품 코드·계약번호처럼 정확히 일치해야 하는 표현과 의미가 비슷한 자연어 질문을 함께 처리할 때 유용합니다. PostgreSQL에서는 내장 전문 검색(Full Text Search), pgvector, RRF(Reciprocal Rank Fusion)를 조합해 별도의 검색 서버 없이 구현할 수 있습니다.기술 문서 확인: 2026-11-14. 예제는 학습용이며 실제 PostgreSQL 서버에서 실행·성능 검증하지 않았습니다.1. 벡터 검색만 사용하면 무엇이 부족할까?임베딩은 문장 사이의 의미적 유사성을 찾는 데 강하지만, 정확한 모델명·문서번호·고유명사 일치까지 보장하지는 않습니다. ..

↗
DB/PostgreSQL

PostgreSQL EXPLAIN ANALYZE 사용법: 느린 SQL 실행계획 분석과 인덱스 최적화

PostgreSQL에서 느린 SQL을 분석하려면 EXPLAIN (ANALYZE, BUFFERS)로 실행계획과 실제 실행 통계를 확인하세요. 가장 먼저 예상 행 수와 실제 행 수의 차이, 테이블 스캔 방식, 반복 횟수, 버퍼 읽기, 전체 실행 시간을 살펴보는 것이 좋습니다. 단, ANALYZE 옵션은 쿼리를 실제 실행하므로 운영 데이터에 영향을 줄 수 있습니다.작성·공식 문서 확인: 2026-11-13 · PostgreSQL 18 문서 기준 · 아래 실습 SQL은 설명용이며 실제 DB에서 실행 검증하지 않았습니다.1. EXPLAIN과 EXPLAIN ANALYZE의 차이PostgreSQL의 쿼리 플래너는 테이블 통계와 비용 추정을 이용해 실행계획을 선택합니다. EXPLAIN은 선택된 계획과 예상 비용을 보여..

↗
AI/정보보안

마스킹 vs 암호화 vs 토큰화 차이: 개인정보 보호 방법과 Python 구현 가이드

마스킹은 정보를 화면에서 가리는 처리, 암호화는 키를 이용해 원문을 복원할 수 있는 형태로 보호하는 처리, 토큰화는 원문을 별도의 대체값으로 치환하고 대응 관계를 안전하게 관리하는 방식입니다. 세 기술은 목적이 다르므로 개인정보를 다루는 API·데이터베이스·AI 시스템에서는 상황에 맞게 조합해야 합니다.1. 마스킹·암호화·토큰화 차이 한눈에 보기구분마스킹암호화토큰화목적표시·노출 제한기밀성 보호원문 사용 최소화예시010-****-1234인증된 암호문고객 식별자 대신 임의 토큰원문 복원표시 결과만으로는 일반적으로 불가올바른 키로 복호화별도 매핑 저장소를 통해 조회 가능핵심 위험원본 DB·로그가 그대로 노출키 유출·nonce 재사용토큰 저장소·매핑 권한 유출여기서 토큰화는 JWT 같은 인증 토큰 발급과 다른 ..

↗
AI/딥러닝(Deep Learning)

Cross Attention vs Self Attention 차이: PyTorch 구현으로 이해하기

Self Attention은 같은 시퀀스에서 Query·Key·Value를 만들고, Cross Attention은 Query와 Key·Value의 출처가 서로 다른 어텐션입니다. PyTorch에서는 두 방식 모두 torch.nn.MultiheadAttention으로 구현할 수 있으며, 핵심 차이는 forward(query, key, value)에 전달하는 텐서입니다. 이 글에서는 동일한 어텐션 레이어로 두 구조를 실행하고, 가중치 차원과 패딩 마스크를 직접 검증합니다. Self Attention과 Cross Attention의 핵심 차이 어텐션은 Query(Q)가 Key(K)와 얼마나 관련 있는지 점수를 계산하고, 그 결과로 Value(V)를 가중합합니다. 두 방식은 계산식 자체보다 정보를..

↗
최신 IT 이슈

Gemini 4 Carbon API 공개: Argon과 차이점, 가격, Python 사용법 총정리

Gemini 4 Carbon은 2026년 11월 10일 Google이 개발자·기업 대상으로 API 접근을 공개한 고성능 AI 모델입니다. 장시간 이어지는 코딩·디버깅, 복잡한 지식 작업, 보안 연구에 초점을 맞췄으며 Google AI Studio의 유료 개발자와 기업용 Gemini 환경에서 이용할 수 있다고 발표했습니다. 단순히 '더 좋은 모델'이 아니라 어떤 작업에 Carbon을 투입하고 어떤 작업을 더 가벼운 모델에 남길 것인가가 실제 도입의 핵심입니다.작성·공식 발표 확인: 2026-11-11. 이 글의 가격·성능은 Google의 2026-11-10 발표 기준이며, 독립 재현 결과가 아닙니다.1. Gemini 4 Carbon은 무엇인가?Google은 2026년 10월 28일 Carbon을 차세대 프..

↗
최신 IT 이슈

OpenAI Images 2.6 API 출시: Flare vs Sunburst 차이와 이미지 생성 자동화 가이드

OpenAI가 2026년 11월 4일 공개한 Images 2.6은 이미지 생성 API에서 속도 중심의 GPT-Image-2.6 Flare와 품질·편집 일관성 중심의 GPT-Image-2.6 Sunburst를 선택할 수 있도록 한 업데이트입니다. 개발자는 작업 목적에 맞춰 모델과 품질을 분리해 선택하고, 실제 요청 형식과 비용은 API 문서를 확인해야 합니다. 단순한 이미지 생성 모델 교체보다 반복 편집·브랜드 일관성·운영 비용 관리에 의미가 있습니다.공식 발표: 2026-11-04 · 자료 확인: 2026-11-10 · 대상: OpenAI 이미지 생성 API 개발자 · 이 글의 코드 예시는 실제 API 호출을 실행하지 않았습니다.1. Images 2.6에서 무엇이 달라졌나?OpenAI의 공식 발표에 따르..

↗
AI/AI 라이브러리

RAG 출처 검증 방법: AI 답변의 인용 오류·환각을 줄이는 Python 구현 가이드

RAG 답변에 출처 링크가 붙어 있어도 그 내용이 실제 문서에 근거한다고 단정할 수는 없습니다. 신뢰할 수 있는 RAG를 만들려면 검색된 문서의 고유 ID와 버전을 보존하고, 답변의 각 주장에 연결된 인용이 실제 검색 결과에 존재하는지 확인한 뒤, 해당 문단이 주장을 뒷받침하는지 별도로 평가해야 합니다. 이것이 RAG 출처 검증(Citation Verification)과 근거성 검증(Groundedness)의 핵심입니다.기술 문서 확인: 2026-11-09. 이 글은 특정 기업의 실제 구축 사례가 아닌 범용 설계 가이드입니다.1. RAG에 출처가 있어도 환각이 발생하는 이유검색 증강 생성(Retrieval-Augmented Generation)은 외부 문서를 검색해 언어 모델의 답변에 활용합니다. 그러나..

↗
Container/Docker

Docker Compose Secrets 사용법: .env 대신 API 키·DB 비밀번호 안전하게 관리하기

Docker Compose에서 API 키와 데이터베이스 비밀번호를 안전하게 전달하려면 environment에 값을 직접 넣기보다 secrets를 사용하고, 애플리케이션이 /run/secrets/이름 파일을 읽도록 설계하는 편이 좋습니다. 다만 일반 Docker Compose의 파일 기반 시크릿은 Docker Swarm의 암호화된 시크릿 저장소와 동일하지 않습니다. 호스트 파일의 보안, 권한, 백업, 회전 정책까지 관리해야 합니다.기술 문서 확인: 2026-11-08 · 대상: Docker Compose를 사용하는 Linux 컨테이너 기반 개발·운영 환경 · 예제는 로컬 실행 및 부하 테스트를 수행하지 않았습니다.1. 왜 .env 파일만으로는 부족할까?.env는 Compose 설정값을 편리하게 관리하는 수..

↗
AI/AI 라이브러리

RAG 청킹 전략 완벽 가이드: Chunk Size·Overlap 설정과 Python 구현 방법

RAG 청킹(Chunking)은 문서를 검색 가능한 작은 단위로 나누는 작업입니다. 좋은 청킹 전략은 무조건 잘게 자르는 것이 아니라, 질문에 답하는 데 필요한 문맥을 보존하면서 검색 결과에 불필요한 내용을 줄이는 것입니다. 처음에는 문단 중심의 재귀 분할을 기준선으로 삼고, 실제 질문에 대한 검색 적중률과 답변 근거의 정확도를 비교하면서 크기와 오버랩을 조정하는 것이 좋습니다.기술 문서 확인: 2026-11-07 | 이 글의 수치와 코드는 출발점 및 예시이며, 실제 성능을 검증한 결과가 아닙니다.1. RAG에서 청킹이 중요한 이유RAG(Retrieval-Augmented Generation)는 문서에서 관련 내용을 검색해 LLM의 답변 생성에 참고시키는 구조입니다. 문서를 통째로 임베딩하면 서로 다른 ..

↗