향해99 사전스터디 회고록 - 웹개발 종합반 3주차

박찬웅·2023년 2월 2일
0

항해99

목록 보기
3/105
post-thumbnail
  • 대부분 배운 내용은 스파르타코딩클럽에 있는 강의 노트를 참고하였음을 알립니다.

웹개발 종합반 3주차

수업 목표

  1. 파이썬 기초 문법을 안다.
  2. 원하는 페이지를 크롤링 할 수 있다.
  3. pymongo를 통해 mongoDB를 제어할 수 있다.

1. Python

배운 것

파이썬을 배우기 전에 파이썬이랑 Git Bash(mac 사용자는 해당x)를 설치를 하였다. 또한 2주차에 배웠던 오픈API 붙혀보기도 마지막으로 복습했다. 추가적으로 이미지를 붙히기 기능인 repeat 함수를 써서 별 붙히기도 해 보았다.
그런 다음에 본격적으로 파이썬을 배우기 시작했고, 지금까지는 html파일이 아닌 py파일로 작성하게 된다. 파이썬은 이전에 배웠던 javascript랑 다르게 표시가 다를뿐 문법 전반적으로 유사하였다. 여기서 배운건 변수 선언, 계산, 함수, 리스트, 딕셔너리형 등등을 주로 배웠고, 이외에도 많은 문법이 있기에 추가적으로 필요한 문법은 구글링을 해서 찾으면 된다고 말씀해 주셨다. 추가적으로 파이썬에는 여러 라이브러리인 패키지들이 있는데 앞으로 본격적으로 파이썬을 사용할때 필요한 패키지들을 설치하고 진행하면 된다. 여기서는 외부 라이브러리를 가져다 써야하는 requests 패키지를 다운 받아서 서울 미세먼지API를 가져와다 파이썬 리스트, 딕셔너리형 문법으로 지역과 미세먼지 수치를 출력해보는 것을 하였고, if문을 사용해서 미세먼지 수치가 일정 수치 넘은 지역만 나타내게 하는 것도 배웠다.
이 파이썬을 통해서 앞으로 적용 할 수 있는 것은 API를 가져와다 적용 할 수도 있고, 이 뒤에 나오는 웹 크롤링 할 때와 momgoDB에서도 사용이 되며, 4~5주차에서 배우는 서버를 만드는데에도 사용 할 수 있다.

느낀 점

파이썬 문법 자체는 이전에 맛보기로 공부 한 전적이 있어서 처음 배워봤던 자바스크립트보단 쉽게 느껴졌다. 그리고 무엇보다도 파이썬은 다른 언어보단 매우 간결해서 쉽게 적응하였다. 다만 파이썬이 API를 가져다 써서 적용할 수 있는 방법을 알게 되었다.

어려웠던 부분

어려웠던 부분은 딱히 없었다. 이전에 파이썬은 배웠기도 했고 API를 가져다 쓰는 것도 역시 2주차에 배웠기 때문에 무난하게 공부하였다.

2. 크롤링(웹스크래핑)

배운 것

지금까지는 API에서 가져와다 썼지만 여기서는 웹페이지에 있는 웹스크래핑을 이용하였다. 웹스크래핑을 하기전에 requests 뿐만이 아니라 웹 크롤링 하는데 필요한 bs4라는 패키지도 추가로 설치하였다. 이번에 크롤링을 해 본것은 네이버영화에 있는 영화순위 페이지에 가서 순위, 영화제목, 별점 이렇게 3가지를 출력해보는 작업을 하였다. 크롤링을 하기 위한 select(여러개) / select_one(한개)의 사용법을 익혀서 적용을 하였다. 영화제목을 출력 하기 위해 우선 아무 제목 우클릭으로 검사를 해서 copy selector를 이용해 복사를 해서 구조가 어떻게 되어있는지 보고 적용 하는 방법도 배워, 앞부분 같은 부분은 select로 정의하고, 뒷부분은 select_one을 이용해서 정의를 해준다. 그런다음 나머지는 2주차에 배웠던 ajax를 이용해서 원하는 부분을 출력을 해준다. 다만 그냥 출력을 하면 공백이 엄청 많다는 걸 알 수 있기에 조건을 넣어서 is NOT None를 사용해서 공백을 깔끔히 지워 원하는 정보를 깔끔하게 나타낼수 있다.
마지막으로 3주차 최종숙제로 지니를 크롤링을 해서 순위, 노래제목, 가수명을 크롤링을 하였다.

