FOLDER (패션 서치 커뮤니티)
FastAPI Scrapy BeautifulSoup4 Langchain OpenAI API aiomysql aiohttp Docker
목차
프로젝트 개요
| 서비스 소개 | 분산된 다수 온라인 패션 매체들의 최신 콘텐츠 트렌드 데이터를 자동으로 수집하여 통합 탐색 및 정보 교환을 돕는 커뮤니티 플랫폼임. |
|---|---|
| 핵심 목표 1 | 10여 개 패션 웹 매체의 실시간 수집 배치를 자동화하고, 콘텐츠의 정제 및 요약 작업을 AI(LLM) 기반으로 지능화·자동화하는 것을 목표로 함. |
| 핵심 목표 2 | 동기식 I/O 병목을 해결하여 대용량 데이터를 고속으로 적재하고, 관심 포스트 스크랩북과 투표형 토픽 커뮤니티를 통해 유저 참여 환경을 조성하는 것을 목표로 함. |
팀 구성 및 정보
| 항목 | 내용 |
|---|---|
| 참여 인원 | 총 6명 (PO/PM 1명, 서비스 기획 1명, 디자이너 1명, BE 1명, FE 2명) |
| 진행 기간 | 2023.10 ~ 2024.02 (약 4개월) |
| 담당 역할 | 분산형 패션 콘텐츠 크롤링 및 자동화 수집 파이프라인 구축 담당 |
기술 구현 상세
기술 스택 및 개발 환경
| 항목 | 내용 |
|---|---|
| 담당 역할 | 분산형 패션 콘텐츠 크롤링 및 자동화 수집 파이프라인 구축 담당 |
| 기술 스택 | Python 3.x, FastAPI, SQLAlchemy, aiomysql, aiohttp, BeautifulSoup4, lxml, APScheduler, Dependency Injector, Docker, Docker Compose, GitPython, Langchain, OpenAI, Slack SDK |
| Infrastructure | Docker Compose 멀티 컨테이너 환경 및 AWS 인프라를 활용함 • FastAPI: 데이터 검색 및 스크랩북 커뮤니티 API 전송 서버로 가동함 • Docker Compose: 크롤링 수집 엔진과 DB, 스케줄러 간 멀티 가상 머신 네트워크 연동을 간소화함 |
| Repository | F-folder-Scrapy Repo |
주요 기능
| 기능 | 상세 내용 |
|---|---|
| 패션 데이터 수집 자동화 | 10개 매체를 타깃으로 스케줄링 배치(APScheduler)를 구축해 데이터를 실시간 자동 파싱 및 수집함 |
| AI 연계 본문 텍스트 요약 | OpenAI 및 Langchain을 결합해 수집 원문 본문의 자연어 정밀 요약과 메타데이터 분류 태그를 동적 추출함 |
| 검색 및 정렬 배포 API | 무한 스크롤, 다차원 필터링 및 검색 조건을 지원하는 패션 포스트 통합 조회 API를 구현함 |
| 장애 모니터링 경보 | 배치 완료 실패 현황 및 예외 에러 스택을 Slack Webhook을 연동해 실시간 모니터링 경보를 구성함 |
개발 성과
| 특징 | 상세 내용 |
|---|---|
| 어댑터 기반 계층형 수집 아키텍처 설계 | • 문제: 크롤링 대상이 되는 패션 매체(10여 개)마다 웹페이지 구조와 데이터 취득 방식이 달라, 새로운 매체를 추가할 때마다 기존 수집 로직을 수정해야 하는 유지보수 병목이 발생함. • 해결: 수집(API) 계층과 정제(Pipe) 단계를 어댑터 패턴(Adapter Pattern)을 적용해 철저히 격리함. • 성과: 비즈니스 정제 모듈을 그대로 유지한 채 신규 수집 채널을 연동할 수 있게 함으로써, 신규 채널 연동 소요 개발 리드 타임과 공수를 최소화함. |
| 방화벽 우회 및 비동기 파이프라인 최적화 | • 문제: 대상 매체의 Cloudflare 등의 웹 봇 탐지 방화벽으로 인해 주기적인 크롤링 배치가 차단당하고, 동기식 I/O 처리로 인해 10개 매체의 대용량 수집 시간이 지나치게 길어짐. • 해결: cloudscraper 및 fake-useragent로 봇 방화벽 탐지를 안전하게 우회하고, aiohttp 및 aiomysql을 도입해 네트워크와 데이터베이스 처리를 전면 비동기 비차단 I/O 파이프라인으로 전환함.• 성과: 크롤러 차단률을 현저히 낮추고 데이터 수집 속도 및 초당 데이터 처리 성능을 대폭 향상시킴. |
| LLM 데이터 정제 및 테스트 안정성 확보 | • 문제: 수집된 원시 텍스트에서 불필요한 태그와 노이즈를 제거하고 정제된 요약과 핵심 패션 분류 태그를 수작업 수준으로 일관되게 추출하기가 대단히 어려움. • 해결: OpenAI GPT 모델과 Langchain을 연계하여 텍스트 정제 요약 및 태그 동적 분류 프롬프트 파이프라인을 구축하고, Dependency Injector를 통해 격리 모의 테스트를 설계하여 배치의 장애를 실시간 감지(Slack SDK)하도록 구성함.• 성과: 복잡한 원문 텍스트 데이터의 지능형 분류 및 요약 작업을 100% 자동화하고, 모의 테스트 수립과 실시간 장애 모니터링 경보를 구성하여 배치 운영 안정성을 확보함. |