FOLDER (패션 서치 커뮤니티)

FastAPI Scrapy BeautifulSoup4 Langchain OpenAI API aiomysql aiohttp Docker

목차

  1. 프로젝트 개요
    1. 팀 구성 및 정보
  2. 기술 구현 상세
    1. 기술 스택 및 개발 환경
    2. 주요 기능
    3. 개발 성과

프로젝트 개요

서비스 소개분산된 다수 온라인 패션 매체들의 최신 콘텐츠 트렌드 데이터를 자동으로 수집하여 통합 탐색 및 정보 교환을 돕는 커뮤니티 플랫폼임.
핵심 목표 110여 개 패션 웹 매체의 실시간 수집 배치를 자동화하고, 콘텐츠의 정제 및 요약 작업을 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
InfrastructureDocker Compose 멀티 컨테이너 환경 및 AWS 인프라를 활용함
FastAPI: 데이터 검색 및 스크랩북 커뮤니티 API 전송 서버로 가동함
Docker Compose: 크롤링 수집 엔진과 DB, 스케줄러 간 멀티 가상 머신 네트워크 연동을 간소화함
RepositoryF-folder-Scrapy Repo

주요 기능

기능상세 내용
패션 데이터 수집 자동화10개 매체를 타깃으로 스케줄링 배치(APScheduler)를 구축해 데이터를 실시간 자동 파싱 및 수집함
AI 연계 본문 텍스트 요약OpenAI 및 Langchain을 결합해 수집 원문 본문의 자연어 정밀 요약과 메타데이터 분류 태그를 동적 추출함
검색 및 정렬 배포 API무한 스크롤, 다차원 필터링 및 검색 조건을 지원하는 패션 포스트 통합 조회 API를 구현함
장애 모니터링 경보배치 완료 실패 현황 및 예외 에러 스택을 Slack Webhook을 연동해 실시간 모니터링 경보를 구성함

개발 성과

특징상세 내용
어댑터 기반 계층형 수집 아키텍처 설계문제: 크롤링 대상이 되는 패션 매체(10여 개)마다 웹페이지 구조와 데이터 취득 방식이 달라, 새로운 매체를 추가할 때마다 기존 수집 로직을 수정해야 하는 유지보수 병목이 발생함.
해결: 수집(API) 계층과 정제(Pipe) 단계를 어댑터 패턴(Adapter Pattern)을 적용해 철저히 격리함.
성과: 비즈니스 정제 모듈을 그대로 유지한 채 신규 수집 채널을 연동할 수 있게 함으로써, 신규 채널 연동 소요 개발 리드 타임과 공수를 최소화함.
방화벽 우회 및 비동기 파이프라인 최적화문제: 대상 매체의 Cloudflare 등의 웹 봇 탐지 방화벽으로 인해 주기적인 크롤링 배치가 차단당하고, 동기식 I/O 처리로 인해 10개 매체의 대용량 수집 시간이 지나치게 길어짐.
해결: cloudscraperfake-useragent로 봇 방화벽 탐지를 안전하게 우회하고, aiohttpaiomysql을 도입해 네트워크와 데이터베이스 처리를 전면 비동기 비차단 I/O 파이프라인으로 전환함.
성과: 크롤러 차단률을 현저히 낮추고 데이터 수집 속도 및 초당 데이터 처리 성능을 대폭 향상시킴.
LLM 데이터 정제 및 테스트 안정성 확보문제: 수집된 원시 텍스트에서 불필요한 태그와 노이즈를 제거하고 정제된 요약과 핵심 패션 분류 태그를 수작업 수준으로 일관되게 추출하기가 대단히 어려움.
해결: OpenAI GPT 모델과 Langchain을 연계하여 텍스트 정제 요약 및 태그 동적 분류 프롬프트 파이프라인을 구축하고, Dependency Injector를 통해 격리 모의 테스트를 설계하여 배치의 장애를 실시간 감지(Slack SDK)하도록 구성함.
성과: 복잡한 원문 텍스트 데이터의 지능형 분류 및 요약 작업을 100% 자동화하고, 모의 테스트 수립과 실시간 장애 모니터링 경보를 구성하여 배치 운영 안정성을 확보함.