웹개발 3주차 개발일지

박종성·2023년 2월 14일
0

<웹개발 3주차 배운내용>
Python(파이썬), 크롤링, mongo DB

  • 직관적이고 쓸모가 많은 파이썬!
  • 파이썬을 통해 서버를 만들 것!
  • 다 만들어 놓은 정보(HTML, CSS, JS)를 누군가 요청을 했을 때 주어야 하는데, 주는 역할을 하는 서버를 파이썬이라는 언어를 통해 만들 예정
  • 만든 데이터를 몽고 DB 라는 데이터베이스에 넣어 볼 것!
  1. Python(파이썬)
  • 파이썬을 설치한다는 것의 의미 : 파이썬을 알아들을 수 있도록 번역팩을 설치하는다는 의미
  • 파이썬 문법으로 된 것을 101001과 같은 언어로 변환해 줄 수 있도록 설치하는 것

< 파이썬의 문법>

  • 파이썬의 문법은 굉장히 직관적!

  • “print”는 ()에 있는 것을 터미널에 보여주세요 의미

  • let = a 처럼 지정하지 않고 바로 a = 2 처럼 사용

  • 대부분은 자바스크립트와 비슷함

  • 함수는 자바스크립트와는 조금 다르게 생김

  • “def : 함수를 선언할게” 라는 뜻
    def hey(): ← 이게 바로 이 함수의 내용물이다 라는 뜻

  • 콜론(:)을 하고 탭을 반드시 해야함. 탭을 하는것이 파이썬에서는 내용물이구나 라고 인식함
    탭이 파이썬에서는 꼭 지켜져야하는 룰로 박아두었음.

  • return: 파이썬에서 함수의 결괏값을 돌려주는 명령어. 함수는 입력값을 받아 어떤 처리를 한 후에 결괏값을 돌려주는 형태.
    return이 있으면 함수를 그 값으로 변신시킨다로 생각.

<반복문>
for a in ages :
→ ages의 있는 값들을 하나하나씩 가져와서 a로 넣고 그 a를 밑에서 가져다 쓰자 라는 의미
즉, ages의 값이 하나하나씩 찍힘.

반복문과 조건문의 응용

ages = [5,10,13,23,25,9]

for a in ages:
    if a > 20:
        print('성인입니다')
    else:
        print('청소년입니다')

파이썬의 라이브러리

  • 프로젝트별로 라이브러리를 따로 담아두면 좋음

  • 따로 담아두면 업/다운그레이드도 훨씬 편함. 이를 가상환경이라고 부름 , 라이브러리를 담아두는 폴더라고 생각하면 됨.

  • fetch의 역할이 파이썬에서 requests 의 역할.

  • requests의 라이브러리를 만든 사람의 document를 가보면 어떻게 써라 라는것이 써있음

  • 비주얼스튜디오코드를 오랜만에 접속했을 때 확인 할 것
  1. 오른쪽 아래 인터프리터가 venv:venv로 잘 잡혀있는지
  2. 터미널 - 새 터미널 눌러주기 (venv) 로 떠야함

크롤링

  • 크롤링을 위한 기본 코드

import requests
from bs4 import BeautifulSoup

headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get('https://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=pnt&date=20210829',headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')

코딩 시작

크롤링이란? 웹에 접속해서 데이터를 솎아 내어 가지고 오는 것

  • 라이브러리가 2개 필요
  1. 웹에 접속하는 친구 = requests
  2. 솎아 내는 친구 = beautifulsoup

데이터베이스를 하는 이유

  • 데이터베이스의 역할은 잘 가지고 오는것에 있다
  • 저장해놓은 데이터를 잘 가지고 오는것이 데이터베이스의 역할
  • 업체들이 데이터베이스를 홍보할 때 장점을 얘기하는 이유!
  • SQL 과 NoSQL
    SQL : 칸이 정해져 있음. 이미 정해진 칸에다가 데이터를 넣는 것 (엑셀이라고 생각하면 됨)
    틀이 정해져있어 사람이 실수할 일이 없음. (대기업에서 사용하는게 좋음)
    조금 더 빠르게 데이터를 찾을 수 있음

NoSQL : 정형화된 틀이 있는게 아닌, 데이터를 내 마음대로 저장을 해놓을 수가 있음.(mongoDB)
비즈니스의 유연성을 크게 담보함(스타트업에서 사용하는게 좋음)
비즈니스가 바뀔 수 있는 즉, 정해진 틀이 있는게 부적합한 곳에서 사용하기 좋음

DB의 실체 : 엑셀에다가 데이터를 넣는것과 비슷함
데이터를 잘 쌓고 잘 가져가게 하는 프로그램

요새는 인터넷에 있는 컴퓨터에 데이터를 올려 놓는다 → 클라우드 환경에 올려 놓는다

클라우드 환경에 있는 데이터를 빌려와서 사용

최신 클라우드 서비스인 mongo DB Atlas 사용

mongo DB는 파이썬에서 연결한다.

파이썬은 내컴퓨터에, mongo DB는 인터넷에 있으므로,
내 컴퓨터에서 데이터를 저기 있는 mongo DB에 쏴주거나 가져올 수 있음.

mongo DB를 조작하려면 2개의 라이브러리 필요
pymongo, dnspython

pymongo 에서 데이터를 가지고 오는 방법은
1. 다 가지고 오거나 → for a in all users
2. 하나만 가지고 오거나 → db.users.find_one

pymongo 코드요약

# 저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)

# 한 개 찾기 - 예시
user = db.users.find_one({'name':'bobby'})

# 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
all_users = list(db.users.find({},{'_id':False}))

# 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})

# 지우기 - 예시
db.users.delete_one({'name':'bobby'})

mongo DB 사용을 위한 코드

from pymongo import MongoClient
client = MongoClient('mongodb+srv://sparta:test@cluster0.n9rnbd1.mongodb.net/?retryWrites=true&w=majority')
db = client.dbsparta

<3주차 나의 생각>

2주차에 비하면 라이브러리가 간단하고 편했지만 그래도 스스로 코드를 입력하려고 하면 어려움이 있는 3주차였다. 반복해서 숙지 및 연습이 필요할 것으로 생각된다.
자바스크립트와 파이썬의 문법이 다른 점 때문에 더욱 헷갈리는 것 같다.

profile
뉴진스의 하입보이요

0개의 댓글