인프런 영문 브랜드 로고
인프런 영문 브랜드 로고
BEST
Programming

/

Back-end

mongoDB from basics to practice (feat. Node.js)

mongoDB, NoSQL You hear a lot these days, but is it still an unfamiliar database? Aren't you using it like a relational database (RDS/SQL)? No matter how good the technology is, if it's not used correctly, it will have the opposite effect. That's why we often see cases of failure in using MongoDB. This lecture will teach you everything from basic concepts to practical know-how so that you can use MongoDB as MongoDB-like as possible.

(4.7) 84 reviews

1,308 students

MongoDB
REST API
Node.js
AWS
JavaScript
Thumbnail

This course is prepared for Basic Learners.

What you will learn!

  • Backend development that properly utilizes mongoDB

  • Developing REST API with Node.js and Express

  • Asynchronous programming

  • Maximizing Read Performance Using Index and Nesting

  • ACID Transaction

  • Deploying Node.js Server on AWS Lightsail

  • mongoDB Atlas Cloud Managed Service

MongoDB, the most loved NoSQL-based database!
I'll teach you how to really use MongoDB. 😎

Topic Introduction 📝

The name MongoDB comes from Humongous, "huge." It is a NoSQL-based database released in 2009 after the Internet boom when big data keywords began to appear. The database is the core foundation of service development. Unlike MongoDB, the relational databases (MySQL, PostgreSQL) that we are familiar with are already over 20 years old. It is surprising that there is a field that has not changed so much in the programming ecosystem where new programming languages and technologies are constantly being created. The database is that important and conservative technology. If the database changes, it can affect not only the backend but also the frontend built on top of it. As a result, various questions about MongoDB, a somewhat unfamiliar technology, arise and cases of failed applications are often seen:

  • Should I use MongoDB depending on the situation?
  • Isn't e-commerce necessarily RDS?
  • It's good for quick and simple development in the beginning, but is a relational database better later on?
  • A database that doesn't even support JOIN?

I think these problems are caused by the fact that it is a relatively new technology and the know-how is not well known. MongoDB can be used universally like relational databases, and e-commerce can also be developed with MongoDB (I have experience with it). And if used properly, it is much more efficient than relational databases when large traffic occurs.

What is the reason for the failure of application in the first place? It is because they do not understand the philosophy of mongoDB. It is not enough to simply study how to use it. And above all, they should not approach it like a relational database. There are many fundamentally different parts in the problem-solving method that mongoDB approaches. If you understand these characteristics well and use it in a mongoDB-like manner, mongoDB is a database with many advantages.

Why should you learn ✒️

  1. It's easy for a database to become a traffic bottleneck, but MongoDB can fundamentally solve this scalability problem.
  2. You can learn MongoDB properly while learning backend development at the same time. Backend development and database are one!
  3. Most data communicated in web development is in JSON format. The data format stored in MongoDB is JSON (BSON). Therefore, there is almost no need to convert data in the backend or use ORM. This also lowers the barrier to entry.
  4. It is a database that can be used universally. Most NoSQL databases do not support ACID Transactions. MongoDB has the horizontal expansion characteristics of NoSQL and has supported ACID Transactions since version 4.0.
  5. We'll cover asynchronous programming early in the lecture. It's an essential concept for the backend to communicate efficiently with the database.

What you will learn in this course ✏️

  1. mongoDB Basic Usage - CRUD
  2. mongoDB Atlas - Deploying a Managed Cloud Database
  3. Maximizing backend efficiency with asynchronous programming
  4. Creating a REST API with the Express Framework
  5. How to read related data efficiently (populate)
  6. Maximize reading performance by appropriately embedding child documents in parent documents
  7. Maximize search performance by applying indexes
  8. Manage data consistently using transactions (Multi Document Transactions)
  9. Deploying a backend server on AWS lightsail
  10. Comparing relational databases to mongoDB

Below are some of the materials used in the lecture :)

