항해 99 챕터1. 웹개발 미니 프로젝트
제로웨이스트
그렇다면 우리는 이러한 운동을 어떻게 알아보고 어떻게 동참할 수 있을까?
방법은 간단하다 이미 우리 사회에 깊숙히 녹아든 SNS를 이용하면 된다. 이미 아이스 버킷 챌린지와 같은 많은 운동, 챌린지들이 이런 소셜네트워크를 통해 전파 되고 진행되어왔다. 제로웨이스트 운동도 별반 다를게 없다.
내가 실천한 제로웨이스트를 해쉬태그만 하면 되니까!
인터넷은 정보의 바다이다. SNS는 그 속에서 정보를 주고 받는 교류의 현장이라 할 수 있다.
수 많은 정보가 오고가는 만큼 그 안에서 내가 보고 싶은 정보, 필요한 정보만 볼 수 있는 방법이 필요하다.
프로젝트_제로웨이스트 는 인스타그램 기반으로 그 안에서 제로웨이스트 태그가 달린 게시물 만을 추려서 보여준다. (우리는 정보의 1차 필터링을 생략할수 있게 된다!) 물론 우리가 모아온 관련 게시물 속 홍보글 같은 게시물은 가볍게 넘어가주면 된다.
프로젝트_제로웨이스트 에서 추려놓은 게시물들을 보면서 마음에 드는 게시물이나 나중에 확인하려는 게시물에 마킹을 해놓을 수 있다. 그렇게 하면 자신의 아이디로 로그인된 개인화면에서 해당 게시물을 모아볼수 있고 간단한 메모도 적을 수 있다.
기술
해당 프로젝트에는 직접 CSS해보고 싶어서 부트스트랩 같은 것들을 사용하지 않았습니다.
파이썬 : 프로젝트_제로웨이스트 의 서버는 FLASK를 통해 돌아간다.
DB를 구축하는 코드 역시 파이썬으로 작성했다.
셀레니움: 우리는 DB구축을 위해 인스타그램 게시물을 미리 크롤링 해오기로 했다.
하지만 인스타그램은 JS로 구축되어 일반적인 bs4 방식으로는 크롤링 할 수 없다.
때문에 셀레니움으로 자동화 봇을 만들어 타켓페이지가 전부 로딩이 되면 bs4를 이용해 크롤링 해주기로 했다.
find elements 와 send_keys를 이용해 로그인을 자동화 해줬고 time을 이용해 크롬 로딩으로 인한 지연에 유휴시간을 안배해 줬다. 이후에는 우선 썸네일 사진과, 현재 로딩된 게시물의 전체 url을 긁어와
url을 사용가능한 url로 재가공 해준뒤 for문을 돌면서 가져온 url 하나 하나 마다 접근해줬다.
그렇게 하나의 게시물에 접근한뒤 bs4로 긁어오고 time으로 시간안배를 해주고 다음 게시물로 넘어가는 식으로 db를 구축 했다.
JWT토근: 로그인, 회원제를 도입 하는데 있어서 JWT토근 방식을 이용해 줬다.
https://www.notion.so/cpt1-pt1-67ba9ebaffa443a59925e5c1f67f9611
위 노션파일에 JWT가 무엇인지, 토큰과 세션에 관한 내용들을 필자가 간략하게 정리해 놓았다.
후기