Skip to content

feat: jsoup 크롤러 api 구현#2

Merged
yongseong123 merged 1 commit into
mainfrom
feature/jsoup-crawl
May 27, 2026
Merged

feat: jsoup 크롤러 api 구현#2
yongseong123 merged 1 commit into
mainfrom
feature/jsoup-crawl

Conversation

@yongseong123

Copy link
Copy Markdown
Collaborator

Pull Request

작업 개요

  • Work24 훈련과정 상세 페이지에서 훈련과정 개요 영역의 훈련대상자요건, 훈련목표를 jsoup로 크롤링합니다.
  • 크롤링 결과를 JSON 파일로 저장하고 API 응답으로도 반환하는 엔드포인트를 추가했습니다.

변경 사항

  • org.jsoup:jsoup:1.22.2 의존성을 추가했습니다.
  • POST /api/work24/training-course-overview/crawl API를 추가했습니다.
  • Work24 크롤러 설정값을 app.work24.crawler 하위에 추가했습니다.
  • #traCrseinfo 테이블에서 항목명을 기준으로 텍스트를 추출하고 줄바꿈을 정규화하도록 구현했습니다.
  • HTML 샘플 파싱과 JSON 저장을 검증하는 단위 테스트를 추가했습니다.

관련 이슈

  • 없음

테스트

  • 로컬에서 기능 동작을 확인했습니다.
  • 빌드 또는 테스트가 통과했습니다. (.\gradlew.bat test)
  • 변경된 API의 성공 케이스를 확인했습니다.
  • 요청 값 검증과 예외 처리 영향을 확인했습니다.

체크리스트

  • 불필요한 로그, 주석, 디버그 코드를 제거했습니다.
  • API 명세 변경 사항을 PR 본문에 공유했습니다.
  • 인증, 인가, 입력 검증 영향을 확인했습니다.
  • DB 스키마 마이그레이션, 초기 데이터 변경 여부를 확인했습니다. 변경 없음.
  • 환경 변수와 배포 설정 변경 사항을 문서화했습니다.

API 변경 사항

  • 추가 엔드포인트: POST /api/work24/training-course-overview/crawl
  • 요청 예시:
{
  "url": "https://www.work24.go.kr/hr/a/a/3100/selectTracseDetl.do?tracseId=AIG20250000501645&tracseTme=4&crseTracseSe=C0061&trainstCstmrId=500020021537",
  "outputPath": "build/crawled/work24-training-course-overview.json"
}
  • url, outputPath는 생략 가능하며 설정 기본값을 사용합니다.
  • 응답 예시:
{
  "sourceUrl": "https://www.work24.go.kr/hr/a/a/3100/selectTracseDetl.do?...",
  "savedPath": "C:\\dev\\AIBE5_FinalProject_Team5_BE\\build\\crawled\\work24-training-course-overview.json",
  "trainingTargetRequirements": "...",
  "trainingGoal": "...",
  "crawledAt": "2026-05-27T07:27:38.648283900Z"
}
  • 에러 응답: 현재 파싱 대상 테이블 또는 항목이 없으면 IllegalStateException이 발생합니다. 공통 예외 응답 체계가 생기면 매핑 보강이 필요합니다.

리뷰 포인트

  • JSON 파일 저장 방식이 MVP 검증용으로 충분한지, 이후 DB 저장으로 확장할지 확인이 필요합니다.
  • Work24 HTML 구조 변경 시 selector(#traCrseinfo table)가 영향을 받을 수 있습니다.

@yongseong123 yongseong123 changed the title [codex] feat: jsoup 크롤러 api 구현 feat: jsoup 크롤러 api 구현 May 27, 2026
@yongseong123 yongseong123 marked this pull request as ready for review May 27, 2026 07:42
@Paley-Z Paley-Z self-requested a review May 27, 2026 07:47
@yongseong123

Copy link
Copy Markdown
Collaborator Author

일단은 같은 프로젝트 디렉토리 내에서 관리를 하다가 범위가 더 커지고,
대량으로 크롤링을 해서 사용할때는 별도의 앱으로 분리 할 예정 입니다!

참고 부탁드리겠습니다~

@hwangbohye03 hwangbohye03 self-requested a review May 27, 2026 07:59
@2mhh 2mhh self-requested a review May 27, 2026 08:02
@yongseong123 yongseong123 merged commit 08eb665 into main May 27, 2026
1 check passed
@yongseong123 yongseong123 deleted the feature/jsoup-crawl branch May 27, 2026 08:10
@yongseong123 yongseong123 self-assigned this Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants