7월, 2026의 게시물 표시

중복 파일 삭제 스크립트를 돌렸다가 식은땀 흘린 날

이미지
중복 파일 삭제 스크립트를 돌렸다가 식은땀 흘린 날 이 블로그의 중복 파일 자동 삭제 편 과 파일명 일괄 변경 편 을 보면 공통적으로 "DRY_RUN"이라는 안전장치가 들어 있습니다. 실제 삭제나 변경 전에 미리보기부터 하도록 만든 이 습관은, 사실 처음부터 있던 게 아니라 한 번의 아찔한 경험 뒤에 생긴 것입니다. 당시 상황은 이랬습니다. 다운로드 폴더가 오래 방치되어 있어 용량을 확인해보니 중복 파일이 상당히 많았고, "파일 해시값을 비교해서 중복이면 자동으로 지우는" 스크립트를 처음 짜서 바로 실행했습니다. 사건 발생 — 실행 버튼을 누른 직후 처음 짠 코드는 대략 이런 형태였습니다. import hashlib from pathlib import Path from collections import defaultdict folder = Path(r"C:\Users\내이름\Downloads") hash_map = defaultdict(list) def get_hash(filepath): h = hashlib.md5() with open(filepath, "rb") as f: h.update(f.read()) return h.hexdigest() for file in folder.rglob("*"): if file.is_file(): hash_map[get_hash(file)].append(file) # 중복이면 첫 번째만 남기고 나머지 삭제 for files in hash_map.values(): if len(files) > 1: for f in files[1:]: f.unlink() # ← 바로 삭제 실행 print(f"삭제: {f.name}") 실행하자마자 터미널에 "삭제: ......

매일 아침 자동 알림 만들려다 겪은 3번의 삽질

이미지
매일 아침 자동 알림 만들려다 겪은 3번의 삽질 이 블로그의 스케줄러 편 과 텔레그램 자동 발송 편 을 각각 소개했었는데, 사실 이 둘을 실제로 연결해서 "매일 아침 9시에 날씨와 환율을 텔레그램으로 받는" 시스템을 만들 때는 생각보다 여러 번 헛발질을 했습니다. 이번 글에서는 그 과정을 그대로 공유합니다. 목표는 단순했습니다. 매일 아침 출근 전에 오늘 날씨와 환율을 텔레그램으로 자동으로 받는 것. 코드 자체는 기존에 소개한 두 게시글을 합치기만 하면 될 것 같았는데, 실제로는 세 번의 실패를 거쳤습니다. 시도 1 — 노트북을 덮으면 알림이 안 옴 처음에는 schedule 라이브러리로 단순하게 만들었습니다. import schedule import time def send_morning_briefing(): # 날씨 API 호출 + 텔레그램 발송 코드 pass schedule.every().day.at("09:00").do(send_morning_briefing) while True: schedule.run_pending() time.sleep(30) 터미널을 켜둔 채로 테스트했을 때는 정확히 9시에 알림이 왔습니다. 그런데 다음 날 아침, 알림이 오지 않았습니다. 무엇이 잘못됐나: 전날 밤에 노트북 뚜껑을 덮고 퇴근했는데, 절전 모드로 들어가면서 파이썬 스크립트도 함께 멈췄던 것입니다. schedule 라이브러리는 PC가 켜져서 스크립트가 실제로 돌아가고 있는 동안에만 동작한다는 당연한 사실을, 실제로 겪고 나서야 체감했습니다. ❌ 실패 원인: "코드가 정확하면 당연히 실행되겠지"라고 생각했지, "실행 환경(PC 전원 상태)까지 자동화의 일부"라는 것을 고려하지 않았습니다. 시도 2 — 윈도우 작업 스케줄러로 옮겼더니, 이번엔 알림이 5번씩 옴 PC가 꺼져 있어도 동작하도록 윈도우 작업 스케줄러에 등...

requests+BeautifulSoup vs Selenium, 웹 크롤링 뭐가 다를까? 파이썬 비교분석

