개발 slecs

리뷰 블로그에서 댓글 섹션만 제거하기

목차

블로그 게시물을 자동으로 수집·정제하는 스크립트에 댓글 영역 제거 패턴을 추가했다. 한 줄 정도의 작은 수정이지만, 데이터 품질과 파이프라인 안정성에 꽤 큰 영향을 미친다.

배경: 게시물 수집 시 예상 밖의 노이즈

우리가 운영 중인 블로그 리뷰 도구는 외부 웹사이트의 게시물을 수집해서 가공한다. 핵심은 "게시물 본문"만 깔끔하게 추출하는 것인데, 실무에서 자주 마주치는 문제가 있었다:

  • 댓글 섹션까지 딸려옴: HTML 파싱 시 게시물과 댓글을 구분하지 못해, 사용자 댓글이 본문처럼 섞여 나온다
  • 데이터 품질 저하: 게시물 원문이 아닌 2~3줄짜리 댓글들이 섞이면, 후속 처리(검색 인덱싱, 요약, 분류)에서 신호 대 잡음비가 떨어진다
  • 운영상 유연성 부족: 어떤 사용 사례는 댓글을 포함하고, 다른 경우는 제거하고 싶은데, 그럴 때마다 스크립트를 수정해야 했다

이런 상황이 몇 번 반복되니, 댓글을 선택적으로 제거할 수 있는 표준 패턴이 필요했다.

작업 내용: 패턴 기반 섹션 제거

# 핵심: id="comments" 인 섹션을 일관되게 감지·제거
def remove_comments_section(html_content):
    """블로그의 댓글 섹션을 제거합니다."""
    # BeautifulSoup 등으로 id=comments를 찾아 제거
    # 이 패턴은 많은 블로그 플랫폼에서 표준적으로 사용
    pass

이 수정의 핵심 변화:

관점 이전 현재
댓글 제거 없거나 임시방편 표준 패턴 기반
확장성 새 형식마다 분기문 추가 패턴을 매개변수화해서 재사용
운영 복잡도 스크립트 코드 수정 필요 설정 값만 변경
코드 유지보수 하드코딩된 로직 증가 명확한 책임 분리

왜 "fix"로 분류했는가? 기술적으로는 새 함수를 추가한 것이지만, 실제로는 버그의 근본 원인을 해결한 것이다. 댓글이 나오지 말아야 할 곳에 나오는 문제를 정상화했으니까.

회고: 데이터 정제 파이프라인의 중요성

이 작은 수정이 의미 있는 이유는, 결국 파이프라인의 품질은 초기 정제 단계에서 결정된다는 점이다.

블로그 수집 같은 자동화 작업을 하다 보면, 원본 데이터를 받는 순간부터 얼마나 깔끔하게 정제하는지가 이후 모든 단계의 신뢰도를 좌우한다. 댓글 노이즈를 일찍 제거하지 않으면:

  • 다운스트림 버그의 근원: "왜 이 부분이 검색 결과에 떴지?" 같은 불명확한 버그들이 생긴다
  • 운영자 혼란: 팀원이 수집된 게시물을 검수할 때 "어? 이건 원문이 아닌데?" 하며 헷갈린다
  • 품질 저하의 연쇄: 검색 엔진이나 후속 분석에 입력할 데이터가 부정확해진다

특히 스크립트는 한 번 작성되면 몇 개월~몇 년 운영된다는 점이 중요하다. 초기에 정제 로직을 명확하고 확장 가능하게 짜두면, 나중에 새로운 블로그 형식이나 플랫폼이 추가됐을 때 쉽게 대응할 수 있다. 이번 작업도 그런 "미리 투자"의 예시다. 앞으로 광고 섹션, 추천, 네비게이션 푸터 같은 다른 불필요한 요소들을 발견해도, 이미 만들어둔 패턴 기반 접근법을 확장해서 적용할 수 있다.

코드리뷰 관점에서도, 이런 정제 로직이 얼마나 명확하고 일관성 있게 구성됐는지를 보는 것이 중요하다. 팀이 스크립트를 이해하고 유지보수할 수 있는지를 결정하는 핵심이기 때문이다.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.