엔지니어 블로그
[DayCar] 리팩토링 일지 - 1편: 디렉토리 구조와 DB 연결 손보기 본문
이전에 진행했던 프로젝트를 리펙토링 하려고 합니다. 4년 전에 프로젝트를 진행했는데, 구동되는 것에만 너무 매몰되어 작업하여 코드 구조나 확장성에는 큰 신경을 쓰지 않았습니다. 그래서 오늘부터 리팩토링 작업에 들어갑니다. 이번 포스트에서는 디렉토리 구조 정리와 DB 연결 코드 개선에 집중했습니다.
1. 디렉토리 구조 개편
- 디렉토리 구조 변경
- db 연결 손보기
- 크롤러 코드 손보기(제일 문제)
- Django -> fastAPI로 변경
먼저 프로젝트 구조입니다.
왼쪽은 당시의 디렉토리, 오른쪽은 리팩토링 이후의 구조입니다:
처음엔 나름 분리했다고 생각했지만...
디렉토리 안에 그냥 파일만 덩그러니 있고, 역할 구분도 전혀 안 돼 있던 상황이었습니다.
✅ 포인트
- 기능별로 명확히 디렉토리 분리
- 크롤링, 처리, 웹 기능이 어디에 있는지 직관적으로 알 수 있도록 정리
- 향후 FastAPI로 교체할 준비도 구조에 반영
구조
- crawler : 수집기
- config : 설정 파일들
- db : db 연결 및 기능
- pipelines : 데이터 변환 및 적재
- web : 웹 기능
- dashboard : 대시보드 관련 데이터
2. DB 연결 코드 개선
다음은 db 기능을 손봤습니다. 좌측이 as-is 우측이 to-be 입니다.
✅ 포인트
- DB 연결과 쿼리 기능을 명확히 분리
- 클래스 구조로 재사용성과 테스트 용이성 확보
- .env로 민감정보 분리 가능하게 준비
3. 마무리
이번 포스팅에서는 가장 기본적인 것만 다뤄봤습니다. 디렉토리 구조를 손 본 것 만으로도 굉장히 보기가 편해진 것 같습니다. 다음 포스팅에서는 실제 크롤링 코드를 리팩토링 해보려고 합니다.
'개인 프로젝트 > DayCar 프로젝트' 카테고리의 다른 글
[DayCar] 리팩토링 일지 - 3편: 스크래퍼 개발 (0) | 2025.04.17 |
---|---|
[DayCar] 리팩토링 일지 - 2편: 처음으로 돌아가기 (0) | 2025.04.16 |