본격적으로 항해99를 시작하기 전, 사전강의로 4종의 강의를 제공받았다.
그 중 2회독 필수인 '웹개발종합반'강의에 대한 회고록을 작성하려한다.
배운 것을 정리하는 위주로 글 작성.
3주차에선 Python을 주로 다뤘다.
Python은 잘 다뤄 보지 않아 새로 배운다는 느낌으로 공부했다.
파이참과 PymongoDB를 활용해 실습을 진행했다.
데이터베이스 : 잘 저장하고 잘 찾기 위해서. Index라는 순서로 데이터가 정렬. SQL과 No-SQL.
SQL(RDBMS) : 엑셀처럼 행/열로 데이터를 정리. 정형화. 일관성. 분석 용이. 중간에 행/열 추가는 힘듬
No-SQL : 딕셔너리 형태로 데이터 저장. 자유로운 형태. 유연성. 일관성 부족.
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' 클릭.