안전 결제자세히
- 패키지 범위 내 수정은 무료입니다.
- 납품 후 3일 이내에 응답하지 않으면 작업이 자동으로 승인됩니다.
결제 시 금액이 예치되며, 작업을 승인해야만 지급됩니다.

결과물 예시
매장 9곳의 월별 매출 파일을 Excel 보고서 하나로 합치기
실행 방법
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO 폴더: sales/2026-10, 파일 9개 발견
2026-11-02 09:14:03 INFO shop-01.csv: 1,284행
2026-11-02 09:14:04 INFO shop-02.xlsx: 967행
2026-11-02 09:14:04 WARN shop-07.csv: 가격 없는 3행 건너뜀 (88, 412, 913번 줄)
2026-11-02 09:14:05 INFO 완료: 10,412행 -> report-2026-10.xlsx ("매출", "합계" 시트)
코드가 아닌 설정으로
매장별 열 이름은 settings.ini에 있어서, 매장이 새로 생기거나 열 이름이 바뀌면 그곳에 한 줄만 고치면 됩니다.
[columns]
date = 날짜, 판매일, 일자
product = 상품, 품목, 상품명
quantity = 수량, 개수, 판매 수량
price = 가격, 단가
코드 일부
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""매장 파일 하나를 읽고 열 이름을 보고서 기준으로 바꿉니다."""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}: '{name}'에 해당하는 열이 없습니다 (찾은 이름: {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
파일: merge_sales.py(310줄), settings.ini, requirements.txt, 그리고 Python 설치, 스크립트 실행, 로그 메시지별 의미를 설명한 README가 들어 있는 ZIP 압축 파일. 고객이 자신의 컴퓨터에서 직접 실행합니다.
고객: 문구점 9곳을 운영하는 작은 체인. 매장마다 한 달 매출을 CSV나 Excel 파일로 보내는데, 열 이름이 조금씩 다릅니다. 과제: 폴더 안의 모든 파일을 읽고 열을 하나의 형식으로 맞춘 뒤, 전체 매출과 매장별 합계 시트가 담긴 Excel 보고서 하나로 저장하는 스크립트.
고객과 모든 정보는 가상입니다.
서비스 소개
WebP 이미지는 보기에는 비슷하면서도 대개 JPEG나 PNG보다 눈에 띄게 가벼워 페이지가 더 빨리 열립니다. 이 Python 스크립트는 컴퓨터로 복사해 온 사이트의 업로드 폴더 같은 폴더 속 이미지를 WebP로 바꿉니다. 사진은 고르신 품질로, 로고와 그래픽은 투명도를 유지하거나 손실 없이 변환합니다. 폴더 구조와 파일 이름을 유지하고, 이미 변환한 이미지는 건너뛰며, 스탠다드부터는 파일마다 얼마나 줄었는지 기록합니다. 폴더 구조와 샘플 이미지 몇 장을 보내 주세요. 스크립트는 고객님이 직접 컴퓨터나 서버에서 실행합니다. 스크립트는 파일을 만들 뿐이며, 사이트 페이지가 그 파일을 쓰도록 바꾸는 것(또는 이를 해 주는 플러그인)은 README에서 설명하는 별도 단계입니다.
포함 사항
- 받으시는 결과물Python 스크립트, 단계별 안내가 담긴 README, 스탠다드부터는 폴더와 품질이 담긴 설정 파일이 들어 있는 ZIP 압축 파일. 코드는 주문 페이지에서도 볼 수 있습니다.
- JPEG와 PNG 입력애니메이션이 없는 GIF와 BMP도
- 투명도 유지어떤 배경에서도 깔끔한 로고와 아이콘
- 같은 이름과 폴더photo.jpg는 같은 자리에 photo.webp로
- 원본 보관아무것도 삭제하거나 덮어쓰지 않음
- 읽기 쉬운 코드주석이 있어 나중에 품질 변경이 쉬움
진행 방식
- 1작업폴더를 설명하고 샘플 이미지 몇 장을 보내 주세요
- 2코드스크립트와 실행 안내서를 작성합니다
- 3시험 실행폴더 사본을 변환해 이미지를 비교해 보세요
- 4수정패키지 범위 안에서 수정을 요청하고 오류 메시지가 있으면 보내 주세요
준비해 주실 내용
이미지가 있는 곳(컴퓨터의 폴더 또는 직접 접근할 수 있는 서버의 폴더), 대략적인 수와 종류: 사진, 로고, 스크린샷. WebP 파일을 원본 옆에 둘지 별도 폴더에 둘지, 원하는 품질 또는 기준이 될 샘플 이미지, 파일 경로에 영향이 있다면 사이트가 돌아가는 플랫폼. 운영 체제: Windows, macOS 또는 Linux.
다음 내용을 여쭤봅니다:
- 이미지는 어디에 있나요?
- 어떤 종류의 이미지인가요?
- WebP 파일은 어디에 둘까요?
- 어디에서 실행하나요?
패키지 비교
안전 결제
주문할 때 결제하지만, 대금은 승인된 작업에 대해서만 지급됩니다.
- 고정 가격결제 후에는 패키지 가격이 변경되지 않습니다.
- 금액 예치결제 시 금액은 예치만 됩니다. 작업을 승인하면 서비스에 지급됩니다.
- 납품 전 검수모든 결과물은 전달되기 전에 품질 검수를 거치며, 승인하기 전에 주문 페이지에서 확인할 수 있습니다.
- 무료 수정패키지에서 허용하는 횟수만큼 요청 사항 범위 내에서 수정을 요청할 수 있습니다.
- 3일 후 자동 승인납품 후 3일 이내에 작업을 승인하거나 수정을 요청하지 않으면 자동으로 승인됩니다. 납품 후 주문 채팅에 메시지를 남기면 주문은 대기 상태가 됩니다. 저희가 답변한 뒤 3일을 다시 시작할 수 있으며, 이 경우 채팅으로 알려 드립니다.
- 재작업 또는 전액 환불결과물이 요청 사항과 맞지 않고 수정으로도 해결되지 않았거나, 작업이 작업 기간의 두 배를 넘겨 지연되면 주문 채팅에 알려 주세요. 작업을 다시 하거나 결제 금액을 전액 환불해 드립니다.
질문과 답변
이 작업 후 사이트에 WebP가 표시되나요?
저절로 되지는 않습니다. 스크립트는 파일을 만들 뿐이며, 페이지가 그 파일을 가리키도록 하거나 사이트 플랫폼이나 플러그인이 제공하도록 해야 합니다. README에서 일반적인 방법을 설명하며, 프리미엄에는 이를 돕는 기존·새 경로 목록이 포함됩니다.
제 호스팅에서 실행할 수 있나요?
네, 호스팅에서 Python을 실행하고 라이브러리를 설치할 수 있다면 가능합니다. SSH 접속이 되는 요금제라면 대부분 됩니다. 그렇지 않다면 폴더를 내려받아 컴퓨터에서 실행하고 WebP 파일을 다시 올리시면 됩니다.
모든 브라우저에서 WebP가 보이나요?
현재 주요 브라우저는 모두 지원합니다. 원본 JPEG와 PNG를 옆에 남겨 두면 아주 오래된 브라우저는 그 파일을 대신 씁니다.
제 사이트에 로그인해서 작업해 주시나요?
아니요. 저희는 고객님의 사이트나 호스팅에 절대 로그인하지 않습니다. 스크립트는 고객님이 직접 실행하며, README에 모든 단계가 나와 있습니다.
답을 찾지 못하셨나요?