<가톨릭 굿뉴스> 사이트에서 성경 구절을 무작위로 가져와 출력하는 크롤러
가톨릭 신자들은 각종 대축일이나 기념일에 성경 구절 하나를 ‘포춘 쿠키’처럼 뽑아서 ‘하느님이 내게 주신 말씀이구나’ 하고 받아들이는 문화가 있다. 이를 ‘말씀 사탕’이라고 하는데, 이걸 CLI 환경에서 구현하려고 했다.
프로젝트를 진행하면서 중점을 두려고 했던 부분은 두 가지였는데, 첫번째는 TDD(Test-Driven-Development)였다. 틀리는 테스트를 먼저 개발하고, 테스트를 통과하기 위한 코드를 짜고, 테스트가 통과하면 다음 테스트를 개발하고… 를 반복하는 것이다. 장고가 아닌 순수 파이썬으로 TDD를 설계하는 게 생소하긴 했지만 나름 할만 했다. TDD가 본격적으로 굴러가기 시작하자 테스트 코드가 크롤러 코드를 100% 커버하는 것이 당연하게 되었다.
두 번째로 중점을 둔 건 ‘최대한 간단한 함수를 만들자’였다. 하나의 함수는 하나의 기능만 리턴하도록 하고, 함수 하나에 너무 많은 기능을 때려박으려 하지 않으려 했다. 그렇게 하면서 함수 하나가 최대한 적은 리소스를 잡아먹도록 설계했다.
순수 파이썬 + 순수 sqlite3 SQL 명령어를 이용해 한번 크롤링한 데이터는 DB에 넣고, 한번 DB에 들어간 데이터가 다시 호출되면 DB에서 꺼내 보여주는 식으로 설계했다. DB에서 호출되는 구절은 엄청나게 빠른 속도로 출력됨을 확인할 수 있었다.
똑같은 결과물을 C++로 설계하려고 한다. C++에 익숙해지고 나면 자료구조 / 알고리즘을 공부할 예정이다.