토이프로젝트에서 사용하려는 DB(데이터베이스)들이, 데이터 변경이 자주 없는 경우로 판단하여, pymongo를 사용하기로 하였다.
Pymongo란?

db는 엑셀파일의 이름. collection은 시트에 해당한다고 봐도 무방하다.
ex) "kakaotalk" 이라는 DB 하위에, "user"와, "message"이라는 collection이 있을 수 있음
ex) "baemin" 이라는 DB 하위에, "user"와, "restaurants"이라는 collection이 있을 수 있음
- mongoDB는 강력하고 유연하며 확장성이 높은 도큐먼트 베이스(문서 지향)의 데이터베이스이다.
문서 지향 데이터베이스에서는 행열 대신, 문서라는 모델을 이용하는데,
내장 문서와 배열의 표현이 가능해서 복잡한 객체의 계층 관계를 하나의 레코드(열)로 표현할 수 있다.
이것은 자바나 파이썬 같은 객체지향 언어들을 사용하는 개발자들에게 매우 편리함을 가져다 준다. - 또한, 스키마가 존재하지 않아, 필요할 때 마다 필드를 추가하거나 제거하는 것이 매우 쉬워졌음을 의미한다.
따라서 개발 과정이 매우 단순해지고 빠르게 개발이 가능하게 된다. - 결론적으로, 진입장벽이 낮아, NoSQL 중 많이 사용되는 데이터베이스이다.
ACID 대신 BASE를 택하여 성능과 가용성을 우선시한다. (관련 내용 더 공부해서 추가예정)
Pymongo 사용법
- (실행환경은 MacOS에서, Visual Studio Code로 진행하였다.)
- 왼쪽 아이콘중 Extension marketplace(확장)을 클릭하여, "MongoDB for VS code"를 검색하여 다운 받는다.
- 다운을 정상적으로 받았다면 왼쪽 아이콘에, 잎사귀모양의 아이콘으로 MongoDB가 추가되어있을것이다.
(필자는 다운을 받아놔서, 아이콘이 추가되어있는거임.) - 화면 아래쪽에 위치한 "Create free cluster"를 클릭한다
- 누르면, mongoDB사이트로 들어가게 되는데, 구글 로그인이나, 회원가입후 로그인을 하게되면,
- 어떤것을 사용하고싶은지, 어떤 목적으로 DB를 사용하는지, 어떤 언어를 사용하는지에 대해서 작성하고 continue를 누른다.
- azure를 선택하고, 무료 cloud를 선택하고, db의 이름을 설정한 후에, 다 작성했으면 Create Cluster를 클릭한다.
- 자신이 만든 db 이름으로, db가 만들어져 있을것이다. connect를 클릭한다.
- 본인이 만든 db에 접근하기 위한, ID와 비밀번호를 설정을 하고, "Create Database User"를 클릭한다.
★★★이때) 비밀번호에 특수문자 설정하지 않기! -> 왜 그런지 모르겠는데, 특수문자 설정하면, 잘 실행안됨
- "Choose a connection method"를 클릭한다.
- 어떤 방법으로 연결할 것 인지에 대한 옵션들이다. 필자는 VS Code로 연결 할 것이므로, "MongoDB for VS Code"를 클릭한다
- 과정을 순서대로 따라왔다면, 순서상,
1번의 과정(1. Install MongoDB for VS Code)은 위에서 설정하였고,
2번의 과정(2. In VS Code, open the Command Palette.)의 창을 눌러서 3번의 코드를 복사하는 것이므로, 생략하고,
3번의 과정(3. Connect to your MongoDB deployment.)의 코드를 복사한다
- 그리고, VS code로 돌아가, MongoDB를 클릭후 "Connect with Connection String"의 "Connect"를 누르면, 위의 창이 활성화 되는데, 아까 MongoDB 사이트의 3번 코드를 복사한 것을 붙여넣기 한다.
- joesap은 필자의 아이디이고, <password>란에, 본인이 전에 등록해 놓았던 비밀번호를 입력하고 엔터를 친다.
<password>전체를 지우고, 입력을한다. (<q1w2e3r4>가 아님 주의)
- 정상적으로 연결이 되었다면, 화면옆의 탐색기란에, 잎사귀가 초록초록하게 변해있을 것 이다.
이 때 나올 수 있는 버그 :
1) Unable to connect: connection <monitor> to X.XX.XXX.XXXX closed
- 연결할 수 없는 IP주소라는 뜻
- MongoDB사이트에서, 왼쪽의 "Network Access"클릭
- ADD IP ADRESS 클릭
- Access List Entry: 란에, 0.0.0.0/0 혹은, 자신의 IP 입력후 Confirm 클릭
이 때 나올 수 있는 버그 :
2) unable to connect: bad auth : authentication failed
- 접근 불가능한 ID와 비밀번호라는 뜻
- MongoDB사이트에서, 왼쪽의 "Database Access"클릭
- 기존의 계정 삭제하기위해, "DELETE"클릭 (등록된 아이디가 없으면 안해도 됨)
- "Add New Database User"클릭
- ID와 비밀번호 설정후 Add User 클릭
- 이제, VScode에서, 본인이 작업하고싶은 폴더에, 확장자명 .py로 파일을 생성하고, VScode하단의 terminal란에,
pip(파이썬으로 작성된 패키지 라이브러리를 관리해주는 시스템)을 이용하여 설치를 한다.
- MongoDB창에서 Create playground를 누른다.
- JS 파일이 나올텐데, Ctrl(Command) + S를 눌러, 자신이 작업하는 폴더안에 저장을 한다.
- 위와 같은, 다소 낯이 익지 않은 코드들이 나타날텐데, 이는, Defalut 로 쓰여진 SQL언어들 이므로,
과감히 생략하자
공식 API나, 위의 문서의 코드들에서 코드들을 익혀, 추후에 스키마 & 컬렉션 & 도큐먼트 생성 및 조회 등, 수정해서 쓰도록 하자
공식 API 주소 : https://www.mongodb.com/docs/mongodb-vscode/playgrounds/
Explore Your Data with Playgrounds — MongoDB for VS Code
Docs Home → MongoDB for VS Code MongoDB Playgrounds are JavaScript environments where you can prototype queries, aggregations, and MongoDB commands with helpful syntax highlighting.MongoDB Playgrounds provide intelligent autocomplete for:The Mongo Shell
www.mongodb.com
- 추후에, Flask로 서버를 열게 될거라,
일단 오른쪽위에 RUN을 누르거나,
Command + Shift + P를 눌러, "Run All From Playground"를 눌러 실행해본다.
- 정상 출력됨을 알 수 있다.
이렇게 Visual Studio와 mongoDB를 연결만 해 보았다.
완벽히는 이해 안되지만, 데이터 및 저장소 딴 에서, 알아두면 좋을 것 같아 나중에 읽어봐야 할 것 같음 :
https://kciter.so/posts/about-mongodb
MongoDB 이해하기
사내에서 MongoDB를 잘 쓰기위한 스터디를 하게되어 이번 기회에 관련 자료를 정리하기로 했다. MongoDB가 왜 필요한지, 더 잘사용하기 위해서 무엇이 필요한지를 중심으로 처음 MongoDB를 사용할 때
kciter.so
pymongo의 api들을 정리 잘해놓은 블로그 :
Python으로 MongoDB 사용하기 (pymongo)
Python을 이용하여 MongoDB를 사용하는 방법에 대해 알아본다. MongoDB의 mongosh에서 Database, Collection, Documnet를 사용하는 방법은 다음 포스팅을 참고한다. MongoDB의 Database와 Collection 사용하기 Docker를 이
www.bearpooh.com
'개발공부 > 파이썬 Django & Flask' 카테고리의 다른 글
AJAX에 대하여 (0) | 2023.02.10 |
---|