1. 앱 소개 1. 앱 소개간단한 프로젝트를 시작하려고 한다. 사용자는 앱에서 키워드를 등록해놓고 학교 공지사항에 키워드가 포함된 글이 올라왔을 때 알려주는 앱을 만들 예정이다. 키워드 등록 예시 (당근 마켓) 푸시알림 예시위 예시처럼 만들 예정이다. 기능만 구현하면 금방 만들 수 있을 거라 기대하고 있다. 만들게 된 계기는... 장학금 소식이나 신청 결과 같은 걸 기다리면서 공지사항을 하루에도 몇 번씩 새로고침하곤 했었는데 이걸 해결해보고자 시작하게 됐다. (너무 귀ㅊ ..) 그리고 이전에 우리 학교 학생들이 사용할 수 있는 스터디 팀원 모집 앱을 만들었는데 이 기능을 같이 넣어주고 싶었지만 알림에 대한 지식이 없어서 못했었다. 그래서 그 기능만을 넣은 앱을 만들어 보려고 한다! 2. 방법 고민해보기학교 공지사항 크롤링내가 예전에 만든 앱은 공지사항을 앱 내에서만 확인할 수 있었다. 그니까 공지사항을 확인하려면 결국 앱을 켜야 함. 나는 앱을 종료한 상태에서 푸시 알림이 자동으로 날아오기를 원했다. 푸시알림을 사용한 대화 서비스푸시 알림은 이전에 대화 기능을 넣으면서 사용해본 적이 있다. 위 그림은 예전에 만들었던 앱의 실제 실행화면이다. 디자인을 어떻게 해야 할지 모르겠어서 카카오톡 보고 만들었는데 플레이 스토어에 등록 안 했으니까 고소 안 먹겠지...? 아무튼 이때 사용한 것이 파이어 베이스의 'Cloud Messaging'이다. 구글에서 푸시 알림을 쉽게 주고받을 수 있도록 제공하는 기능이다. 한 번 사용해봤으니 쉽게 구현할 수 있겠다!라고 생각했었다. "어 근데... 크롤링을 하려면 앱이 켜져있어야 하는데...?" "푸시 알림은 스마트폰에서 스마트폰으로 보내야 하는데 알림은 어떻게 수신하지..?" 서버랑 알림에 대한 개념이 없어서 혼란스러웠다. 그래서 한 일주일 동안 이것저것 검색해보고 책을 뒤져보았다. 3. 전체적인 구조중간에 공지사항을 가져와서 파이어 베이스로 넘겨줄 서버가 필요했다. 리눅스 서버/클라이언트에 대해 공부를 해보았는데 와 이걸 다 구축해서 사용하는 건 맨 처음에 말한 '간단한' 프로젝트에 어긋나다고 생각했다... 그렇다고 돈을 주고 서버를 이용하기엔 아직 학생이니까... 내 노트북을 희생하기로 했다. ①번 과정에서는 학교 홈페이지가 동적 페이지여서 셀레니움을 사용하기로 했다. 웹에 대한 지식도 없어서 이놈의 빌어먹을 동적 페이지 때문에 고생한 거만 생각하면... 하... 물론 셀레니움도 뭔지 몰라서 공부했다. 모르는 게 너무 많다.. 자바로 셀레니움(Selenium)을 써보자 :: 크롤링 1. 셀레니움이란? 2. 셀레니움 사용법 2-1. Chrome 버전 확인 2-2. Chrome WebDriver 다운로드 3. 웹페이지 분석 4. 코드 작성 5. 크롤링 5-1. 셀레니움으로 크롤링을 하는 이유 5-2. 정적 페이지? 동적 페이지?.. todaycode.tistory.com ②번 과정에서는 파이썬을 이용하여 공지 제목을 푸시 알림으로 보내주려고 한다. 파이어 베이스를 안드로이드 스튜디오에서만 사용할 수 있는 줄 알았는데 아니었다. 자바가 익숙해서 이클립스에서 해보려고 했는데 잘 안돼서 파이썬으로 해봤는데 역시 파이썬이 간단하긴 한 것 같다. ③번 과정은 이전에 사용했던 코드를 그대로 사용하면 되니 문제가 없을 것 같다! 아싸! 이 방법에 대해서도 추후 기록을 남길 예정이다. 4. 계획앱에서 서버로 토큰 값을 보내는 방법이랑 토큰, 사용자가 등록한 키워드는 어떻게 관리할 건지 토큰을 그대로 노출하는 것은 위험하다고 들었는데 이를 안전하게 사용할 수 있는 방법이 무엇인지도 공부를 할 예정이다. 구상을 다 완벽하게 해놓고 하면 좋겠지만 일단 만들어보면서 문제점을 보완하려고 한다. 목표는 2주!!! 2주 안에 앱 만들기!!!! 1월 13일까지 다 만들어서 당당하게 포스팅을 하고 싶다. 파이팅!!! 썸네일 아이콘 출처 Icons made by Freepik from www.flaticon.com |