채용 공고 크롤러 데스크톱 애플리케이션입니다. 여러 채용 플랫폼의 채용 공고를 한번에 수집하고 관리할 수 있습니다. 크롤링 서버 레포
- 6개 채용 플랫폼 지원 (잡코리아, 잡플래닛, 원티드, 리멤버, 점핏, 프로그래머스)
- 플랫폼별 카테고리 필터링
- 날짜 범위 설정을 통한 공고 필터링
- CSV 형식의 결과 다운로드 (전체/플랫폼별)
- 자동 업데이트 지원
- 크롤링 진행상황 실시간 모니터링
- 크롤링 중단/재시작 기능
- Electron + React + TypeScript 기반의 크로스 플랫폼 데스크톱 앱
- IPC 통신을 통한 메인 프로세스와 렌더러 프로세스 간 통신
- electron-updater를 활용한 자동 업데이트 구현
- 병렬 처리를 통한 크롤링 성능 최적화 (5개 이하 카테고리)
- 서버 부하 방지를 위한 동기 처리 (5개 초과 카테고리)
- Vite를 통한 빌드 최적화 및 코드 분할
src/
├── legacy/ # 기존 레거시 스크립트
├── main/ # Electron 메인 프로세스
├── preload/ # 프리로드 스크립트
└── renderer/ # React 렌더러 프로세스
├── src/
│ ├── api/ # API 통신 로직
│ ├── components/
│ ├── hooks/ # 커스텀 훅
│ └── utils/ # 유틸리티 함수
...
# 의존성 설치
yarn
# 개발 모드 실행
yarn dev
# 빌드
yarn build:win # Windows
yarn build:mac # macOS
# 배포
yarn deploy- Electron
- React
- TypeScript
- Material-UI
- Vite
- Jotai
- React Query
- Axios
-
최신 release 에서 운영체제에 맞는 파일을 설치해줍니다.
-
서버가 실행중인지 확인 후, Config에서 공고 날짜 범위, 필드를 선택해줍니다.
-
Platforms에서 원하는 플랫폼의 우측 토글 버튼을 눌러 선택해줍니다.
-
각 플랫폼 블럭을 클릭하여 설정을 여닫을 수 있습니다.
-
추가하기 버튼을 클릭하여 원하는 직무를 모두 선택해줍니다.
-
우측 Result에 추가된 플랫폼과 직무를 확인합니다.
-
START를 클릭 하여 크롤링을 진행합니다.
-
각 직무 chip을 클릭시 직무별 csv를, 아래 다운 버튼 클릭시 플랫폼 단위로 다운로드 가능합니다.
-
크롤링 도중, STOP을 클릭하여 크롤링을 중지할 수 있습니다.
-
크롤링 중 결과가 없거나 문제 발생시 직무 chip에 에러 인디케이터가 표시됩니다.
-
원티드의 경우, 공고 날짜가 지원되지 않아 전체 공고 크롤링을 진행합니다.
-
모든 요청은 기존적으로 병렬로 이루어지되, 서버 과부하 방지를 위해 5개 초과 카테고리는 동기 요청이 이루어집니다. 따라서 크롤링 속도가 느릴 수 있습니다. (플랫폼 이름 옆 SYNC/ASYNC 표시)
Kyungbae Min ([email protected])
- API 키 관리 방식 개선
- 크롤링 요청에 대한 rate limiting 구현
- 크롤링 실패 시 재시도 메커니즘 구현
- 상세한 에러 로깅 및 모니터링 시스템 도입
- 메모리 사용량 최적화
- 대용량 데이터 처리 시 청크 단위 처리 도입
- 단위 테스트 및 E2E 테스트 구현
- CI/CD 파이프라인 구축
- 오프라인 모드 지원
- 크롤링 결과 히스토리 관리
- 검색 및 필터링 기능 강화
- 플러그인 시스템 도입으로 새로운 플랫폼 쉽게 추가
- 커스텀 필터 설정 기능