플라스크(Flask)는 파이썬으로 작성된 마이크로 웹 프레임워크이다. 플라스크는 특별한 도구나 라이브러리가 필요 없기 때문에 마이크로 프레임워크라 부른다.
기존의 서드파티 라이브러리가 공통 기능을 제공하는 구성 요소가 없으나 플라스크 자체에서 구현된 것처럼 애플리케이션 기능을 추가할 수 있는 확장 기능을 지원한다.
몽고디비는 NoSQL(Not Only SQL)이다. SQL을 사용하는 관계형 데이터베이스가 아닌 데이터베이스를 의미한다. 대표적인 관계형 데이터베이스로는 MySQL, Oracle, PostgreSQL이 있으나 NoSQL은 다음과 같은 이유로 탄생했다.
- 수평 확장 가능한 분산 시스템 (SQL이 정형화된 엑셀느낌이라면 NoSQL은 좀 더 자유로움)
- Schema-less (정형화된 스키마가 없는 데이터 구조를 통해 데이터 운영의 유연성 제공, 데이터 추가에 용이)
- 완화된 ACID (일관성, 지속성에 대한 고민을 보다 덜 한다는 뜻)
따라서 NoSQL은 방대한 데이터를 다루는 큰 기업보다는 고객의 의견을 반영해서 프로덕트를 빠르게 고도화해나가는 스타트업에게 유리하다!
CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말이다. flask와 mongoDB를 이용한 아래 소스를 활용해서 CRUD를 실행해보자.
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)
user = db.users.find_one({'name':'bobby'})
all_users = list(db.users.find({},{'_id':False}))
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
db.users.delete_one({'name':'bobby'})
db.users.deleteMany({'name':'bobby'})