목록개인 프로젝트/DayCar 프로젝트 (2)
엔지니어 블로그

이전 글에서 DB 연결 코드를 손 봤었는데, 암만 생각해도 이전과 동일한 구조를 벗어나 좀 더 확장된 아키텍처를 가져가고 싶은 욕심에 아키텍처를 전면 수정하여 진행하기로 했습니다.각 단계에 대한 설명은 아래와 같습니다.1. 데이터 수집 - Python기존의 데이터 수집은 Python의 Requests,BeautifulSoup을 통해 진행됐습니다. 완전 동기 방식으로 수집 되고 있어 수집 속도가 매우 느렸습니다. 속도 향상을 위해 async 방식과 Playwright 라이브러리를 선택했습니다. Playwright는 headless browser 기반이며, 비동기 병렬 처리에 특화된 도구입니다. 병렬 수집을 도입하여 더욱 빠른 속도의 수집을 기대하고있습니다.2. Buffer를 통한 디커플링 - Redis병렬..

이전에 진행했던 프로젝트를 리펙토링 하려고 합니다. 4년 전에 프로젝트를 진행했는데, 구동되는 것에만 너무 매몰되어 작업하여 코드 구조나 확장성에는 큰 신경을 쓰지 않았습니다. 그래서 오늘부터 리팩토링 작업에 들어갑니다. 이번 포스트에서는 디렉토리 구조 정리와 DB 연결 코드 개선에 집중했습니다.1. 디렉토리 구조 개편디렉토리 구조 변경db 연결 손보기크롤러 코드 손보기(제일 문제)Django -> fastAPI로 변경먼저 프로젝트 구조입니다.왼쪽은 당시의 디렉토리, 오른쪽은 리팩토링 이후의 구조입니다:처음엔 나름 분리했다고 생각했지만...디렉토리 안에 그냥 파일만 덩그러니 있고, 역할 구분도 전혀 안 돼 있던 상황이었습니다.✅ 포인트기능별로 명확히 디렉토리 분리크롤링, 처리, 웹 기능이 어디에 있는지 ..