Skills covered here 🧰

mongoDB, Node.js, Javascript, Postman, AWS, mongoDB Atlas

Expected Questions Q&A 🙋🏻‍♂️

Q. Is this course for Node.js (Javascript) developers?
A. This lecture is a mongoDB lecture. Node.js is a means to show the overall flow of how backend developers can properly utilize mongoDB. Therefore, you can take the course even if you are doing backend development in another language. The parts related to Node.js are basic concepts that are commonly used (REST API, asynchronous programming). If you understand the concepts well, you will be able to use mongoDB well in any development environment :)

Q. Is there a reason why we are handling the backend (Node.js) together?
A. This course teaches backend developers how to properly design and use a mongoDB database. So, we teach you basic backend development at the beginning of the course so that you can properly utilize the database. And this course is not a DevOps course. We do not teach you how to install a database, how to build and manage replica sets and sharding. Instead, we will use a managed cloud service, mongoDB Atlas, that automates this DevOps area.

Q. Do you also learn MongoDB Aggregates?

A. This lecture focuses on how to use MongoDB in a MongoDB-like way in "general" backend development. Using Aggregates in general APIs with high call frequency can put a load on the DB, so it is not recommended. If you think about it, if you use Aggregates frequently, you can't use them in a MongoDB-like way and end up using them like a relational DB. Therefore, this lecture does not include Aggregates. I will show you how to properly use MongoDB without Aggregates! This does not mean that Aggregates are bad. They just have a different use case. They are very powerful tools in the Data Engineering field, such as generating statistics or processing large amounts of data. Compared to general APIs, these Data Engineering processes have the characteristic that they are called much less frequently and do not really matter if the response speed takes a long time. For example, if you want to extract sales status by quarter, you can run an aggregate batch once a quarter, save the results, and then retrieve the results quickly. I plan to produce a MongoDB-based Data Engineer lecture in the future. At this time, we will cover MongoDB Aggregate, as well as big data management with MongoDB Data Lake and data visualization with MongoDB Charts!

Q. Please tell us what prompted you to start this course.
A. I am not a major. I learned by looking at, analyzing, and applying fragmented data scattered online. If you repeat this process, the concepts become abstract and organized. The "abstraction" mentioned here is a really important concept. When developing, you can only implement simple functions to make the service run. However, a developer who is good at "abstraction" can create a service that "works well" and "scalable." In other words, you can say that they are a developer who understands Why well. However, the newer the technology, the lower the understanding of Why due to the previous work of the community. So I created a lecture on the relatively unfamiliar database, MongoDB. Please understand Why well and create many good services!

Recommended for
these people!

Who is this course right for?

  • For those who want to use MongoDB properly

  • For those who want to get started with backend development

  • Anyone who wants to build a highly scalable backend and database

Need to know before starting?

  • Basic Javascript grammar (or basic programming knowledge)

Hello
This is

2,601

Students

171

Reviews

260

Answers

4.7

Rating

3

Courses

현재 공동창업한 작은 스타트업 Ninjalerts에서 CTO역할로 일하고 있습니다. Ninjalerts는 이더리움 블록체인 데이터를 기반으로 NFT 거래 정보들을 실시간으로 알려주는 서비스에요!

전에 만나씨이에이에서 개발 팀장으로 있었어요. 시작은 기획자였는데 개발자가 부족한 탓에 외주를 맡기려다가 직접 개발할 기회가 생기면서 운 좋게 개발자로 전향했어요. 이후 자사몰을 자체 개발하면서 이커머스 개발팀장을 맡았어요.

온라인에 나온 다양한 좋은 자료들 덕분에 빠르게 성장할 수 있었어요. 제 노하우가 여러분들에게도 도움이 되길 바랍니다 :) Linkedin 프로필

Curriculum

All

112 lectures ∙ (11hr 56min)

Published: 
Last updated: 

Reviews

Not enough reviews.
Become the author of a review that helps everyone!