Image Management Full Stack (feat. Node.js, React, MongoDB, AWS)
‘Where and how should I store files that look like images? Should I store them in a database? Or on a server hard drive? How can I reduce server load? How can I quickly load many images without stuttering? AWS S3? CDN?! I just want to store and load images, so why are there so many elements? What role do each of these elements play, and how should they be combined?’ I will teach you all the necessary elements related to image files, from start to finish, as a full stack :)
Image management know-how in my hands! 💾 Join us for a fun full-stack example.
Image management Does it affect the completeness of the service?
What if the image loading speed is too slow?
It would harm the usability of the service and be fatal to the user experience.
The many concerns surrounding image management 🤔
How can I send and receive images?
What difference does it make if I store the images separately on the server/backend/cloud?
Is there any way to show a file preview or loading status when uploading an image?
I also need to implement pagination and infinite scrolling...
Speed and scalability You can't miss them both.
When developing a web or application, there are two main things developers want.
First, it has to be fast.
According to data released by Amazon about 10 years ago, for every 100ms increase in loading speed, there was a 1% loss in sales. For a large company like Amazon, 1% is a huge loss.
Second, it must be scalable.
It would be pointless if the loading speed slowed down just because the number of service users increased, right? Everyone wants to create a service that a lot of people use.
Here, files such as images can have a huge impact on speed and scalability. As we saw above, you may have been frustrated because the page itself was loaded, but the images were not loaded quickly and were sluggish. If you can't handle files such as images effectively, it will be noticeable right from the beginning compared to other backend/frontend elements. And if you do it wrong, it can put an unnecessary large load on the main backend server.
Let's think about the root cause. Image files are very large. Normally, when the front end calls the back end, the amount of data received is in kilobytes (KB), but files like images can be up to tens of megabytes (MB). When loading such large images, the service is bound to be slow.
Therefore, we can see that handling and managing image files well is a very important factor in service development .
I felt it through my own experience I'll tell you the know-how.
I experienced this problem when I was developing e-commerce in the past. There was a time when the page loading time was very long and it was a problem. After investigating, I found that not only the detailed images uploaded by designers, but also the images uploaded by customers in their reviews took up a lot of space.
No matter how much I optimized the DB and backend, it was meaningless. Image loading became a bottleneck. I solved this problem in the best way while building a new company mall.
But surprisingly, there were many people around me who didn't know this solution completely. Many people have partially built solutions, but many people don't know about Resizing using AWS Lambda , and especially the AWS S3 presignedUrl function. You just need to build the infrastructure properly once, but the problem is that there are many annoying processes, and if you do it wrong, you can become vulnerable to cloud security. Even if you try to find information, it's scattered here and there, so it's not easy to understand at first. I decided to make a lecture because I wanted to see this fragmented information as one refined data.
So this lecture was produced as a full-stack lecture, including the cloud as well as the backend/frontend. However, it is not a lecture that focuses on the full-stack itself. In order to properly manage images, there are parts that need to be taken care of in the frontend - backend - infrastructure (cloud), so it was produced as a full-stack lecture in order to properly understand the structure. 😊 Please keep in mind that the focus is image management !
Only for this lecture Let me tell you the features.
Image management Covering everything Full stack lecture!
Fit for real life Problem solving skills I will raise you.
Core focus! Only the essentials Compactly.
This course focuses on image management.
This course is a full-stack course covering backend, frontend, and infrastructure (cloud). The technologies used in the course will try to explain the concepts, but please keep in mind that the focus is on 'image management' .
The lecture uses various technologies such as Node.js, MongoDB, and React. I think it is good for those who are new to service development to see the overall full-stack flow 🙂
Solve problems from small to big.
A great developer who acts as a problem solver should be able to properly identify the cause of the problem and create the best solution for it within the given time (resources). Therefore, simply learning the solution by memorizing it is meaningless.
A typical example would be the Microservice Architecture (MSA). If you vaguely introduce it to a service you are starting after hearing good things about it here and there, it could be a disaster... You won't even understand why it is needed. It could even have the opposite effect.
So in this lecture, I won't teach you the perfect solution from the beginning. I'll start with a small problem that you can relate to. Then, I'll gradually increase the difficulty level and show you the ultimate problem-solving method .
Contains the essence of image management.
This lecture covers only the essential techniques for image management. For example, if you use a CSS framework or style it yourself, you can create a pretty website. However, since it has nothing to do with learning image management, I applied only the bare minimum styling, even though the design is crude. Follow the lecture and learn the essential know-how!
To these people I recommend it.
Using images Web or mobile app Anyone who wants to develop
Full stack development Lightly once Anyone who wants to taste it
AWS(Amazon Web Services) The cloud Anyone who wants to use it
Images etc. Manage high capacity files For those who want to do it right
As a fun example Follow along and learn.
We'll create a simple photo album page that uses a lot of photos and distribute it to the cloud. Follow along from start to finish to create a web app that can easily load a lot of images!
Follow the lecture and learn!
✅ The most basic way to save images using Multer ✅ Development of session-based authentication authorization and photo album functions ✅ The charm of MongoDB that you experience for the first time! ✅ Pagination, which affects performance And the implementation of Infinite Scroll to complement this ✅ How to manage files in the cloud with AWS S3 file storage, not a server or database ✅ Reduce image size using AWS Lambda
The photo album service we will create in this lecture is structured as follows.
Expected Questions Q&A
Q. Can I listen even if I am using a different technology stack?
If you have even a little bit of experience with web development itself, I think you can follow along even if you are a Java, PHP, or Python developer who doesn't even know Javascript well. Rather, I think it's a good opportunity to experience Node.js, MongoDB, and React lightly. If you try to study each one in depth from the beginning, it can be very burdensome to get started. And I think front-end developers who are not familiar with React can also take the course. And I think that photo management itself has a lot in common regardless of the language/framework. So I think you can learn the big picture through this course and modify it to fit the technology stack you are using :)
Q. Do you also handle files like PDF and video?
This lecture focuses on images. However, file uploads such as PDFs and videos are managed very similarly to image uploads. In other words, there are many commonalities. I think the biggest difference is the way they are loaded and displayed. You can simply download PDFs and videos. In the case of videos, there are also ways to run them on the screen, like Inflearn. The reason for focusing on images is that they can have a big negative impact on UIUX even in the early stages of a service that is relatively frequently used and has low traffic.
Q. Are there any AWS costs?
When you actually launch a service and traffic occurs, costs will naturally occur depending on the amount used. Of course, costs may also occur when using it for classes. However, even if they occur, they will be very small. We will also cover costs in the lecture. And above all, when you first sign up for AWS, you will be given credits. These credits are more than enough to take the lecture. However, please note that you must delete all AWS resources you were using after taking the lecture! This will be covered at the end of the lecture.
Knowledge sharer's Are you curious about other lectures?
좋은 강의 잘 들었습니다. 강의 들으면서 불편한점도 있었지만, 그럼에도 불구하고 많은 것을 배워갑니다.
몽고디비,nodejs 선수지식이 없음에도 불구하고 강의 듣는데 큰 탈은 없었습니다.
소스코드가 제공된다면 오탈자나 다른 문제를 찾는데 조금은 도움이 되지 않을까 생각듭니다.
강사님의 다른강의도 기대하고있습니다. 강사님의 몽고db강의 구매하러 가보겠습니다 ^_^
이번강의를 통해 배운 지식을 활용해서 만들 프로젝트를 생각하면 벌써 신나는군요
아직 1/3밖에 못들었지만,
좋은 내용이 많이 있습니다.
이미지 업로드, 로그인 등 전반적인 내용을 한번 해볼 수 있어서 좋습니다.
물론 기초지식이 어느 정도 있어야 강의 내용을 따라오시는데에 문제가 없을 것 같구요!
AWS 람다나 후반부 강의까지 더 듣는다면 좋은 경험이 될 것 같습니다
몽고디비 강의도 들었었는데, 하나하나 구축해나가는 과정을 알기쉽게 해주셔서 이번 강의도 리액트 부분까지 개념을 잡으면서 배우고 있습니다. 접근하는 방법론이나 깊이가 너무 좋습니다. 감사합니다.
다만 섹션 2, useState 강의 6:41분에서 5초 정도는 편집해도 될 것 같아요.