JSON → DB 전환
Context
- 초기에는 빠르게 테스트 해보기위해 크롤링 결과를 JSON 파일로 저장하여 사용
- 서비스 기능이 확장되며 데이터 양·구조가 복잡해짐
Problem
- JSON 기반 구조는 다음 한계를 가짐
- 검색 어려움
- 부분 업데이트 불가
- 운영 중 수정/보완이 번거로움
Implementation
- MongoDB 기반 구조로 전환 결정
- MongoDB 사용이유
- MVP 개발단계에서 자주 변동되는 스키마에 대처가능
- 전형적인 관계형 DB에 비해 하나의 이슈에 대해 다양한 정보(필드)를 가지도록 하기 쉬움
- 중복 방지 + 점진적 누적 저장 등 사용 가능 (upsert 등)
- 특정 용량까지 무료로 사용가능
- JSON에 정리된 데이터 구조를 기준으로 DB 스키마 설계
- 하나씩 순차적으로 전환
- outlet 컬렉션 DB 연결
- dailyKeywords 컬렉션 DB 연결
- articles 컬렉션 DB 연결
- 메인 & 디테일 페이지 전체 DB 연결 (프론트앤드에 데이터 뿌려줌)
Result
- 수집된 데이터들에 해당하는 컬렉션 생성 및 저장 완료
weeklyIssues 저장 및 dailyIssues 산출 방식 고민
Context
- weeklyIssues는 DB에 저장하는 구조로 확정
- dailyIssues는 weeklyIssues를 기반으로 산출 예정
Problem
- dailyIssues를 단순 조회수 기준으로 뽑을 경우
- 프론트 새로고침 시 DB 과다 호출 발생