layout: post title: 크롤러 설계 2편 [전략패턴] categories: [dev] author: 문재범 email: [email protected] date: 2021-11-30 tag:


<!-- @format -->

크롤러 설계 2편 [전략패턴]

크롤러들은 동일한 API를 기반으로 동작방식이 조금씩 다른 형태였기 때문에 공통으로 동작하는 코드, 그리고 크롤러마다 변하는 코드가 존재했다.

그러나 기존의 코드는 이러한 비슷하거나 혹은 아예 동일한 코드들도 모두 구현 클래스마다 따로 정의해서 사용하고 있었다. 그러다 보니 코드의 중복이 발생했다.

전략패턴을 사용해서 위 문제를 해결할 수 있었다.

먼저 크롤러들의 작동방식은 대략적으로 다음과 같다.

  1. 웹 사이트의 게시판 크롤링에 필요한 설정을 DB에서 불러온다.
  2. 원하는 게시판의 모든 게시글을 불러온다.
  3. 원하는 키워드, 날짜 기준에 따라서 해당하는 게시글만 추출한다.
  4. 해당하는 게시물을 호출해 내용을 크롤링한다.
  5. 해당하는 게시물을 호출해 내용을 캡처하고 서버에 저장한다.
  6. 해당 게시물의 첨부파일 내역을 불러온다.
  7. 첨부파일 내역을 서버로 다운로드한다.
  8. 2~7중에 하나라도 실패하면 서버에 로그를 남긴다.
  9. 7까지 완료하면 모든 결과를 DB에 저장하고 서버에 로그를 남긴다.