항해99 사전과정 웹개발종합반 회고록 #3

김춘복·2023년 2월 1일

웹개발종합

목록 보기
3/5

스파르타코딩클럽 웹개발종합반 강의 후기

본격적으로 항해99를 시작하기 전, 사전강의로 4종의 강의를 제공받았다.
그 중 2회독 필수인 '웹개발종합반'강의에 대한 회고록을 작성하려한다.
배운 것을 정리하는 위주로 글 작성.


3주차

3주차에선 Python을 주로 다뤘다.
Python은 잘 다뤄 보지 않아 새로 배운다는 느낌으로 공부했다.
파이참과 PymongoDB를 활용해 실습을 진행했다.

Database

  • 데이터베이스 : 잘 저장하고 잘 찾기 위해서. Index라는 순서로 데이터가 정렬. SQL과 No-SQL.

  • SQL(RDBMS) : 엑셀처럼 행/열로 데이터를 정리. 정형화. 일관성. 분석 용이. 중간에 행/열 추가는 힘듬

  • No-SQL : 딕셔너리 형태로 데이터 저장. 자유로운 형태. 유연성. 일관성 부족.

pymongoDB

  • 이 강의에서는 DB로 MongoDB Atlas를 사용.
    pymongo dnspython 패키지 설치 필수!!
from pymongo import MongoClient
client = MongoClient('여기에 mongoDB에서 제공하는 URL 입력')
db = client.dbsparta

# 저장 - 예시 변수에 딕셔너리 만들고 변수로 저장. POST 요청.
doc = {'name':'bobby','age':21}
db.users.insert_one(doc) 			# users라는 컬렉션에 doc 데이터를 db에 넣음

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

# 여러개 찾기 - 예시 ( _id 값은 제외하고 출력) find(여기에 조건추가해서 찾을수도). GET 요청.
all_users = list(db.users.find({},{'_id':False}))
for user in all_users:
    print(user)

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

# 지우기(삭제) - 예시. POST 요청.
db.users.delete_one({'name':'bobby'})

기타

  • .strip() 붙이면 여백 제거해서 깔끔하게 나옴.

  • .text[0:2] 붙이면 텍스트만 앞에서 2글자만 끊기.


실습내용 & 어려웠던 점

  • 파이썬 실습. 네이버 영화 제목 평점 이미지 크롤링.

  • 파이썬 실습. 지니뮤직 순위 곡제목 가수명 크롤링.

  • mongoDB와 파이참 연결에 문제가 생겨 1시간 넘게 해결책 구글링.

    문제점과 추정 원인
    파이참과 mongoDB 연결 시 아래의 에러코드 발생.
    pymongo.errors.operationfailure: user is not allowed to do action
    계정 만들 때 Test계정 설정 시 실수로 문제가 발생한 것으로 추정.

    해결책
    MongoDB Atlas내의 'Database Access'에서 test 계정의 actions를 edit.
    'Database User Privileges'에서 'Built-in Role'를
    'Read and write to any database'로 설정 후 'Update User' 클릭.

profile
Full-Stack Dev / MLOps

0개의 댓글