Skip to main content

원불교 교구 소식

원불교 홈페이지에 올라오는 여러 교구의 현장소식에서 일정 정보를 찾아, 날짜와 지역별로 살펴볼 수 있게 정리해 봤습니다.

원불교 교구 소식 첫 화면

개요​

원불교 홈페이지의 현장소식 메뉴에는 여러 교구와 교당의 행사 안내가 올라옵니다. 그런데 글들을 가만히 살펴보면 날짜와 장소가 게시글 속 포스터 이미지에만 적힌 경우가 대부분입니다. 이렇게 되어 있으면 당연히 일정을 찾아보기가 어렵습니다. 별도로 데이터를 입력하지 않는 한 검색은 물론 안 되죠. 날짜나 지역으로 모아 보는 추가 기능은 언감생심이죠.

그래서 이렇게 이미 공개된 현장소식에서 이미지와 글을 모아 데이터화하고, 목록, 달력, 지역 화면으로 재구성했습니다. 행사명과 일시, 장소뿐 아니라 원문 링크와 추출 근거도 함께 보여줍니다. 어디까지나 자동으로 찾아낸 일정 후보이므로, 당연히 데이터에는 오류가 있습니다. 실제 행사 정보는 원문을 확인해야겠죠.

개발​

우선 데이터 수집을 합니다. Python으로 공개된 게시글의 본문과 이미지를 수집하고, 이미지 안의 글자는 macOS Vision의 OCR을 활용합니다. 이걸 소스 삼아 날짜·시간·장소가 명시된 부분으로 구분해서 일정 후보로 정리합니다. 만약 같은 일정이 여러 글에 실렸다면 출처를 모두 묶어서 보여줍니다.

이미 읽은 이미지의 OCR 결과는 재사용하고, 게시글마다 일정 발견 여부나 읽기 오류 같은 처리 상태는 데이터로 남깁니다. 자동 추출이 놓치거나 잘못 읽은 내용은 별도 데이터로 보정할 수 있게 했습니다. 포스터마다 형식이 다르니 추출 결과만 덜렁 보여주는 건 오류를 검증할 수도 없으니 활용도가 떨어져서 좋은 방법이 아니었습니다. 그래서 일정마다 참고한 이미지나 게시글을 따라갈 수 있도록 링크를 보장했죠.

데이터 파일은 정적으로 생성했고, 이걸 정적 빌드로 구성한 페이지에 얹었습니다. 교구별로 필터링하고 지도에 교구들을 표시하고, 캘린더로 보여주는 것으로 편의성을 높였습니다. 선택한 화면과 필터, 달력의 날짜가 지정된 목록을 퍼머링크로 만들고 상세 페이지도 만들어서 서로 공유할 수도 있습니다.

배포​

수집 코드와 원본 데이터는 비공개 저장소에 두고, 공개 리포로 정작 빌드해서 GitHub Pages로 배포했습니다. 이게 영속성을 보장할 수도 없고, 더 확장하는 것도 무리라 우선은 쉬운 버전으로 만든 것이죠.

다만, 그렇더라도 유지하는 동안 업데이트는 해야 하기 때문에 GitHub Actions을 이용해서 정기적으로 수집, 반영, 배포를 실행합니다. 매일 한 차례씩 macOS 실행 환경에서 이미지 OCR을 거쳐 데이터를 갱신하고 사이트를 빌드하는 거죠. 공개할 파일이 바뀐 경우에만 다시 배포하며, 별도의 감시 작업으로 실행 실패나 데이터 불일치를 확인하고 알림을 전송하게 해뒀습니다.

참고로 원래 비공개 리포에서 수집을 위한 GitHub Actions를 돌리려고 했는데, 무료 계정의 비공개 리포용 무료 제공량은 매월 2,000분 제한이 있고, 심지어 macOS를 사용한 러너는 일반적인 Linux 러너보다 분당 비용이 10배나 되더군요. 그래서, 공개 리포에서 돌리기로 했습니다.

정리​

이미지로 올라온 일정도 요즘은 텍스트를 읽어내기 쉬워졌습니다. 물론 포스터 형식으로 그래픽화된 이미지라면 오류가 있을 수 있지만 단순히 한글 문서, 워드 문서 같은 수준은 거의 오류도 없죠. 이렇게 모아서 재정리를 하면 데이터를 다양한 관점으로 쉽게 확인할 수 있습니다.

물론 각 교구는 이미지를 만들어서 게시판에도 붙이고 포스터로도 출력하고 카카오톡이나 소셜 서비스에 공유하는 등 매우 유용하게 활용할 거예요. 하지만, 현장소식이라는 메뉴에 올리는 건 활용도가 제로에 가까울 겁니다. 구글 검색에 걸리지도 않을 거고, 내부에서도 당연히 검색이 안 될 테니까요. 아카이빙 가치 말고는 없다고 생각해요.

데이터 조금 만져서 목록 뷰 몇 개 만들었다고 거창하게 떠드는 건 우스운 일이지만, 관성으로 유지되는 일상을 잘 살펴서 조금 더 나은 방법을 만들 수 있는 테스트를 해 본 좋은 경험이었습니다.

원불교 교구 소식 방문하기