그저 내가 되었고
항해99) 웹종 3주차 DB 본문
* DB개괄
- DB는 왜 씀? 나중에 잘 찾기 위해서(우리 눈에 보이진 않지만, 사실 DB에는 index라는 순서로 데이터들이 정렬되어 있답니다!)
- DB의 두 가지 종류

RDBMS(SQL) 행/열의 생김새가 정해진 엑셀에 데이터를 저장하는 것과 유사합니다. 데이터 50만 개가 적재된 상태에서, 갑자기 중간에 열을 하나 더하기는 어려울 것입니다. 그러나, 정형화되어 있는 만큼, 데이터의 일관성이나 / 분석에 용이할 수 있습니다. ex) MS-SQL, My-SQL 등
No-SQL 딕셔너리 형태로 데이터를 저장해두는 DB입니다. 고로 데이터 하나 하나 마다 같은 값들을 가질 필요가 없게 됩니다. 자유로운 형태의 데이터 적재에 유리한 대신, 일관성이 부족할 수 있습니다. ex) MongoDB
- DB의 실체?
DB의 실체는 무엇일까요? 특별한 컴퓨터? NOPE!
아주 간단하게, 우리가 쓰는 프로그램과 같은 것이랍니다. 즉, 내 컴퓨터에 게임도 설치하고, PPT도 설치하고, DB도 설치할 수 있는 것이죠. 유저가 몰리거나 / DB를 백업해야 하거나 / 모니터링 하기가 아주 용이하기 때문이죠!(꿀팁 - 요새 트렌드는 클.라.우.드 !) 그래서, 우리도 최신 클라우드 서비스인 mongoDB Atlas를 사용해 볼 것이랍니다!
* mongoDB 연결하기
1) mongoDB - Atlas 연결
pymongo 라이브러리의 역할: 예를 들어, MS Excel를 파이썬으로 조작하려면, 특별한 라이브러리가 필요하지 않겠어요? 마찬가지로, mongoDB 라는 프로그램을 조작하려면, 특별한 라이브러리, pymongo가 필요하답니다! |
1) 패키지 설치하기: pymongo, dnspython
2) moongoDB Atlas 화면에서 application Connect하기
3) pymongo로 조작하기
- pymongo 기본 코드
from pymongo import MongoClient
client = MongoClient('여기에 URL 입력')
db = client.dbsparta
4) 잘 연결됐는지 테스트해보기
doc = {
'name':'bob',
'age':27
}
db.users.insert_one(doc)
5) 다시 Cluster0의 Collections를 확인하면! 데이터가 잘 들어온 것을 체크 가능.
* pymongo로 DB조작하기
- [코드스니펫] 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'})
그리고 pymongo 기본 세팅 코드가 있음.👇🏻👇🏻
from pymongo import MongoClient
client = MongoClient('mongodb+srv://test:sparta@cluster0.u33zjtg.mongodb.net/Cluster0?retryWrites=true&w=majority')
db = client.dbsparta
위의 쟤를 꼭 적어줘야됨. 그러면 db에 연결되고, 저장이든 찾기든 여튼간에 작업할 수 있는겨.
'개발 > 항해99 9기' 카테고리의 다른 글
항해99) 웹종2주차 서버-클라이언트 통신~Ajax (0) | 2022.09.05 |
---|---|
항해99) 웹종 4주차 [화성땅 공동구매] POST 연습 (0) | 2022.09.05 |
항해99) 웹종 3주차 웹스크랩핑(크롤링) (0) | 2022.09.05 |
항해99) 웹종 3주차 Python (0) | 2022.09.05 |
항해99) 웹종 2주차 jQuery+Javascript 연습 & jQuery+Ajax 연습 (0) | 2022.09.05 |