Skip to content

채용공고를 빠르게 모아보기 위한 데스크탑 앱

minr2kb/recruit-crawler-app

Repository files navigation

recruit-crawler-app

스크린샷 2024-03-16 01 35 37

채용 공고 크롤러 데스크톱 애플리케이션입니다. 여러 채용 플랫폼의 채용 공고를 한번에 수집하고 관리할 수 있습니다. 크롤링 서버 레포

🌟 주요기능

  • 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

📱 사용 방법

  1. 최신 release 에서 운영체제에 맞는 파일을 설치해줍니다.

  2. 서버가 실행중인지 확인 후, Config에서 공고 날짜 범위, 필드를 선택해줍니다.

  3. Platforms에서 원하는 플랫폼의 우측 토글 버튼을 눌러 선택해줍니다.

  4. 각 플랫폼 블럭을 클릭하여 설정을 여닫을 수 있습니다.

  5. 추가하기 버튼을 클릭하여 원하는 직무를 모두 선택해줍니다.

  6. 우측 Result에 추가된 플랫폼과 직무를 확인합니다.

  7. START를 클릭 하여 크롤링을 진행합니다.

  8. 각 직무 chip을 클릭시 직무별 csv를, 아래 다운 버튼 클릭시 플랫폼 단위로 다운로드 가능합니다.

  9. 크롤링 도중, STOP을 클릭하여 크롤링을 중지할 수 있습니다.

기타 feature

  • 크롤링 중 결과가 없거나 문제 발생시 직무 chip에 에러 인디케이터가 표시됩니다.

  • 원티드의 경우, 공고 날짜가 지원되지 않아 전체 공고 크롤링을 진행합니다.

  • 모든 요청은 기존적으로 병렬로 이루어지되, 서버 과부하 방지를 위해 5개 초과 카테고리는 동기 요청이 이루어집니다. 따라서 크롤링 속도가 느릴 수 있습니다. (플랫폼 이름 옆 SYNC/ASYNC 표시)

👨‍💻 개발자

Kyungbae Min ([email protected])

더 고민하면 좋을점

보안 강화

  • API 키 관리 방식 개선
  • 크롤링 요청에 대한 rate limiting 구현

에러 처리 개선

  • 크롤링 실패 시 재시도 메커니즘 구현
  • 상세한 에러 로깅 및 모니터링 시스템 도입

성능 최적화

  • 메모리 사용량 최적화
  • 대용량 데이터 처리 시 청크 단위 처리 도입

테스트 코드 추가

  • 단위 테스트 및 E2E 테스트 구현
  • CI/CD 파이프라인 구축

사용자 경험 개선

  • 오프라인 모드 지원
  • 크롤링 결과 히스토리 관리
  • 검색 및 필터링 기능 강화

확장성

  • 플러그인 시스템 도입으로 새로운 플랫폼 쉽게 추가
  • 커스텀 필터 설정 기능

About

채용공고를 빠르게 모아보기 위한 데스크탑 앱

Resources

Stars

Watchers

Forks

Packages

No packages published