엔지니어 블로그

[DayCar] 리팩토링 일지 - 1편: 디렉토리 구조와 DB 연결 손보기 본문

개인 프로젝트/DayCar 프로젝트

[DayCar] 리팩토링 일지 - 1편: 디렉토리 구조와 DB 연결 손보기

안기용 2025. 4. 10. 23:19

이전에 진행했던 프로젝트를 리펙토링 하려고 합니다. 4년 전에 프로젝트를 진행했는데, 구동되는 것에만 너무 매몰되어 작업하여 코드 구조나 확장성에는 큰 신경을 쓰지 않았습니다. 그래서 오늘부터 리팩토링 작업에 들어갑니다. 이번 포스트에서는 디렉토리 구조 정리와 DB 연결 코드 개선에 집중했습니다.

1. 디렉토리 구조 개편

  1. 디렉토리 구조 변경
  2. db 연결 손보기
  3. 크롤러 코드 손보기(제일 문제)
  4. Django -> fastAPI로 변경

먼저 프로젝트 구조입니다.
왼쪽은 당시의 디렉토리, 오른쪽은 리팩토링 이후의 구조입니다:

처음엔 나름 분리했다고 생각했지만...
디렉토리 안에 그냥 파일만 덩그러니 있고, 역할 구분도 전혀 안 돼 있던 상황이었습니다.
✅ 포인트

  • 기능별로 명확히 디렉토리 분리
  • 크롤링, 처리, 웹 기능이 어디에 있는지 직관적으로 알 수 있도록 정리
  • 향후 FastAPI로 교체할 준비도 구조에 반영

구조

- crawler : 수집기

- config : 설정 파일들

- db : db 연결 및 기능

- pipelines : 데이터 변환 및 적재

- web : 웹 기능

- dashboard : 대시보드 관련 데이터

2. DB 연결 코드 개선

다음은 db 기능을 손봤습니다. 좌측이 as-is 우측이 to-be 입니다.

✅ 포인트

  • DB 연결과 쿼리 기능을 명확히 분리
  • 클래스 구조로 재사용성과 테스트 용이성 확보
  • .env로 민감정보 분리 가능하게 준비

 

3. 마무리

이번 포스팅에서는 가장 기본적인 것만 다뤄봤습니다. 디렉토리 구조를 손 본 것 만으로도 굉장히 보기가 편해진 것 같습니다. 다음 포스팅에서는 실제 크롤링 코드를 리팩토링 해보려고 합니다.