[글결] 시즌 2 개발 일지 #2: 새 아키텍처 구성
글결 프로젝트 시즌 2의 두 번째 개발 일지. 더 큰 규모로 확장하기 위해 바뀐 구성 요소와 앞으로의 계획을 공유합니다.
chevron_right 목차
서론
지난 1월 후로 업데이트가 없었다. 이는 남아 있던 문제들을 해결하고, 인프라를 구성하는 데 시간이 걸렸기 때문이다. 이번 3월 안에는 구성을 마무리하고 다시 데이터 수집을 시작할 수 있을 것으로 예상하고 있다. 이번 글에서는 바뀐 일부 구성 요소에 대해 소개한다.
주요 변경
PostgreSQL으로
기존에는 html-storage와 link-kv가 각각 로컬 스토리지와 Pebble을 사용하여 메타데이터를 저장하고 있었다. 하지만 이는 유지보수가 까다롭고, 재크롤링 등의 목적에 대응하지 못했다. 또한 메시지 큐로 Pub/Sub를 사용하고 있었는데, 크롤링 작업의 특성상 수많은 backlog가 쌓여서 적절하지 않은 상황이었다.
이런 상황을 해결하기 위해, html-storage와 link-kv에 더해 Pub/Sub의 역할까지도 PostgreSQL로 통일하기로 했다. 실제 HTML은 여전히 다른 곳에 저장하지만, HTML의 메타데이터와 링크 정보, 그리고 크롤링 작업의 상태 등을 모두 PostgreSQL에서 관리하는 것이다. 이를 통해 유지보수의 편의성과 재크롤링 등의 유연성을 확보할 수 있을 것으로 기대하고 있다.
크롤링 작업 특성상 작업 처리량이 큐의 처리량보다는 rate limit에 의해 결정되며, backlog가 쌓이는 것이 당연한 상황이므로 DB로 통합하는 것이 오히려 더 적절하다고 판단했다.
단일 파일에서 번들로
기존에는 각각 HTML을 압축해서 파일로 저장하는 방식이었는데, 파일 시스템은 이런 상황에 적절하지 않다는 것을 깨달았다. 작은 파일들이 많은 상황에서 오는 성능 저하와 관리의 어려움이 있었기 때문이다. 이에 따라, HTML을 여러 개 묶어서 번들로 저장하는 방식으로 변경했다. 이를 통해 저장과 관리가 훨씬 효율적으로 이루어질 것으로 기대하고 있다.
장비 추가
DB 등을 띄울 수 있는 장비가 필요했으므로(기존의 장비들은 성능 또는 용량 중 하나가 부족했다), 새로운 미니 PC를 클러스터에 추가했다. 이 장비는 DB와 크롤링 작업을 처리하는 데 사용될 예정이다.
마치며
아직 마저 변경이 진행 중이지만, 이번 변경이 마지막 아키텍처 변경이 되기를 기대하고 있다. 3월 중으로 구성을 마무리하고, 다시 데이터 수집을 시작할 수 있을 것으로 예상하고 있다. 또한 자동으로 후처리를 진행하는 파이프라인 또한 구성하는 것이 목표이다.
인용하기
@misc{devngho202620260321geulgyeols2devlog2,
author = {Yu, Dongho},
title = {시즌 2 개발 일지 #2: 새 아키텍처 구성},
howpublished = {\url{https://ngho.dev/posts/20260321-geulgyeol-s2-devlog2}},
year = {2026},
month = {mar},
note = {Accessed: 2026-03-22}
}APA 유동호. (2026년 3월 21일). 시즌 2 개발 일지 #2: 새 아키텍처 구성. devngho 블로그. https://ngho.dev/posts/20260321-geulgyeol-s2-devlog2
Chicago 유동호. “시즌 2 개발 일지 #2: 새 아키텍처 구성.” devngho 블로그 (blog). 2026년 3월 21일. https://ngho.dev/posts/20260321-geulgyeol-s2-devlog2.
MLA 유동호. “시즌 2 개발 일지 #2: 새 아키텍처 구성.” devngho 블로그, 2026년 3월 21일, https://ngho.dev/posts/20260321-geulgyeol-s2-devlog2.