이미지
requests+BeautifulSoup vs Selenium, 웹 크롤링 뭐가 다를까? 파이썬 비교분석 이 블로그의 웹 데이터 자동 수집 편 에서는 requests 와 BeautifulSoup 을 사용했고, 웹사이트 자동 로그인 편 에서는 Selenium 을 사용했습니다. "둘 다 웹에서 데이터를 가져오는데 왜 다른 도구를 썼을까" 궁금하셨던 분들을 위해, 이번엔 같은 작업을 두 가지 방식으로 각각 구현해보면서 차이를 직접 비교해보겠습니다. 근본적인 차이 — 무엇을 읽어오는가 requests+BeautifulSoup → 서버가 처음 보내주는 "날것의 HTML"만 읽음 Selenium → 실제 브라우저를 띄워서 자바스크립트가 실행된 "최종 화면"을 읽음 이 한 줄이 모든 차이의 근원입니다. 요즘 많은 웹사이트는 페이지가 처음 열릴 때는 빈 뼈대만 오고, 자바스크립트가 실행되면서 실제 내용(상품 목록, 가격 등)이 채워지는 방식으로 만들어집니다. requests 는 이 자바스크립트를 실행하지 못하기 때문에, 이런 사이트에서는 빈 껍데기만 가져오게 됩니다. 비교 1 — 같은 뉴스 목록 페이지 크롤링하기 정적인 뉴스 목록 페이지(자바스크립트 없이 서버가 완성된 HTML을 바로 보내주는 경우)를 크롤링하는 상황을 가정합니다. requests + BeautifulSoup import requests from bs4 import BeautifulSoup import time start = time.time() res = requests.get("https://example-news.com/list") soup = BeautifulSoup(res.text, "html.parser") titles = [t.get_text(strip=True) for t in soup.select(".news-title")...

사진 여러 장을 PDF 한 장으로! 파이썬으로 이미지 자동 합치기

이미지
사진 여러 장을 PDF 한 장으로! 파이썬으로 이미지 자동 합치기 (완성 코드 공개) "영수증 10장을 스마트폰으로 찍었는데 회계팀에는 PDF 한 개로 보내야 한다", "계약서를 스캔 앱으로 여러 장 찍었는데 순서대로 하나의 문서로 만들어야 한다", "제품 사진 여러 장을 카탈로그처럼 PDF 한 권으로 정리하고 싶다"… 사진 여러 장을 PDF 하나로 합치는 작업은 온라인 변환 사이트를 이용할 수도 있지만, 파일을 업로드하고 순서를 맞추고 다운로드하는 과정이 매번 번거롭고 민감한 문서라면 외부 사이트 업로드가 꺼려질 수 있습니다. 파이썬을 한 번만 세팅해두면 폴더 안의 이미지를 파일명 순서대로 자동 정렬해 PDF로 합치고, 페이지 크기도 자동으로 맞춰줍니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. 이미지-PDF 변환에 필요한 라이브러리를 설치합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip install pillow pillow 는 이미지를 읽고 처리하는 라이브러리인 동시에, 여러 이미지를 하나의 PDF로 저장하는 기능도 기본으로 지원합니다. 별도의 PDF 전용 라이브러리 없이 이 하나로 충분합니다. 💡 이 코드로 할 수 있는 것: 폴더 안의 jpg, png 이미지를 파일명 순서대로 자동 정렬해 하나의 PDF로 합칩니다. 이미지 크기가 제각각이어도 페이지 크기를 자동으로 맞춰주고, PNG의 투명 배경도 흰 배경으로 자동 변환해 PDF 저장 오류를 방지합니다. 2단계: 완성 코드 아래 코드를 그대로 복사해서 메모장에 붙여넣고, images_to_pdf.py 로 저장하세요. 저장 시 파일 형식은 "모든 파일" , 인코딩은 UTF-8 로 설정합...

처음 시도한 업무 자동화, 3번 실패하고서야 깨달은 것들

이미지
처음 시도한 업무 자동화, 3번 실패하고서야 깨달은 것들 이 블로그에는 "완성 코드"만 올라오지만, 사실 모든 자동화가 처음부터 깔끔하게 완성되지는 않습니다. 이번 글에서는 실제로 겪었던 시행착오 하나를 그대로 풀어보려 합니다. 지금까지 소개한 완성 코드들이 왜 지금의 형태가 되었는지, 그 뒤에 있는 실패 과정을 공유하면 자동화를 처음 시도하는 분들께 더 도움이 될 것 같았습니다. 상황은 이랬습니다. 거래처별로 흩어진 엑셀 파일 수십 개를 매달 하나로 합쳐서 정리하는 작업을, 파이썬으로 자동화하기로 마음먹었습니다. 시도 1 — "일단 되겠지" 하고 짠 코드, 반나절 만에 무너짐 처음에는 이렇게 단순하게 접근했습니다. import pandas as pd from pathlib import Path all_data = [] for file in Path("거래처파일").glob("*.xlsx"): df = pd.read_excel(file) all_data.append(df) result = pd.concat(all_data) result.to_excel("합친결과.xlsx") 파일 5개로 테스트했을 때는 잘 됐습니다. 문제는 실제 폴더에 파일 40개를 넣고 돌렸을 때 터졌습니다. 무엇이 잘못됐나: 거래처마다 엑셀 헤더 이름이 조금씩 달랐습니다. 어떤 파일은 "거래처명", 어떤 파일은 "업체명"이었고, 어떤 파일은 1행이 아니라 2행부터 데이터가 시작했습니다. pd.concat() 은 이걸 그대로 합쳐버려서 결과 파일이 열 수십 개가 뒤죽박죽 섞인 형태로 나왔습니다. "일단 합치고 보자"는 접근이 실무 데이터의 비일관성 앞에서 완전히 무너진 순간이었습니다. ❌ 실패 원인: 테스트를 5개짜리 "깨끗한" 샘플로만 하고, 실제 40개 파일의 다양성을 확인하...

openpyxl, pandas, xlwings 뭐가 다를까? 파이썬 엑셀 라이브러리 3종 비교

이미지
openpyxl, pandas, xlwings 뭐가 다를까? 파이썬 엑셀 라이브러리 3종 비교 이 블로그에서 엑셀 자동화 글을 30편 가까이 쓰면서 openpyxl 과 pandas 를 상황에 따라 섞어 사용했습니다. "왜 어떤 글은 openpyxl을 쓰고 어떤 글은 pandas를 쓰는지" 궁금하셨던 분들이 계실 것 같아, 이번에는 완성 코드를 공개하는 대신 세 라이브러리의 차이를 직접 비교해 정리해보려 합니다. 파이썬으로 엑셀을 처음 다뤄보는 분이라면 이 글 하나로 어떤 도구를 배워야 할지 방향을 잡을 수 있을 것입니다. 세 라이브러리, 한 줄 요약 먼저 각각이 무엇을 위해 만들어졌는지부터 명확히 하고 시작하겠습니다. openpyxl → 엑셀 파일을 "직접 읽고 쓰는" 라이브러리. 셀 하나하나를 세밀하게 제어. pandas → 엑셀을 "데이터 표"로 취급해서 분석·가공하는 라이브러리. 통계·집계에 최적화. xlwings → 설치된 엑셀 프로그램 자체를 "리모컨처럼" 조작하는 라이브러리. 실시간 연동. 셋 다 "파이썬으로 엑셀을 다룬다"는 목적은 같지만, 접근 방식이 완전히 다릅니다. 아래에서 같은 작업을 세 가지 방식으로 각각 구현해보면 차이가 명확해집니다. 비교 1 — 셀에 값 쓰고 서식 적용하기 가장 기본적인 "A1 셀에 제목을 쓰고 굵게 표시하기" 작업을 세 라이브러리로 각각 구현하면 이렇게 다릅니다. openpyxl (가장 세밀한 제어) from openpyxl import Workbook from openpyxl.styles import Font wb = Workbook() ws = wb.active ws["A1"] = "월간 매출 보고서" ws["A1"].font = Font(bold=True, size=14, color="2E509...

이메일 첨부파일 일일이 저장하지 마세요! 파이썬으로 자동 다운로드하기

이미지
이메일 첨부파일 일일이 저장하지 마세요! 파이썬으로 자동 다운로드하기 (완성 코드 공개) "거래처마다 매일 보내오는 발주서 첨부파일을 하나씩 다운로드해서 폴더에 저장한다", "특정 제목의 이메일에 첨부된 엑셀만 골라서 받아야 한다", "며칠치 밀린 이메일 첨부파일을 한꺼번에 다운로드해야 한다"… 이전 게시글 이메일 자동 발송 편 에서는 메일을 "보내는" 자동화를 다뤘습니다. 이번에는 반대로 메일함에 도착한 이메일에서 첨부파일을 자동으로 "받아서" 저장하는 방법을 소개합니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. 이번 스크립트는 파이썬 기본 내장 라이브러리(imaplib, email)만 사용 합니다. 별도 설치가 필요 없습니다. IMAP 프로토콜로 메일 서버에 직접 접속하는 방식이라 구글 API 발급 같은 복잡한 절차도 필요 없습니다. ⚠️ 지메일 사용 시 필수 설정: 지메일 계정으로 접속하려면 일반 로그인 비밀번호가 아닌 앱 비밀번호 가 필요합니다. 구글 계정 관리 → 보안 → 2단계 인증 활성화 후 → "앱 비밀번호"에서 16자리 비밀번호를 발급받아 사용하세요. 2단계: 완성 코드 아래 코드를 그대로 복사해서 메모장에 붙여넣고, email_download.py 로 저장하세요. 저장 시 파일 형식은 "모든 파일" , 인코딩은 UTF-8 로 설정합니다. import imaplib import email from email.header import decode_header from pathlib import Path from datetime import datetime # ① 설정 IMAP_SERVER = "ima...

두 엑셀 파일 뭐가 다른지 한눈에! 파이썬으로 변경사항 자동 비교하기

이미지
두 엑셀 파일 뭐가 다른지 한눈에! 파이썬으로 변경사항 자동 비교하기 (완성 코드 공개) "동료가 수정한 엑셀 파일에서 어떤 부분이 바뀌었는지 눈으로 찾고 있다", "어제 백업본과 오늘 파일을 비교해서 누가 어떤 값을 바꿨는지 확인해야 한다", "거래처가 보내온 새 견적서가 이전 견적서와 어떤 항목이 달라졌는지 확인해야 한다"… 이전 게시글 엑셀 자동 백업·버전 관리 편 에서 버전별 백업을 만드는 방법을 소개했습니다. 이번 글에서는 한 단계 더 나아가, 백업해둔 이전 버전과 현재 파일을 비교 해서 어떤 행이 추가되거나 삭제되거나 값이 바뀌었는지 자동으로 찾아내는 도구를 만들어 보겠습니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip install pandas openpyxl pandas 는 두 엑셀의 데이터를 비교하고 차이점을 찾는 모든 작업을 처리합니다. openpyxl 은 비교 결과를 색상으로 강조한 엑셀 보고서로 저장하는 데 사용합니다. 💡 이 코드로 할 수 있는 것: 두 엑셀 파일을 기준 열(예: 거래처명, 주문번호)로 매칭해서 새로 추가된 행, 삭제된 행, 값이 변경된 셀을 모두 찾아내고, 변경 전후 값을 나란히 비교한 보고서를 색상으로 강조해 만듭니다. 2단계: 엑셀 파일 준비 비교할 두 파일은 같은 열 구조를 가지고 있어야 합니다. 각 행을 구분할 수 있는 고유 식별 열 (거래처명, 주문번호 등)이 있어야 정확하게 비교됩니다. [이전 파일] 거래처명 담당자 매출금액 납부상태 A주식회사 홍길동 5,200,000 완납 B기술연구소 김철수 ...

화면을 주기적으로 캡처해서 변화 추적하기! 파이썬 모니터링 자동화

이미지
화면을 주기적으로 캡처해서 변화 추적하기! 파이썬 모니터링 자동화 (완성 코드 공개) "사내 모니터링 대시보드 화면을 일정 시간마다 캡처해서 기록을 남겨야 한다", "장시간 실행되는 프로그램의 진행 상황을 주기적으로 캡처해 확인하고 싶다", "웹페이지가 특정 시점에 어떻게 바뀌는지 추적하고 싶다"… 이전 게시글 pyautogui 윈도우 자동화 편 에서 화면 캡처 기능을 간단히 소개했습니다. 이번 글에서는 이를 발전시켜 일정 간격으로 반복 캡처 하고, 이전 캡처와 비교해 변화를 감지 하는 모니터링 도구로 완성해 보겠습니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. 화면 캡처와 비교에 필요한 라이브러리를 설치합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip install pyautogui pillow numpy pyautogui 는 화면을 캡처하는 기능을 제공합니다. pillow 는 이미지를 처리하고 저장하는 데 사용하고, numpy 는 두 이미지를 픽셀 단위로 비교해 변화량을 계산하는 데 사용합니다. 💡 이 코드로 할 수 있는 것: 지정한 간격으로 전체 화면 또는 특정 영역을 반복 캡처해 날짜·시간이 포함된 파일명으로 저장합니다. 이전 캡처와 현재 캡처를 비교해 변화율을 계산하고, 변화가 감지되면 별도로 표시합니다. 2단계: 완성 코드 아래 코드를 그대로 복사해서 메모장에 붙여넣고, screen_monitor.py 로 저장하세요. 저장 시 파일 형식은 "모든 파일" , 인코딩은 UTF-8 로 설정합니다. import pyautogui import numpy as np import time from pathlib import Path fr...

매달 PC 정리하는 시간 끝! 파이썬으로 정기 점검 한 번에 자동화하기

이미지
매달 PC 정리하는 시간 끝! 파이썬으로 정기 점검 한 번에 자동화하기 (완성 코드 공개) 이 블로그에서는 지금까지 중복 파일 삭제 , 폴더 용량 분석 , ZIP 압축 , 폴더 백업 을 각각 따로 소개했습니다. 이번 글에서는 이 네 가지 작업을 하나의 스크립트로 통합해서, 실행 한 번으로 PC를 점검하고 정리하는 종합 도구를 만들어 보겠습니다. 매달 첫째 주에 한 번씩 실행하면 PC를 깨끗하게 유지할 수 있습니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. 이번 통합 스크립트에 필요한 라이브러리를 설치합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip install pandas openpyxl 중복 탐지, 용량 분석, 압축은 파이썬 기본 내장 라이브러리(hashlib, zipfile, pathlib)로 처리하고, 결과 보고서만 pandas 와 openpyxl 로 엑셀에 정리합니다. 💡 이 코드로 할 수 있는 것: 지정한 폴더의 용량을 분석하고, 중복 파일을 탐지해 목록으로 정리하고, 오래된 파일을 자동 백업한 뒤, 전체 점검 결과를 하나의 엑셀 보고서로 만듭니다. 실제 파일 삭제는 사람이 직접 확인 후 진행하도록 안전하게 설계했습니다. 2단계: 완성 코드 아래 코드를 그대로 복사해서 메모장에 붙여넣고, pc_checkup.py 로 저장하세요. 저장 시 파일 형식은 "모든 파일" , 인코딩은 UTF-8 로 설정합니다. import hashlib import zipfile import shutil import time from pathlib import Path from datetime import datetime from collections import defaultdict import pand...

엑셀 매크로(VBA) 보안 경고 끝! 파이썬으로 똑같은 작업 대체하기

이미지
엑셀 매크로(VBA) 보안 경고 끝! 파이썬으로 똑같은 작업 대체하기 (완성 코드 공개) "매크로가 포함된 파일을 다른 사람에게 보내면 보안 경고 때문에 매크로 사용 설정을 매번 따로 해야 한다", "VBA 코드가 회사 PC마다 다르게 작동해서 디버깅이 어렵다", "매크로를 쓰는 동료가 퇴사하면 그 파일을 아무도 수정하지 못한다"… VBA 매크로는 엑셀 안에서 바로 실행되는 장점이 있지만, 보안 정책으로 차단되거나, 회사 PC마다 설정이 달라 오작동하거나, 코드 관리가 어려운 한계가 있습니다. 이 글에서는 이 블로그에서 지금까지 소개한 파이썬 코드들이 VBA의 어떤 기능을 대체할 수 있는지 비교하고, 대표적인 매크로 작업을 파이썬으로 구현하는 방법을 소개합니다. VBA 매크로 vs 파이썬 비교 VBA 매크로 파이썬 실행 환경 엑셀 안에서만 동작 독립적으로 어디서나 동작 보안 경고 매번 발생, 차단 가능 해당 없음 배포 파일에 코드 포함 스크립트 파일만 공유 디버깅 엑셀 VBA 편집기 사용 다양한 코드 에디터 사용 가능 다른 프로그램 연동 제한적 (Win API 필요) 매우 풍부함 (이메일, 웹, DB 등) 버전 관리(깃 등) 거의 불가능 일반적인 코드처럼 관리 가능 배우는 난이도 엑셀에 특화된 문법 범용 프로그래밍 언어, 활용도 넓음 💡 언제 VBA가 더 나을까: 엑셀을 열자마자 버튼 클릭으로 즉시 실행하고 싶거나, 엑셀 전용 UI(사용자 정의 양식)가 필요한 경우는 VBA가 더 간단할 수 있습니다. 하지만 안정성, 보안, 확장성을 고려하면 대부분의 반복 작업은 파이썬이 더 유리합니다. 대표 매크로 작업 1 — 여러 시트 합치기 VBA로 흔히 작성하는 "모...

PDF 신청서 양식 손으로 채우지 마세요! 파이썬으로 자동 작성하기

이미지
PDF 신청서 양식 손으로 채우지 마세요! 파이썬으로 자동 작성하기 (완성 코드 공개) "거래처 30곳에 보낼 신청서 PDF를 거래처명만 다르게 일일이 입력해야 한다", "정부 지원사업 신청서 양식이 PDF인데 같은 정보를 반복 입력해야 한다", "직원들의 휴가신청서를 매번 손으로 작성하고 있다"… 입력 가능한 PDF 양식(폼 필드가 있는 PDF)은 Adobe Acrobat에서 클릭해서 채우는 방식이 일반적이지만, 여러 개를 반복 작성해야 한다면 자동화가 훨씬 효율적입니다. 파이썬을 사용하면 PDF 양식의 입력란을 자동으로 채우고, 엑셀 목록을 기반으로 여러 개를 한꺼번에 생성할 수 있습니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. PDF 양식 처리에 필요한 라이브러리를 설치합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip install pypdf pandas openpyxl pypdf 는 PDF 안의 입력 가능한 폼 필드(텍스트 입력란, 체크박스 등)를 읽고 값을 채우는 기능을 지원합니다. pandas 와 openpyxl 은 엑셀 목록을 읽어 여러 신청서를 한꺼번에 생성하는 데 사용합니다. ⚠️ 중요한 전제조건: 이 방법은 PDF가 "입력 가능한 양식" (AcroForm)으로 만들어져 있을 때만 작동합니다. 그냥 스캔한 이미지 PDF나 텍스트만 있는 일반 PDF는 입력란이 없어 이 방법을 사용할 수 없습니다. PDF를 열었을 때 클릭하면 텍스트를 입력할 수 있는 칸이 있는지 먼저 확인하세요. 2단계: PDF의 입력란 이름 확인하기 PDF 양식을 채우려면 먼저 각 입력란의 내부 이름(필드명)을 알아야 합니다. 아래 코드로 확인할 수 있습니...

엑셀 수식 일일이 입력하지 마세요! 파이썬으로 함수 자동 삽입하기

이미지
엑셀 수식 일일이 입력하지 마세요! 파이썬으로 함수 자동 삽입하기 (완성 코드 공개) "매달 매출 데이터 행이 늘어날 때마다 합계 수식 범위를 다시 잡아야 한다", "거래처별 금액에 VLOOKUP을 걸어서 할인율을 매번 찾아야 한다", "조건에 따라 다른 결과를 보여주는 IF 수식을 수백 개 행에 똑같이 입력해야 한다"… 엑셀 수식을 셀 하나에 입력하고 드래그해서 채우는 작업은 데이터 양이 적을 때는 괜찮지만, 매번 데이터가 추가되거나 여러 파일에 똑같은 수식을 반복 적용해야 한다면 비효율적입니다. 파이썬을 사용하면 데이터 범위에 정확히 맞춰 수식을 자동으로 삽입할 수 있고, 엑셀에서 열면 일반 수식처럼 그대로 작동합니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip install openpyxl pandas openpyxl 은 셀에 수식 텍스트를 직접 입력하는 기능을 지원합니다. 파이썬이 수식을 계산하는 것이 아니라, 엑셀이 인식할 수식 문자열을 셀에 써넣는 방식입니다. 파일을 엑셀로 열면 자동으로 계산됩니다. 💡 이 코드로 할 수 있는 것: SUM, AVERAGE 같은 집계 수식을 데이터 범위에 맞춰 자동 삽입, VLOOKUP으로 다른 시트의 값 참조, IF 조건 수식 일괄 적용, 수식을 행 전체에 자동으로 채우기까지 처리합니다. 2단계: 엑셀 파일 준비 아래처럼 1행이 헤더이고 2행부터 데이터가 입력된 형태면 됩니다. 거래처명 단가 수량 금액(수식 채울 열) 상태(수식 채울 열) A주식회사 50000 12 B기술연구소 30000 5 C물산 800...

회의록 작성 시간 끝! 파이썬으로 음성 녹음을 텍스트·요약으로 자동 변환하기

이미지
회의록 작성 시간 끝! 파이썬으로 음성 녹음을 텍스트·요약으로 자동 변환하기 (완성 코드 공개) "1시간짜리 회의 녹음을 다시 들으면서 회의록을 작성하느라 회의 시간보다 더 오래 걸린다", "출장 중 통화 내용을 녹음해뒀는데 텍스트로 정리할 시간이 없다", "여러 명이 참석한 회의 내용을 핵심만 요약해서 공유하고 싶다"… 회의록 작성은 회의 자체보다 시간이 더 걸리는 경우가 많습니다. 파이썬과 무료 음성 인식 라이브러리를 활용하면 녹음 파일을 텍스트로 자동 변환하고, 핵심 내용만 추출해서 워드 파일로 정리할 수 있습니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. 음성 인식에 필요한 라이브러리를 설치합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip install openai-whisper python-docx openai-whisper 는 OpenAI에서 공개한 무료 음성 인식 모델입니다. 별도 API 키나 인터넷 연결 없이 PC에서 직접 음성을 텍스트로 변환할 수 있습니다. 한국어 인식 성능이 뛰어난 편입니다. python-docx 는 결과를 워드 파일로 저장하는 데 사용합니다. ⚠️ 추가 설치 필요: Whisper는 내부적으로 FFmpeg 라는 프로그램이 필요합니다. ffmpeg.org 에서 윈도우용을 내려받아 압축을 풀고, 시스템 환경 변수 PATH에 bin 폴더 경로를 추가해야 합니다. 검색창에 "환경 변수 편집"을 입력하면 설정 화면을 찾을 수 있습니다. 2단계: 완성 코드 — 음성을 텍스트로 변환 아래 코드를 그대로 복사해서 메모장에 붙여넣고, transcribe.py 로 저장하세요. 저장 시 파일 형식은 "모든 파일...

코드에 비밀번호 그대로 적어두지 마세요! 파이썬으로 암호화 저장하기

이미지
코드에 비밀번호 그대로 적어두지 마세요! 파이썬으로 암호화 저장하기 (완성 코드 공개) 이 블로그에서 지금까지 소개한 이메일 발송, 카카오톡·텔레그램 연동, 구글 시트, 웹사이트 로그인 자동화 코드들을 다시 살펴보면 공통적으로 PASSWORD = "abc1234!" 처럼 비밀번호를 코드에 그대로 적어두는 부분이 있었습니다. 이 방식은 코드를 다른 사람과 공유하거나 깃허브에 업로드할 때 비밀번호가 그대로 노출되는 위험이 있습니다. 파이썬의 cryptography 라이브러리를 사용하면 비밀번호와 API 키 등 민감한 정보를 암호화해서 별도 파일에 저장하고, 실행할 때만 복호화해서 사용할 수 있습니다. 코드 자체에는 평문 비밀번호가 전혀 남지 않습니다. 1단계: 준비물 설치 파이썬이 설치되어 있어야 합니다. 없다면 python.org 에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH" 에 체크해야 합니다. 암호화에 필요한 라이브러리를 설치합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요: pip install cryptography cryptography 는 업계 표준 암호화 라이브러리입니다. 이 글에서는 그 중 가장 사용하기 쉬운 Fernet 방식(대칭키 암호화)을 사용합니다. 하나의 키로 암호화와 복호화를 모두 처리합니다. 💡 이 코드로 할 수 있는 것: 비밀번호, API 키, 토큰 등을 암호화해서 별도 파일에 저장하고, 프로그램 실행 시 키 파일로 복호화해서 사용합니다. 암호화된 파일만 봐서는 원래 내용을 알 수 없습니다. 2단계: 완성 코드 — 암호화 키 생성 (최초 1회만) 먼저 암호화·복호화에 사용할 키를 한 번만 생성합니다. 아래 코드를 generate_key.py 로 저장하고 실행하세요. from cryptography.fernet import Fernet # 암호화 키 생성 key = Fern...