강의

멘토링

로드맵

BEST
Programming

/

Full-stack

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 :)

(4.5) 50 reviews

652 learners

  • sihoon
Lambda
Node.js
React
MongoDB
AWS

Reviews from Early Learners

What you will learn!

  • AWS S3, CloudFront, presignedUrl

  • Image resizing & AWS Lambda

  • Infinite Scroll using IntersectionObserver

  • Session-based Authentication & Authorization

  • Node.js, Express

  • React, React Hooks

  • MongoDB

Image management know-how in my hands! 💾
Join us for a fun full-stack example.

node.js(노드), mongodb(몽고db), react(리액트), amazon web services(아마존 웹 서비스)


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.

Backend + Frontend + Infra = Fullstack

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?

MongoDB Basics
To practice (feat. Node.js)

DB correctly
Design and use it!

Recommended for
these people

Who is this course right for?

  • If you want to develop a web or mobile app that uses images

  • If you want to try full-stack development lightly

  • Anyone who wants to try out AWS Cloud

  • If you want to properly manage image-like files

Need to know before starting?

  • (Recommended) Basic Javascript Syntax

Hello
This is

2,691

Learners

184

Reviews

261

Answers

4.7

Rating

3

Courses

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

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

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

Curriculum

All

93 lectures ∙ (14hr 12min)

Published: 
Last updated: 

Reviews

All

50 reviews

4.5

50 reviews

  • bi9choi님의 프로필 이미지
    bi9choi

    Reviews 3

    Average Rating 5.0

    5

    100% enrolled

    좋은 강의 잘 들었습니다. 강의 들으면서 불편한점도 있었지만, 그럼에도 불구하고 많은 것을 배워갑니다. 몽고디비,nodejs 선수지식이 없음에도 불구하고 강의 듣는데 큰 탈은 없었습니다. 소스코드가 제공된다면 오탈자나 다른 문제를 찾는데 조금은 도움이 되지 않을까 생각듭니다. 강사님의 다른강의도 기대하고있습니다. 강사님의 몽고db강의 구매하러 가보겠습니다 ^_^ 이번강의를 통해 배운 지식을 활용해서 만들 프로젝트를 생각하면 벌써 신나는군요

    • 김시훈 (도도소프트)
      Instructor

      와 bi9choi님 그렇게 말씀해주셔서 너무나도 감사합니다!! 저도 아쉬운 점들이 많아서 속상했는데 앞으로 더 좋은 강의들 완성도 있게 신경써서 만들어보겠습니다!

  • 강전욱님의 프로필 이미지
    강전욱

    Reviews 4

    Average Rating 5.0

    5

    100% enrolled

    리액트 + 노드 + 몽고db 조합으로 프로젝트를 만들어 보고 싶었는데 많은 도움이 되었습니다. 파트별로 나누니까 이해도 쉬웠고, 각 섹션 초반에 소개영상은 그 섹션의 전체를 이해하는데 좋았습니다! 질문도 남기면 금방금방 답해주셔서 오류를 해결하기 좋았습니다.

    • itjustbong님의 프로필 이미지
      itjustbong

      Reviews 5

      Average Rating 5.0

      5

      92% enrolled

      아직 1/3밖에 못들었지만, 좋은 내용이 많이 있습니다. 이미지 업로드, 로그인 등 전반적인 내용을 한번 해볼 수 있어서 좋습니다. 물론 기초지식이 어느 정도 있어야 강의 내용을 따라오시는데에 문제가 없을 것 같구요! AWS 람다나 후반부 강의까지 더 듣는다면 좋은 경험이 될 것 같습니다

      • 젊음의돌님의 프로필 이미지
        젊음의돌

        Reviews 6

        Average Rating 5.0

        5

        44% enrolled

        몽고디비 강의도 들었었는데, 하나하나 구축해나가는 과정을 알기쉽게 해주셔서 이번 강의도 리액트 부분까지 개념을 잡으면서 배우고 있습니다. 접근하는 방법론이나 깊이가 너무 좋습니다. 감사합니다. 다만 섹션 2, useState 강의 6:41분에서 5초 정도는 편집해도 될 것 같아요.

        • 젊음의돌님 안녕하세요 :) 좋은 피드백 감사합니다! 해당 영상 확인 후 조치하도록 할게요!

      • 유대상님의 프로필 이미지
        유대상

        Reviews 16

        Average Rating 4.8

        Edited

        3

        100% enrolled

        잘 듣고 있습니다! 강의를 js로 진행하시지만, ts로 변경하는 등의 여러 시도를 하면서 많이 배워갑니다!

        Limited time deal ends in 8 days

        $57,750.00

        25%

        $59.40

        sihoon's other courses

        Check out other courses by the instructor!

        Similar courses

        Explore other courses in the same field!