본문 바로가기

전체 글1656

[Python] RAG(Retrieval-Augmented Generation) 이해하기 안녕하세요 오늘은 요즘 AI 분야에서 중요한 개념 중 하나인 RAG(Retrieval-Augmented Generation) 에 대해 소개하고,간단한 예제를 함께 살펴보겠습니다. RAG란 무엇일까?LLM(대규모 언어 모델)은 방대한 데이터를 학습했지만, 실시간 최신 정보나 특정 도메인 데이터에 대해 정확하게 답하지 못할 때가 많습니다.이때 필요한 것이 바로 RAG입니다.Retrieval(검색) : 데이터베이스나 문서 저장소에서 관련 정보를 찾아옵니다.Augmented(보강) : 검색된 정보를 모델 입력에 함께 넣어줍니다.Generation(생성) : LLM이 그 정보를 참고해 더 정확하고 맥락 있는 답변을 생성합니다.즉, RAG는 검색 + 생성을 결합해 지식 있는 AI 답변을 만드는 기술입니다. RAG의.. 2025. 9. 26.
[Python] 간단한 PDF 파일 만들기 안녕하세요. 오늘은 파이썬으로 PDF 문서 생성하기 예제를 소개합니다.reportlab 라이브러리를 사용하면 텍스트, 표, 이미지 등을 포함한 PDF 파일을 쉽게 만들 수 있습니다. 1. 라이브러리 설치 pip install reportlab 2. 코드 작성하기아래 예제는 간단한 텍스트를 담은 PDF 파일을 만드는 코드입니다.from reportlab.lib.pagesizes import A4from reportlab.pdfgen import canvas# 1. PDF 파일 생성c = canvas.Canvas("example.pdf", pagesize=A4)# 2. 텍스트 추가c.setFont("Helvetica", 16)c.drawString(100, 800, "🐍 파이썬으로 만든 PDF 예제").. 2025. 9. 24.
[Python] datetime 사용하여 현재 날짜와 시간 구하기 안녕하세요오늘은 datetime 모듈을 사용해 날짜, 시간을 다뤄보도록 하겠습니다. 전체 코드입니다. main.pyfrom datetime import datetimenow = datetime.now()print("현재 시각:", now)print("연도:", now.year)print("월:", now.month)print("일:", now.day)print("시:", now.hour)print("분:", now.minute)print("초:", now.second)date_str = "2025-09-21 14:30:00"# 문자열 → datetimedt = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")print("변환된 datetime:", dt)# datet.. 2025. 9. 23.
[Python] qrcode 라이브러리로 QR 코드 만들기 안녕하세요 오늘은 파이썬으로 QR 코드 생성해보도록 하겠습니다. QR 코드는 웹사이트 링크, 명함 정보, Wi-Fi 접속 정보 등 다양한 데이터를 간단하게 담을 수 있어서 실용성이 높습니다.파이썬에서는 qrcode라는 라이브러리를 사용하면 아주 쉽게 만들 수 있습니다. 1. 먼저 qrcode 라이브러리를 설치해줍니다.이미지 처리를 위해 pillow도 함께 설치됩니다. pip install qrcode[pil] 2. 코드 작성하기 아래 예제는 간단하게 링크를 QR 코드로 변환해서 이미지 파일로 저장하는 코드입니다.import qrcode# 1. QR 코드에 담을 데이터data = "특정 웹사이트의 링크 등"# 2. QR 코드 생성qr = qrcode.QRCode( version=1, # 1 ~.. 2025. 9. 22.
[Python] any() / all() 함수 활용하기 안녕하세요오늘은 파이썬 내장함수 any() / all() 함수에 대해 알아보도록 하겠습니다. 파이썬에는 조건식을 훨씬 깔끔하게 쓸 수 있는 내장 함수 any() 와 all() 이 있습니다.이 두 함수는 리스트나 튜플 같은 반복 가능한(iterable) 자료형을 받아서, 내부 요소들의 참/거짓 여부를 간단하게 검사해줍니다. 1. any()의미: 하나라도 참(True)이면 True즉, "조건을 만족하는 게 하나라도 있냐?" 라고 묻는 느낌입니다.nums = [1, 3, 5, 7]# 하나라도 짝수가 있나?has_even = any(n % 2 == 0 for n in nums)print("짝수가 있나요?", has_even) # Falsenums2 = [1, 3, 4, 7]has_even2 = any(n % .. 2025. 9. 21.
[PHP] __clone() 메소드: 객체 복사 시 발생하는 문제와 해결법 안녕하세요, 오늘은 __clone() 메소드를 활용해서 객체 복사 시, 원본 객체와 복제된 객체가 독립되지 않는 문제를 해결해보도록 하겠습니다. __clone() 메소드 PHP에서 clone 키워드를 사용해 객체를 복사할 때, 대부분의 개발자는 완전히 독립된 새로운 객체가 생성될 것이라 기대합니다. 하지만 예상과 다르게 동작할 때가 있습니다.기본적으로 PHP의 clone은 얕은 복사(Shallow Copy)를 수행합니다.이는 객체 내부의 프로퍼티가 또 다른 객체를 참조하고 있을 경우, 그 참조(주소값)만 복사하기 때문입니다.결국, 원본 객체와 복제된 객체가 내부의 동일한 객체를 공유하게 되는 문제가 발생합니다. 이 문제를 해결하고, 내부 객체까지 모두 복제하여 완전한 독립을 보장하는 깊은 복사(Dee.. 2025. 9. 19.
[Python] EBU R128 기준으로 오디오 라우드니스 정규화하기 (배치 처리) TTS/ASR 데이터는 파일마다 소리가 들쑥날쑥하면 성능이 흔들릴 수 있습니다.EBU R128 (LUFS) 표준으로 라우드니스를 맞춰주면 학습/추론 안정성이 올라갑니다.아래 스크립트는 폴더 단위로 .wav 파일을 읽어 타깃 LUFS(-23, -18, -16 등)에 맞춰 정규화해서 저장합니다 1. 먼저 필요한 라이브러리를 설치해줍니다 pip install soundfile numpy pyloudnorm 2. 라우드니스 정규화 배치 스크립트 import osimport argparseimport numpy as npimport soundfile as sfimport pyloudnorm as pylndef loudness_normalize(y, sr, target_lufs=-18.0, tp_limit_d.. 2025. 9. 18.
[Python] 파이썬으로 AI 감정 분석 해보기 안녕하세요오늘은 허깅페이스(Hugging Face)의 Transformers 라이브러리를 이용해서 텍스트 감정 분석을 간단히 해보겠습니다. 요즘 AI 라이브러리들은 복잡한 모델을 직접 다루지 않아도, 파이프라인(pipeline) 이라는 인터페이스를 통해 바로 사용할 수 있도록 잘 정리되어 있습니다. 1. 환경 설정먼저 필요한 라이브러리를 설치해 줍니다.pip install transformers torch 2. 감정 분석 예제 코드from transformers import pipeline# 감정 분석 파이프라인 불러오기sentiment_analyzer = pipeline("sentiment-analysis")# 테스트할 문장들texts = [ "오늘 하루가 너무 즐거웠어!", "나는 정.. 2025. 9. 17.
[Python] Hugging Face Transformers로 문서 요약하기 안녕하세요오늘은 LLM(Large Language Model)을 활용해서 긴 텍스트를 짧게 요약(summarization) 하는 방법을 소개해드리겠습니다.요즘 AI 모델들은 단순히 텍스트를 생성하는 수준을 넘어, 주어진 문서에서 핵심만 뽑아내는 요약 작업도 잘해내는 편니다. 1. 환경 준비pip install transformers torch 2. 파이썬 코드 작성 Hugging Face의 pipeline 기능을 이용하면 요약 모델을 아주 쉽게 불러올 수 있습니다.이번 예제에서는 facebook/bart-large-cnn 모델을 사용했습니다.# pip install transformers torchfrom transformers import pipeline# 1. Summarization 파이프라인 불.. 2025. 9. 16.