느낀 점

크롤링을 하면서 파이썬이 할 수 있는 기능을 추가적으로 배웠으며, 크롤링을 하기 위한 선택이랑 순서를 적용을 해서 내가 원하는 것을 뽑아서 파이썬에 출력 할 수 있는 것을 배워서 새로웠고, 앞으로 크롤링을 이용하면 여러가지 정보를 추출 할 수 있겠구나 라는 생각을 하게 되었다.

어려웠던 부분

개인적으로 이번 3주차 중에서 가장 어려웠던 부분이였다. 가장 햇갈렸던 부분은 select 정의 적용 하는것이 상당히 어려워서 이 부분을 집중적으로 고민해보았던 부분이였다. 또한 숙제에서 strip()함수를 추가로 배웠는데 옆에 여백이 있다던가, 다른 글씨도 나온다던가 하는 경우가 있는데 strip()함수를 사용하면 깔끔하게 제거 할 수 있다는 것을 알게 되었다. 그리고 text[0:2]를 이용해서 두칸씩 건너뛰기 문법을 추가적으로 배워서 뛰엄뛰엄 있던것을 해결을 하였다.

3. mongoDB

배운 것

먼저 db의 대한 개념을 설명 했고, SQL과 NoSQL의 차이점을 배웠다. SQL은 수많은 데이터를 만들어서 조회와 분석을 할 때 유용하고, NoSQL은 딕셔너리 형태로 데이터를 저장해두는 DB의 역할을 한다. 과거랑 다르게 이마저도 설치하는게 아니라 클라우드로 저장 할 수 있는 것도 생겼다. 따라서 우리가 앞으로 배울 것은 NoSQL의 하나인 mongoDB를 통해서 클라우드를 통해서 데이터를 저장하고 추출해서 파이썬에다 적용을 하는 것을 배웠다.
따라서 momgoDB를 운영하는 Atlas을 가입하고 여러가지 사전 설정을 하였다. 그런 다음 DB에 연결 하기 위해서 파이썬에 가서 pymongo, dnspython 패키지를 추가로 설치를 하고 나의 mongoDB에 적용하기 위해서 내 데이터베이스 주소를 적용했고 이제 본격적으로 파이썬 코드를 통해서 여러가지 DB문법을 배웠다.
DB문법도 역시 엄청난 많은 문법이 있지만 대표적으로 전체 조회, 하나 찾기, 여러개 찾기, 바꾸기, 지우기 문법을 역시 정리해서 앞으로 필요 할때 가져와다 사용 하면 된 다는 것을 배웠다. 그런 다음 이전에 크롤링 했던 네이버 영화 순위를 추출해서 mongoDB에 저장하는 방법도 배웠고 그 저장된 데이터를 토대로 특정 영화의 평점을 조사한다던가, 특정 영화의 평점을 변경하거나, 특정 영화를 아예 삭제 하는 방법을 터득했다.

느낀 점

이전에 나는 SQL을 배운적이 있었고 그에 따라 select, update, delete는 많이 익숙해서 NoSQL도 약간의 차이는 있었지만 금방적으로 적응 할 수 있었다. 이전 크롤링 부분에서 상당히 어려웠었는데 다행히 DB파트는 재미있게 해 본것 같다. 아마도 예전부터 뭔가를 데이터 조회 하는 것을 좋아해서 그런가 생각한다.

어려웠던 부분

바로 직전 크롤링 부분이 상당히 어려웠었고 그리고 SQL를 한번 배워본 입장으로서는 MongoDB는 어렵지 않았다. 다만 초반에 여러가지 설정 하는 부분은 상당히 번거로웠던거랑 크롤링을 이용해서 DB에 적용하는것은 살짝 어려웠다. 그것만 빼면 무난하게 진행해서 다행이였던것 같다.

profile
향해 13기 node.js 백앤드

0개의 댓글