mongoDB, NoSQL 요즘 많이 들리지만 아직은 낯선 데이터베이스인가요? 관계형 데이터베이스(RDS/SQL)처럼 사용하고 계시지는 않으신가요? 아무리 좋은 기술도 올바르게 사용하지 않으면 역효과가 발생합니다. 그래서 몽고디비 사용 실패 사례도 종종 보이는데요. 이 강의는 mongoDB를 최대한 mongoDB스럽게 사용할 수 있도록 기본 개념부터 실무 노하우까지 가르쳐드려요.
이런 걸
배워요!
mongoDB를 제대로 활용하는 백엔드 개발
Node.js, Express로 REST API 개발
비동기(async) 프로그래밍
Index, nesting을 이용한 Read 성능 극대화
ACID Transaction
AWS lightsail에 Node.js 서버 배포
mongoDB Atlas 클라우드 매니지드 서비스
NoSQL 기반 데이터베이스 중 가장 사랑받고 있는 몽고DB!
몽고DB 찐 활용법을 알려드릴게요. 😎
mongoDB 이름은 Humongous, "거대한"에서 이름을 따왔는데요. 빅데이터 키워드들이 생기기 시작한 인터넷 붐 이후 2009년에 출시된 NoSQL 기반 데이터베이스에요. 데이터베이스는 서비스 개발의 핵심 근간이 되죠. mongoDB와 다르게 우리에게 익숙한 관계형 데이터베이스(MySQL, PostgreSQL)는 이미 20년도 넘은 오래된 기술이에요. 지속적으로 새로운 프로그래밍 언어와 기술들이 탄생하는 프로그래밍 생태계인데 이렇게 변화가 적은 분야가 있다는게 신기하죠. 데이터베이스는 그만큼 중요하고 보수적인 기술입니다. 데이터베이스가 바뀌면 그 위에 만들어지는 백엔드는 물론 프론트엔드까지도 영향을 줄 수 있어요. 그러다보니 다소 생소한 기술인 몽고디비에 관한 다양한 의문점들도 생기고 실패 적용 사례들도 종종 보입니다:
아무래도 비교적 신생 기술이고 노하우가 충분히 알려지지 않아서 발생한 문제들이라고 생각해요. mongoDB는 관계형처럼 범용적으로 사용할 수 있고 e-commerce도 당연히 mongoDB로 개발할 수 있어요(경험자입니다). 그리고 제대로 사용한다면 대형 트래픽이 발생했을 때 관계형 데이터베이스보다 훨씬 효율적이에요.
애초에 적용 실패 사례가 생기는 원인이 뭘까요? mongoDB 철학을 이해 하지 못해서에요. 단순 사용방법만 공부해서는 부족해요. 그리고 무엇보다 관계형 데이터베이스처럼 접근하면 안돼요. mongoDB가 접근하는 문제 해결방법은 근본적으로 다른 부분들이 많아요. 이런 특성을 잘 이해하고 mongoDB스럽게 사용하면 mongoDB는 장점이 정말 많은 데이터베이스입니다.
아래는 강의에서 사용되는 일부 자료들입니다 :)
mongoDB, Node.js, Javascript, Postman, AWS, mongoDB Atlas
Q. Node.js(Javascript) 개발자를 위한 강의인가요?
A. 이 강의는 mongoDB 강의에요. Node.js는 백엔드 개발자가 mongoDB를 제대로 활용하는 전체적인 흐름을 보여주기 위한 수단이에요. 따라서 다른 언어로 백엔드 개발을 하고 계셔도 수강하실 수 있습니다. Node.js 관련 다루는 부분은 범용적으로 사용되는 기초적인 개념들(REST API, 비동기 프로그래밍)이에요. 개념들을 잘 이해하시면 mongoDB를 어떠한 개발 환경에서도 잘 사용하실 수 있을거에요 :)
Q. 백엔드(Node.js)를 같이 다루는 이유가 있나요?
A. 이 강의는 백엔드 개발자가 mongoDB 데이터베이스를 올바르게 설계하고 사용하는 방법을 가르쳐 드려요. 그래서 강의 초반에 데이터베이스를 올바르게 활용할 수 있도록 기본적인 백엔드 개발을 같이 가르쳐드려요. 그리고 이 강의는 DevOps 강의가 아니에요. 데이터베이스를 어떻게 설치하고 replica set, sharding을 어떻게 구축하고 관리하는지 가르쳐드리지 않아요. 대신 이런 DevOps 영역을 자동화해주는 메니지드 클라우드 서비스, mongoDB Atlas를 사용하게 되요.
Q. MongoDB Aggregate도 배우나요?
A. 이번 강의에서는 "일반적인" 백엔드 개발에서 몽고디비를 몽고디비스럽게 잘 활용하는 방법에 초점을 두었습니다. 호출 빈도가 높은 일반 API에서 Aggregate를 사용하면 디비에 부하가 갈 수 있어서 권장하지 않아요. 쉽게 생각하면 Aggregate를 자주 사용하게 되면 몽고디비스럽게 사용하지 못하고 관계형 디비처럼 사용하게 되는거라고 보시면 되요. 따라서 이 강의에서는 Aggregate 관련 내용을 포함하지 안핬습니다. Aggregate 없이 몽고디비를 올바르게 활용하는 방법을 보여드립니다! 그렇다고 Aggregate가 안좋다는건 절대 아닙니다. 사용용도가 따로 있을뿐이에요. 통계를 내거나 대용량 데이터 가공 등 Data Engineering 영역에서 매우 강력한 도구입니다. 일반적인 API들과 비교했을 때 이러한 Data Engineering 처리들은 호출 빈도가 훨씬 적고 응답속도가 오래 걸려도 딱히 상관 없다는 특징을 가지고 있습니다. 예를 들어 분기별로 매출현황을 추출하고 싶다면 분기에 한번씩 aggregate 배치를 돌려서 결과값을 저장해두었다고 결과값을 빠르게 불러오면 되겠죠. 차후에 MongoDB 기반 Data Engineer 강의도 제작할 예정인데요. 이 때 MongoDB Aggregate는 물론, MongoDB Data Lake로 빅데이터 관리 그리고 MongoDB Charts로 데이터 시각화까지 다룰 예정입니다!
Q. 이 강의를 시작하게 된 계기를 소개해주세요.
A. 저는 비전공자 출신이에요. 온라인에 뿌려진 파편된 자료들을 보고 분석하고 적용해보면서 배웠어요. 이 과정을 반복하다보면 개념들이 추상화가 되면서 정리가 되요. 여기서 말하는 "추상화"란 정말 중요한 개념인데요. 개발을 할 때 서비스가 돌아가게끔 단순 기능 구현만 할 수 있어요. 근데 "추상화"가 잘 된 개발자는 "잘 작동하는", "확장성 있는" 서비스를 만들 수 있어요. 다른 표현으로는 Why를 잘 이해하고 있는 개발자라고 할 수도 있겠네요. 그런데 비교적 최신 기술일수록 커뮤니티 전번작으로 Why에 대한 이해도가 떨어집니다. 그래서 상대적으로 낯선 데이터베이스인 mongoDB를 주제로 강의를 제작해봤어요. Why를 잘 이해하시고 좋은 서비스 많이 만들어주세요!
학습 대상은
누구일까요?
mongoDB를 제대로 사용해보고 싶으신분
백엔드 개발에 입문 해보고 싶으신분
확장성이 뛰어난 백엔드와 데이터베이스를 구축해보고 싶으신분
선수 지식,
필요할까요?
Javascript 기초 문법(혹은 기본적인 프로그래밍 지식)
현재 공동창업한 작은 스타트업 Ninjalerts에서 CTO역할로 일하고 있습니다.
Ninjalerts는 이더리움 블록체인 데이터를 기반으로 NFT 거래 정보들을 실시간으로 알려주는 서비스에요!
전에 만나씨이에이에서 개발 팀장으로 있었어요. 시작은 기획자였는데 개발자가 부족한 탓에 외주를 맡기려다가 직접 개발할 기회가 생기면서 운좋게 개발자로 전향했어요. 이후 자사몰을 자체 개발하면서 이커머스 개발팀장을 맡았어요. 온라인에 나온 다양한 좋은 자료들 덕분에 빠르게 성장할 수 있었어요. 제 노하우가 여러분들에게도 도움이 되길 바랍니다 :) Linkedin 프로필
전체
112개 ∙ (11시간 56분)
데이터베이스 생성 및 연결
05:53
create document
03:01
Schemaless 특성
02:36
update document
01:42
Update with ObjectID
02:25
delete document
00:49
CRUD
00:43
Database 구조
01:33
Node.js 설치
02:35
npm
02:06
Code Editor
03:36
package.json
03:57
Express 설정하기
02:11
nodemon
02:27
REST API
06:12
Postman
02:20
Express Middleware
06:13