소프트웨어 전문지 마이크로소프트웨어 395호는 데이터과학을 주제로 담았습니다. 데이터과학에 대한 개론, 학습 방법, 실무 적용 사례, 학계 등 마소 395호 주요 기사들을 IT조선 독자에게도 소개합니다. [편집자주]

인터넷의 등장으로 원하는 정보를 쉽게 얻을 수 있게 됐다. 그뿐만 아니라 필요한 정보를 넘어선 방대한 정보가 쌓였고, 지금 이 순간에도 쌓이고 있다. 이제는 정보를 축적하거나 아는 것보다 방대한 정보 사이에서 내가 원하는 적절한 정보를 찾는 것이 중요해졌다. 다행히 스마트폰과 다양한 애플리케이션의 등장으로 이런 요구를 적절히 충족시켜주고 있다.

하지만 내가 원하는 딱 알맞은 정보를 찾기에는 여전히 부족하다. 내게 알맞은 정보를 얻으려면 어떻게 해야 할까? 방대한 정보의 바다에서 내가 원하는 정보만 싹 긁어오거나, 긁어온 데이터를 적절한 형식으로 보여주도록 내가 직접 만들어야 하지 않을까?

이 글에서는 특정 웹 페이지에서 원하는 정보를 주기적으로 검색하고, 새로 업데이트되는 정보를 메일로 보내주는 프로그램을 만들어본다.

기상청에서 날씨 정보 가져오기, 영화 상영 정보 가져오기 등은 이미 스마트폰 애플리케이션이나 텔레그램 채널 등에서 사용되고 있다. 이 글에서는 조금 전문적이고 사업적으로 도움이 될 만한 정보를 다룬다. 바로 나라장터에서 입찰 공고 내용을 가져오는 것이다.

나라장터는 대한민국 모든 공공기관에서 발주하는 입찰 정보가 등록되는 곳이다. 공공기관에서 발주하는 사업에 참여하려면, 반드시 이곳을 거쳐야 한다. 나라장터에는 하루에도 수많은 입찰 공고가 올라온다. 그러다 보니, 주기적으로 확인을 해도 다 확인하기 힘들 때도 있다. 그래서 원하는 단어가 포함된 공고를 확인하고, 해당 내용을 메일로 보내주는 프로그램을 만들어본다.

기능 명세서. / 마이크로소프트웨어 395호
기능 명세서. / 마이크로소프트웨어 395호
필요한 기능에 대한 정의가 끝났으면, 다음으로 어떤 도구를 사용해서 구현할지 생각해야 한다. 일반적으로 내가 익숙한 개발 도구, 일정 그리고 구현하려는 기능을 지원하는 라이브러리의 유무 등을 따진다. 지금은 일정이나 다른 여건을 생각할 필요는 없다. 다만 누구나 손쉽게 접할 수 있고, 배우기 쉽고 자료를 얻기 쉬운 개발 언어를 선택해야 한다.

그래서 파이썬을 언어로 정하고, 필요한 외부 라이브러리 일부를 사용해서 프로그램을 개발할 것이다. 개발을 시작하기에 앞서 파이썬의 어떤 라이브러리를 사용해서 필요한 기능을 구현할지 정리해보자.

기능을 구현할 파이썬 라이브러리. / 마이크로소프트웨어 395호
기능을 구현할 파이썬 라이브러리. / 마이크로소프트웨어 395호
기능과 사용할 라이브러리가 정리됐으니 이제 전체 프로그램 개발을 위한 개요를 확인해보자.

웹 스크래핑 프로그램 개요. / 마이크로소프트웨어 395호
웹 스크래핑 프로그램 개요. / 마이크로소프트웨어 395호
먼저 스크래핑할 웹 사이트를 선정하고 분석한다. 다음으로 분석한 데이터를 토대로 스크래핑 프로그램을 구현한다. 마지막으로 스크래핑 프로그램 결과를 메일로 수신받는 기능을 추가한다. 전체 개발 과정은 복잡하지 않다. 하나씩 차근차근 기능을 구현해보자.

심경섭 필자의 ‘파이썬으로 특정 키워드 사업 공고 알림 받기’에 대한 자세한 내용은 ‘마이크로소프트웨어 395호(https://www.imaso.co.kr/archives/4654)’에서 확인할 수 있다.