프론트엔드 빠르게 훑어봤으니 백엔드로 넘어가는 구간.
3주차에서 파이썬을 배웠다. 간단하고 직관적인 언어라고 하는데 내취향이다 ㅎㅎ
변수: a=3, let같은거 없이 깔끔하다.
리스트형 딕셔너리형은 자바스크립트와 동일하다.
함수: def f(x): return ... 이런식. 자바스크립트에서는 function f(x){return ...}
조건문: if, else 쓰는거 직관적이다.자바스크립트와 다른점이 있다면 {} 같은게 잘 없는 듯하다.
반복문: for X in Y. Y라는 자료안에 쉼표로 구분되는 각각의 값들을 X로 정의한다~ 정도로 이해된다. 예를 들어 for person in people에서 people이 리스트형이고 person이 딕셔너리형일때 people[0]도 people[1]도 people[2]도 각각이 다 person라서 person이나 people이나 같은거 아닌가 싶은데 person이 딕셔너리형이라 person['key']로 people안의 특정 key를 따로 구별해서 묶어줄 수 있는 것 같다.
파이썬은 다 좋은데 '들여쓰기'라는 함정이 존재했다..!
코드 정렬로도 해결이 안되서 Tab이 필수였다..ㅎ
<크롤링하기>
requests와 bs4 패키지를 설치해서 reauests 로는 API값을 가져오고 bs4로는 웹크롤링을 했다. 웹크롤링은 점점 타깃 데이터를 좁혀가는 과정이다. url입력은 내가 크롤링할 페이지로 좁히고, soup.select로 가져갈 데이터들의 공통된 코드를 써주고, soup.select_one으로 딱 하나의 주제 (e.g. 영화제목, 별점 etc.)를 지정해서 가져온다. soup.select_one만으로 깔끔하게 가져오면 좋겠지만 그러지 않을 때도 있어서 그럴땐 뭐다? 구글링!! 힌트 받은게 거의 밥상을 다 차려놓은거라서 strip()으로 title = a.text.strip().strip('19금').strip() 작성할 수 있었다. 답안을보니 title = tr.select_one('td.info > a.title.ellipsis').text.strip()게 되어있던데 text.strip()으로 더 깔끔하게 strip()의 반복없이 쓸 수 있어서 앞으로는 일단 구현을 할 수 있게되면 남는 시간에 어떻게 더 깔끔하게 쓸 수 있을지에 대한 부분도 구글링을 해봐야겠다. 아직 코드 구글링에 익숙하지는 않았으니까 차려진 밥상 엎지 않은 것만으로도 감사하다 :)
<데이터베이스>
DB역시 컴퓨터라는 인식이 있었는데 실체는 프로그램이라고 한다. db는 SQL 방식과 NoSQL 방식이 있고 여기서 배워볼 건 mongoDB라고 하는 NoSQL 방식의 db인데 클라우드 형식의 mongodb atlas을 이용했다. 파이썬 파일에 POST방식으로 데이터 저장하는 연습을 했는데 의외로 저장 하기, 한개 찾기, 여러개 찾기, 바꾸기, 지우기 코드들은 2,3줄 정도로 간단해서 쉬운가 싶었지만 HTML파일과 파이썬 파일을 오가면서 작성해야 한다는게 지금 당장은 복잡해보였다. 복잡한 내용은 하나씩 쪼개서 이해할 수 있는 단위로 먼저 이해하고 그 연결성을 이어나가면 된다. 파이썬 코드를 먼저 작성하고 HTML파일로 넘어와서 POST방식의 data_give나 success에 function(response)를 처음에 바로 이해하지 못했지만 백엔드를 다룰땐 단순히 변수이름을 기억하는 걸 넘어서 과정의 단계들을 순서대로 기억하는 방향으로 접근해야 이해하기 수월하겠다 생각했다.
4주차는 1-3주차 총정리 겸 프로젝트 처음 파일 생성부터 db에 데이터 저장하기까지 진행하면서 특히 3주차에 배운 것들을 반복했다.
따라서 설치할 패키지 3+2 가지 (3must, 2optional): Flask (서버), pymongo, dnspython (db), + requests, bs4 (크롤링)
하루에 한주차씩 배우니 웹페이지 만드는 과정을 전부 다 기억하지는 못해도 큰틀에 대한 개념이 잡히고 새로운 지식들로 즐겁다. 코딩을 시작하기 전에는 내가 일주일안에 공부해서 사전시험 통과 할 수 있는건가 베이스가 0인데 미리 여유있게 공부하고 항해99에 합류하는게 맞지 않나 불확실성에 막연히 걱정했는데 생각이 많아질 땐 역시 행동하는게 답이다. 내가 찾아보고 생각할 수 있을만큼 알아봤다면 해낼 수 있는 방법을 찾고 시작하는게 아니라 뭐든 해내겠다는 마음을 가지고 일단 시작하면 방법이 보이고 불안은 걷히면서 자신감이 생긴다. 아직 너무 부족하지만 부족함에 대한 고민에 에너지 쓰지말고 부족함을 채우는데 에너지 쓰자!