- 프로그래밍 언어 무관, 자신있는 언어로 작성.
- 데이터 수집 작업을 실행하는 배치프로그램 작성.
- 데이터 저장 작업은 따로 ETL Gateway에서 진행. (회의 필요: 각 collector에서 바로 DB또는 S3로 업로드 VS. 수집된 데이터를 처리하는 하나의 서버 생성)
- 각 수집기에서 필요한 환경변수는 /collectors/**/.env에 작성.
- collectors의 하위폴더는 방송플랫폼+데이터 수집 단위.
ex. afreecatv 채팅과 방송데이터를 따로 수집해야 한다면, 따로 폴더 만들어 작성. 동시에 수집이 가능하다면 하나의 폴더에 함께 작성 - API 호출 / 크롤링 / 스크래핑 / 제공되는 채팅서버에 socket 연결 등 각 플랫폼(youtube, afreeca, twitch, etc)에 맞는 방식으로.
- 각 언어에 맞는 linting 시스템 적극 활용 권고 (ex. nodejs -> eslint, python -> pylint)
- (가능하다면.. test 코드 작성.)
- 해당 프로그래밍 언어 런타임으로 동작할 수 있도록 Dockerfile 작성.
- docker run 스크립트 작성.
더욱 세분화하여 나눌 수 있음. 하지만, 유의해야 할 점은 collectors의 하위 폴더 하나하나는 하나의 컨테이너로 작동되어야 함.
따라서, 하나의 기능을 수행하는 컨테이너일 수록 좋음. (기존 와일트루 개발자가 판단하에 진행)
- /afreecatv : 아프리카tv 데이터 수집
- /twitchtv : 트위치tv 데이터 수집
- /youtube : 현재 게시되어있는(과거의) youtube live영상에 대한 데이터 수집
- /youtube-live : youtube live영상에 대한 데이터 수집