그저 내가 되었고

항해99) 웹종 3주차 DB 본문

개발/항해99 9기

항해99) 웹종 3주차 DB

hyuunii 2022. 9. 5. 08:33

* 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에 연결되고, 저장이든 찾기든 여튼간에 작업할 수 있는겨.