KR
위시켓
어려움
외주
라이브커머스 방송 성과 수집·리포트 자동화 시스템 구축 전문가
예산
5,000,000원
예상 기간
2~3개월
지원 마감
2026년 08월 20일
난이도
어려움
기술 스택
Playwright
Node.js
PostgreSQL
React
Redis
Docker
Nodemailer
TypeScript
AI 분석 요약 기회점수 48/100
네이버 쇼핑라이브 관리툴 4개 화면을 스크래핑해 방송 성과를 회차 단위로 수집·축적하고, 브랜드별 리포트를 자동 생성·이메일 발송하는 시스템을 구축하는 프로젝트입니다. 공식 API가 없어 스토어별 독립 브라우저 프로필로 세션을 유지하며 수집하고, 원본 보관·이력 저장·검증·알림·운영자 관리 화면까지 포함합니다. 브라우저 자동화와 데이터 파이프라인, 리포트 자동화에 능숙한 백엔드 중심 풀스택 개발자에게 적합합니다.
핵심 요구사항
- 공식 API 부재로 관리툴 화면을 스크래핑, 스토어별 독립 브라우저 프로필·세션 유지 및 만료 시 재인증
- 방송 고유식별자 기준 저장·원본 보관·재수집 이력화, 향후 브랜드 접근제어 가능한 데이터 모델 설계
- 속보판/확정판 2단계 회차 리포트 및 주·월간 리포트 자동 생성·이메일 발송·재발송
- 필수항목 누락·비정상 편차 검증, 실패 시 발송 중단 및 수집실패·세션만료 이메일 알림
- 채팅 로그 수집·보관, 질문/응답 구분 및 상위 질문 추출·유형 분류
- 브랜드·방송·리포트·수집현황을 관리하는 운영자 관리자 화면
산출물
- 스토어별 독립 실행 수집 엔진 및 스케줄러
- 원본·파싱 데이터 저장 DB 스키마 및 이력 구조
- 리포트 자동 생성·이메일 발송 모듈
- 운영자용 관리자 웹 화면
- 항목별 개략 규모를 구분한 견적 및 설계 문서
매력 포인트
- 요구사항·수용기준·스코프 밖·상태흐름이 매우 상세히 정의된 명확한 스펙
- 추가 도입 항목의 이관 순서를 명시해 범위 조정이 협의 가능
주의사항
- 예산 500만원 대비 요구 범위(스크래핑·세션관리·리포트자동화·관리화면)가 과다하여 단가가 매우 낮음
- 리포트 레이아웃·검수기준·일일 방송건수 등 핵심 사항이 미확정 상태로 착수 후 협의 예정
- 관리툴 화면 구조 변경 시 수집 중단·우회 불가로 유지보수 리스크가 구조적으로 큼
프로젝트 유형신규개발
적합 개발자5년차 이상 백엔드 중심 풀스택 개발자 (Playwright/Puppeteer 스크래핑 + Node/DB + React)
클라이언트 정보
회사위시켓
위치서울특별시 강동구
고용형태CONTRACTOR
프로젝트 원문 설명
[프로젝트 개요]
라이브커머스 대행사가 운영하는 네이버 쇼핑라이브 방송의 성과 데이터를 회차 단위로 수집·축적하고, 브랜드별 리포트를 자동 생성해 이메일로 발송하는 시스템을 구축합니다. 수집 대상은 쇼핑라이브 관리툴 4개 화면이며, 운영자용 관리 화면을 함께 개발합니다.
[추진 배경과 시점]
발주처는 브랜드(판매자)를 대신해 네이버 쇼핑라이브 방송을 운영하는 대행사입니다. AI 무인 상시 송출을 포함해 동시 30건의 방송을 진행합니다.
현재 방송 성과는 관리툴 화면에서 건별로 조회할 수 있을 뿐 회차 단위로 축적되지 않습니다. 방송이 끝나면 그 회차의 기록이 남지 않아 회차 간 비교가 불가능합니다.
[난점과 경위]
- 네이버 쇼핑라이브에는 방송 성과 조회용 공식 API가 제공되지 않으며, 운영사로부터 향후 제공 계획도 없다는 회신을 받았습니다. 데이터는 관리툴 화면에서 수집해야 하고, 화면 구조가 변경되면 수집이 중단되며 우회 경로가 없습니다.
- 스토어별로 세션이 분리됩니다. 하나의 브라우저에서 여러 스토어에 동시 접속할 수 없어 스토어별 독립 실행 구조가 필요합니다.
- 라이브 매출은 방송 종료 시점에 확정되지 않습니다. 구매 확정과 취소·환불이 이후에 반영되며, 취소·환불은 기간 단위로만 제공되고 회차 단위로는 제공되지 않습니다.
[요구사항]
데이터 수집
- 스토어별 독립 브라우저 프로필로 관리툴에 접속하고 스토어 간 순차 실행합니다.
- 채널 분석 화면은 스토어·기간 단위로 정기 조회합니다.
- 라이브 통계와 라이브 보드는 방송 종료 후 1회 수집합니다. 실시간 상주 수집은 하지 않습니다.
- 영상 예약 화면에서 영상별 시작 시각과 소재 정보를 수집합니다.
- 스토어 계정 세션을 유지하고 만료 시 재인증합니다.
- 수집 실패 시 재시도하고 지정 횟수 초과 시 실패로 확정합니다.
데이터 저장
- 방송을 고유 식별자 기준으로 저장하고 파싱 전 원본을 함께 보관합니다.
- 동일 방송 재수집 시 덮어쓰지 않고 이력으로 저장합니다.
- 스토어·방송·상품·채팅을 관계로 저장합니다.
- 데이터 모델은 향후 브랜드 단위 접근 제어가 가능한 구조로 설계합니다. 이번 범위에서 해당 기능을 구현하지는 않으며 구조만 확보합니다.
리포트 생성·발송
- 회차 단위 리포트를 자동 생성합니다. 전 브랜드 공통 양식 1종을 사용합니다.
- 직전 회차 대비 비교와 해당 회차의 소재 정보를 포함합니다.
- 발행 시점을 속보판과 확정판으로 구분하고 속보판 수치가 확정 전 값임을 명시합니다.
- 주간·월간 리포트를 자동 생성합니다.
- 브랜드별 수신자를 등록·관리하고 리포트 생성 후 이메일로 자동 발송합니다.
- 발송 이력을 기록하고 재발송을 지원합니다.
매출·정산
- 채널 분석에서 기간을 지정해 누적 거래액, 결제 금액, 취소·환불 금액을 수집합니다.
- 라이브 결제 랭킹과 상품 결제 랭킹을 수집하고 기간 단위 확정 매출을 리포트에 포함합니다.
채팅
- 라이브 보드의 채팅 로그를 수집·보관하고 시청자 질문과 응답을 구분해 저장합니다.
- 자주 나온 질문 상위 항목을 추출하고 유형을 분류해 리포트에 포함합니다.
운영 감시
- 수집 결과의 필수 항목 누락을 검증하고 직전 회차 대비 비정상 편차를 판정합니다.
- 수집 실패, 세션 만료, 검증 실패를 이메일로 알립니다.
- 스토어별 수집 현황을 화면에서 확인합니다.
관리자 화면
- 브랜드 등록·관리, 방송 목록·상세 조회, 리포트 미리보기·수동 발송, 수집 현황·알림 이력 조회를 제공합니다.
[사용자 스토리와 수용 기준]
- 운영자는 방송이 끝나면 별도 조작 없이 리포트가 브랜드에 전달되기를 원합니다. 방송 종료 후 사람 개입 없이 리포트가 생성·발송되면 충족합니다.
- 운영자는 이번 회차가 지난 회차보다 나았는지 알고자 합니다. 리포트에 직전 회차 대비 비교 수치가 포함되면 충족합니다.
- 운영자는 잘못된 수치가 브랜드에 전달되는 상황을 막고자 합니다. 검증에 실패하면 발송이 중단되고, 수집 실패·세션 만료와 함께 운영자에게 알림이 도착하면 충족합니다.
- 운영자는 주·월 단위 성과를 별도 작업 없이 받고자 합니다. 설정한 주기에 기간 리포트가 자동 발송되면 충족합니다.
- 운영자는 시청자가 무엇을 물었는지 알고자 합니다. 자주 나온 질문 상위 항목과 유형이 리포트에 포함되면 충족합니다.
[업무 상태 흐름]
- 리포트는 속보판과 확정판 두 단계로 발행합니다. 속보판은 방송 종료 후 통계 갱신 확인 시점에, 확정판은 구매 확정이 반영된 이후 재수집해 발행합니다.
- 수집 결과가 검증에 실패하면 리포트를 생성하더라도 발송하지 않고 운영자 확인 대기 상태로 둡니다.
- 수집 원본은 파싱 성공 여부와 무관하게 보관하며 삭제하지 않습니다. 화면 구조 변경 시 소급 재처리에 사용합니다.
- 화면 전이 순서 등 동작 단계 설계는 제안사가 정합니다.
[비기능 요구]
- 스토어 10개, 동시 송출 30건. 사용자는 발주처 내부 2~3명이며 브랜드는 접속하지 않습니다.
- 수집 1회 처리 시간이 방송 간격을 초과하지 않아야 합니다.
- 데이터 보관 2년 이상, 원본 1년 이상.
- 수집 전용 장비 1대를 별도 운용하고 송출 장비에는 프로그램을 설치하지 않습니다.
[외부 연동]
- 별도 외부 시스템 연동은 없습니다. 수집 대상은 모두 쇼핑라이브 관리툴 화면 안에 있으며 발송은 이메일만 사용합니다.
[스코프 밖]
- 외부 요인(날씨·이슈·SNS 언급)과 매출의 인과 분석, 매출 예측, 마케팅 채널 추천
- 브랜드 로그인 포털 및 브랜드용 대시보드
- 회차별 확정 매출 귀속
- 송출 장애 실시간 감지, 송출 장비 로그 수집
- 소재 반복 편성 경고
[추가 도입 검토 항목]
아래 세 항목은 요구사항에 포함되어 있으나, 예산 범위를 초과할 경우 발주처가 견적을 보고 이관 여부를 판단합니다. 제외가 확정된 항목이 아니므로 이후 추가될 수 있는 구조로 설계하고, 항목별 개략 규모를 견적에 구분해 표기해 주십시오. 이관을 검토하는 순서는 아래와 같습니다.
- 기간(주·월) 리포트. 회차 리포트의 집계 형태로 만드는 것을 전제로 합니다.
- 채팅 요약. 로그 수집·보관은 유지하고 상위 질문 추출과 유형 분류를 조정 대상으로 봅니다.
- 매출·정산 수집.
회차 리포트, 자동 발송, 운영 감시는 조정 대상이 아닙니다.
[제약 사항 및 확인 필요]
- 리포트 항목과 레이아웃은 확정되지 않았습니다. 기존 리포트가 없어 참고 양식이 없으며 착수 후 2주 이내 협의로 확정합니다.
- 하루에 새로 생성되는 방송 건수는 확인되지 않았습니다. 착수 시 확인해 처리량 산정에 반영합니다.
- 수집 성공률 검수 기준치는 협의로 정합니다.
- 사람 응답과 자동 응답의 화면상 구분 가능 여부는 착수 시 확인합니다.
- 첫 단계에서 이미 구현된 기능이 확인될 경우 해당 범위와 금액을 조정합니다.
- 관리툴 통계는 네이버가 일괄 갱신하므로 갱신 여부를 확인한 뒤 수집합니다.
[클라이언트 준비 사항]
발주처가 아래를 제공합니다.
- 스토어 계정 접근 권한 및 관리툴 화면 접근 권한
- 리포트 수신자 정보
- 수집 전용 장비 및 네트워크 환경(필요 시)
- 리포트 항목 협의·확정 담당자 지정 및 검토 회신
[기술 스택]
- 지정 없음 — 제안사 제안. 수집 방식, 저장소, 배포 환경 모두 제안사가 선택합니다.
- 선택 근거를 화면 수집의 안정성과 유지보수 용이성 관점에서 함께 제시해 주십시오.
[원하는 파트너]
- 웹 화면 수집 시스템을 구축하고 운영해 본 경험이 있는 팀
- 세션 유지, 다중 계정 병렬 처리, 실패 감지·재시도 구조를 다뤄 본 경험
- 구축 이후 유지보수를 지속할 수 있는 팀. 공식 API가 없어 화면 변경 대응이 계약 기간 내내 필요합니다.
- 우대: 리포트 자동 생성·발송 시스템 구축 경험, 커머스 데이터 처리 경험
[제안 요청 사항]
- 스토어 계정당 동시 가능 방송 수의 상한과 근거
- 방송 30건을 누락 없이 도는 순회 설계(순서·충돌·종료 감지)와, 기간 조회로 대체 가능한 범위
- 화면 구조 변경 감지·복구 방식과 대응 시간
- 수집 실패 판정 기준과 재시도·알림·발송 차단 방식
- 세션 유지·만료 처리 방식, 데이터 모델과 원본 보관 구조
- 유지보수 범위·대응 시간·비용, 추가 도입 검토 항목의 항목별 규모
[예산과 기간]
- 예산: 협의( 제안해주시기 바랍니다. )
- 기간: 착수 후 2~3개월 예상. 마감일은 지정하지 않으며 조기 완료를 우선합니다. 작업 제한 기간은 없습니다.
- 구체적 일정은 제안사가 제시한 안을 기준으로 협의합니다.
[산출물]
- 소스코드 및 배포 산출물
- 데이터베이스 설계서, 화면 정의서
- 운영 매뉴얼(수집 실패·세션 만료 대응 절차 포함)
- 리포트 템플릿 정의서
[계약 특이사항]
- 유지보수 조건을 계약에 포함합니다.( 비용 별도 협의 )
- 수집은 읽기 전용으로 동작하며 소비자 식별정보는 저장하지 않거나 비식별 처리합니다.
- 계정 자격증명은 암호화 저장·접근 이력 기록, 계약 종료 시 파기 절차를 정의합니다.
- 브랜드 계정 사용 권한의 확보·유지는 발주처 책임입니다.
라이브커머스 대행사가 운영하는 네이버 쇼핑라이브 방송의 성과 데이터를 회차 단위로 수집·축적하고, 브랜드별 리포트를 자동 생성해 이메일로 발송하는 시스템을 구축합니다. 수집 대상은 쇼핑라이브 관리툴 4개 화면이며, 운영자용 관리 화면을 함께 개발합니다.
[추진 배경과 시점]
발주처는 브랜드(판매자)를 대신해 네이버 쇼핑라이브 방송을 운영하는 대행사입니다. AI 무인 상시 송출을 포함해 동시 30건의 방송을 진행합니다.
현재 방송 성과는 관리툴 화면에서 건별로 조회할 수 있을 뿐 회차 단위로 축적되지 않습니다. 방송이 끝나면 그 회차의 기록이 남지 않아 회차 간 비교가 불가능합니다.
[난점과 경위]
- 네이버 쇼핑라이브에는 방송 성과 조회용 공식 API가 제공되지 않으며, 운영사로부터 향후 제공 계획도 없다는 회신을 받았습니다. 데이터는 관리툴 화면에서 수집해야 하고, 화면 구조가 변경되면 수집이 중단되며 우회 경로가 없습니다.
- 스토어별로 세션이 분리됩니다. 하나의 브라우저에서 여러 스토어에 동시 접속할 수 없어 스토어별 독립 실행 구조가 필요합니다.
- 라이브 매출은 방송 종료 시점에 확정되지 않습니다. 구매 확정과 취소·환불이 이후에 반영되며, 취소·환불은 기간 단위로만 제공되고 회차 단위로는 제공되지 않습니다.
[요구사항]
데이터 수집
- 스토어별 독립 브라우저 프로필로 관리툴에 접속하고 스토어 간 순차 실행합니다.
- 채널 분석 화면은 스토어·기간 단위로 정기 조회합니다.
- 라이브 통계와 라이브 보드는 방송 종료 후 1회 수집합니다. 실시간 상주 수집은 하지 않습니다.
- 영상 예약 화면에서 영상별 시작 시각과 소재 정보를 수집합니다.
- 스토어 계정 세션을 유지하고 만료 시 재인증합니다.
- 수집 실패 시 재시도하고 지정 횟수 초과 시 실패로 확정합니다.
데이터 저장
- 방송을 고유 식별자 기준으로 저장하고 파싱 전 원본을 함께 보관합니다.
- 동일 방송 재수집 시 덮어쓰지 않고 이력으로 저장합니다.
- 스토어·방송·상품·채팅을 관계로 저장합니다.
- 데이터 모델은 향후 브랜드 단위 접근 제어가 가능한 구조로 설계합니다. 이번 범위에서 해당 기능을 구현하지는 않으며 구조만 확보합니다.
리포트 생성·발송
- 회차 단위 리포트를 자동 생성합니다. 전 브랜드 공통 양식 1종을 사용합니다.
- 직전 회차 대비 비교와 해당 회차의 소재 정보를 포함합니다.
- 발행 시점을 속보판과 확정판으로 구분하고 속보판 수치가 확정 전 값임을 명시합니다.
- 주간·월간 리포트를 자동 생성합니다.
- 브랜드별 수신자를 등록·관리하고 리포트 생성 후 이메일로 자동 발송합니다.
- 발송 이력을 기록하고 재발송을 지원합니다.
매출·정산
- 채널 분석에서 기간을 지정해 누적 거래액, 결제 금액, 취소·환불 금액을 수집합니다.
- 라이브 결제 랭킹과 상품 결제 랭킹을 수집하고 기간 단위 확정 매출을 리포트에 포함합니다.
채팅
- 라이브 보드의 채팅 로그를 수집·보관하고 시청자 질문과 응답을 구분해 저장합니다.
- 자주 나온 질문 상위 항목을 추출하고 유형을 분류해 리포트에 포함합니다.
운영 감시
- 수집 결과의 필수 항목 누락을 검증하고 직전 회차 대비 비정상 편차를 판정합니다.
- 수집 실패, 세션 만료, 검증 실패를 이메일로 알립니다.
- 스토어별 수집 현황을 화면에서 확인합니다.
관리자 화면
- 브랜드 등록·관리, 방송 목록·상세 조회, 리포트 미리보기·수동 발송, 수집 현황·알림 이력 조회를 제공합니다.
[사용자 스토리와 수용 기준]
- 운영자는 방송이 끝나면 별도 조작 없이 리포트가 브랜드에 전달되기를 원합니다. 방송 종료 후 사람 개입 없이 리포트가 생성·발송되면 충족합니다.
- 운영자는 이번 회차가 지난 회차보다 나았는지 알고자 합니다. 리포트에 직전 회차 대비 비교 수치가 포함되면 충족합니다.
- 운영자는 잘못된 수치가 브랜드에 전달되는 상황을 막고자 합니다. 검증에 실패하면 발송이 중단되고, 수집 실패·세션 만료와 함께 운영자에게 알림이 도착하면 충족합니다.
- 운영자는 주·월 단위 성과를 별도 작업 없이 받고자 합니다. 설정한 주기에 기간 리포트가 자동 발송되면 충족합니다.
- 운영자는 시청자가 무엇을 물었는지 알고자 합니다. 자주 나온 질문 상위 항목과 유형이 리포트에 포함되면 충족합니다.
[업무 상태 흐름]
- 리포트는 속보판과 확정판 두 단계로 발행합니다. 속보판은 방송 종료 후 통계 갱신 확인 시점에, 확정판은 구매 확정이 반영된 이후 재수집해 발행합니다.
- 수집 결과가 검증에 실패하면 리포트를 생성하더라도 발송하지 않고 운영자 확인 대기 상태로 둡니다.
- 수집 원본은 파싱 성공 여부와 무관하게 보관하며 삭제하지 않습니다. 화면 구조 변경 시 소급 재처리에 사용합니다.
- 화면 전이 순서 등 동작 단계 설계는 제안사가 정합니다.
[비기능 요구]
- 스토어 10개, 동시 송출 30건. 사용자는 발주처 내부 2~3명이며 브랜드는 접속하지 않습니다.
- 수집 1회 처리 시간이 방송 간격을 초과하지 않아야 합니다.
- 데이터 보관 2년 이상, 원본 1년 이상.
- 수집 전용 장비 1대를 별도 운용하고 송출 장비에는 프로그램을 설치하지 않습니다.
[외부 연동]
- 별도 외부 시스템 연동은 없습니다. 수집 대상은 모두 쇼핑라이브 관리툴 화면 안에 있으며 발송은 이메일만 사용합니다.
[스코프 밖]
- 외부 요인(날씨·이슈·SNS 언급)과 매출의 인과 분석, 매출 예측, 마케팅 채널 추천
- 브랜드 로그인 포털 및 브랜드용 대시보드
- 회차별 확정 매출 귀속
- 송출 장애 실시간 감지, 송출 장비 로그 수집
- 소재 반복 편성 경고
[추가 도입 검토 항목]
아래 세 항목은 요구사항에 포함되어 있으나, 예산 범위를 초과할 경우 발주처가 견적을 보고 이관 여부를 판단합니다. 제외가 확정된 항목이 아니므로 이후 추가될 수 있는 구조로 설계하고, 항목별 개략 규모를 견적에 구분해 표기해 주십시오. 이관을 검토하는 순서는 아래와 같습니다.
- 기간(주·월) 리포트. 회차 리포트의 집계 형태로 만드는 것을 전제로 합니다.
- 채팅 요약. 로그 수집·보관은 유지하고 상위 질문 추출과 유형 분류를 조정 대상으로 봅니다.
- 매출·정산 수집.
회차 리포트, 자동 발송, 운영 감시는 조정 대상이 아닙니다.
[제약 사항 및 확인 필요]
- 리포트 항목과 레이아웃은 확정되지 않았습니다. 기존 리포트가 없어 참고 양식이 없으며 착수 후 2주 이내 협의로 확정합니다.
- 하루에 새로 생성되는 방송 건수는 확인되지 않았습니다. 착수 시 확인해 처리량 산정에 반영합니다.
- 수집 성공률 검수 기준치는 협의로 정합니다.
- 사람 응답과 자동 응답의 화면상 구분 가능 여부는 착수 시 확인합니다.
- 첫 단계에서 이미 구현된 기능이 확인될 경우 해당 범위와 금액을 조정합니다.
- 관리툴 통계는 네이버가 일괄 갱신하므로 갱신 여부를 확인한 뒤 수집합니다.
[클라이언트 준비 사항]
발주처가 아래를 제공합니다.
- 스토어 계정 접근 권한 및 관리툴 화면 접근 권한
- 리포트 수신자 정보
- 수집 전용 장비 및 네트워크 환경(필요 시)
- 리포트 항목 협의·확정 담당자 지정 및 검토 회신
[기술 스택]
- 지정 없음 — 제안사 제안. 수집 방식, 저장소, 배포 환경 모두 제안사가 선택합니다.
- 선택 근거를 화면 수집의 안정성과 유지보수 용이성 관점에서 함께 제시해 주십시오.
[원하는 파트너]
- 웹 화면 수집 시스템을 구축하고 운영해 본 경험이 있는 팀
- 세션 유지, 다중 계정 병렬 처리, 실패 감지·재시도 구조를 다뤄 본 경험
- 구축 이후 유지보수를 지속할 수 있는 팀. 공식 API가 없어 화면 변경 대응이 계약 기간 내내 필요합니다.
- 우대: 리포트 자동 생성·발송 시스템 구축 경험, 커머스 데이터 처리 경험
[제안 요청 사항]
- 스토어 계정당 동시 가능 방송 수의 상한과 근거
- 방송 30건을 누락 없이 도는 순회 설계(순서·충돌·종료 감지)와, 기간 조회로 대체 가능한 범위
- 화면 구조 변경 감지·복구 방식과 대응 시간
- 수집 실패 판정 기준과 재시도·알림·발송 차단 방식
- 세션 유지·만료 처리 방식, 데이터 모델과 원본 보관 구조
- 유지보수 범위·대응 시간·비용, 추가 도입 검토 항목의 항목별 규모
[예산과 기간]
- 예산: 협의( 제안해주시기 바랍니다. )
- 기간: 착수 후 2~3개월 예상. 마감일은 지정하지 않으며 조기 완료를 우선합니다. 작업 제한 기간은 없습니다.
- 구체적 일정은 제안사가 제시한 안을 기준으로 협의합니다.
[산출물]
- 소스코드 및 배포 산출물
- 데이터베이스 설계서, 화면 정의서
- 운영 매뉴얼(수집 실패·세션 만료 대응 절차 포함)
- 리포트 템플릿 정의서
[계약 특이사항]
- 유지보수 조건을 계약에 포함합니다.( 비용 별도 협의 )
- 수집은 읽기 전용으로 동작하며 소비자 식별정보는 저장하지 않거나 비식별 처리합니다.
- 계정 자격증명은 암호화 저장·접근 이력 기록, 계약 종료 시 파기 절차를 정의합니다.
- 브랜드 계정 사용 권한의 확보·유지는 발주처 책임입니다.
위시켓에서 원본 확인
원본 보기