Beginner
10 chapters ยท 7 hours 59 minutes
English ยท Japanese ยท Korean|Audio Korean

Using multiple infrastructure elements
2 Class Projects

It takes about 4 to 5 hours hour(s) to complete each project.

  • Continuous automated deployment system

  • Reliable and fast back-end system

Skills Youโ€™ll Learn

Nginx non-disruptive deployment

We will build a scale-out and uninterrupted deployment system through Nginx.

Git automates Jenkins deployments

Learn how to automate deployment with hands-on Git and Jenkins.

Message Queue

Learn how to store requests with RabbitMQ and process them as much as server resources.

Fast search with Elasticsearch

Learn how to search much faster than a DB via ES, which is a search engine.

Have you ever seen back-end developer job postings from large IT companies?

IT ๋Œ€๊ธฐ์—…๋“ค์˜ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ๊ณต๊ณ 

๐Ÿ“ I've structured the curriculum so that you can learn the parts underlined above.

It seems difficult at first glance, but after all, after learning, I can say that I will be a person who can work in such a place, right?

Only one job posting was brought as the representative, but the content included in the curriculum is common to job postings for IT developers in large companies. That means they use it a lot in practice.

If you take this class, it will be an opportunity to get one step closer to being a backend developer working for large companies and unicorn startups.



In practice, how do you configure the backend?

I, too, had a lot of questions about that when I started development.

๐Ÿ“These are questions I was curious about before I did my job.

  • How do you use Git in practice? I only know how to do commit and push, but...
  • The code has changed, so I need to upload this to a new server, but I can't get requests while the server is running. What should I do about this?
  • I implemented a search using LIKE in the DB, but it became too slow due to the accumulation of data. Is there a repository other than DB that is suitable for searching?
  • How can I test how much traffic my application can receive by putting it on the server?
  • I want to upload my services to cloud services such as AWS or GCP. How should I configure them?


If you have any of these questions, be sure to take this class. I'm sure you won't regret it.



I'm Kakao developer Fu, who will be working with me as a beginner in backend practice.

๐Ÿ“Currently, Kakao is working on spam and abuse analysis and response system development.

Before I joined Kakao, when I first created a web service when I was an undergraduate student, I was really curious aboutโ€How do large IT companies like Kakao and Naver configure their backends?โ€ It was.

It's no wonder why you're curious, right? Kakao and Naver are companies with a lot of users, but what's the secret Trouble-free serviceI was wondering if it would continue to operate.


And if you have any other questions, โ€œIf multiple people are developing a project with Git, how do you prevent conflicts (conflicts) from occurring when merging?โ€ It was.

I still have a long way to go, but I think I've come to understand some of the questions I was curious about at the time through a lot of trial and error.

This class deals with answers to questions I had when I was an undergraduate and other things about system configurations used in most back-end environments.

If you're just starting development, we've prepared a practical class that can definitely help you if you're full of questions and concerns about the backend.



What do I need to know to do a good job in backend practice?

๐Ÿ“ Let's learn only 4 things neatly without any clutter.

  1. How to test and improve application performance
  2. How to distribute servers and withstand high traffic
  3. How to use Git when you want to collaborate well at work
  4. How to configure a system to handle large amounts of traffic


1) How to test and improve application performance

๐Ÿ“ The beginning of performance tuning is testing the current performance, right?

For the first time, we'll check the performance of the application we've created, and then proceed with the process of improving it. It's the best way to watch applications get better and feel that your skills are improving.


2) How to distribute servers and withstand a lot of traffic

๐Ÿ“ I'll build a good server with Nginx & Jenkins.

The term may seem difficult, but if you think about it easily Servers must be distributed to withstand a lot of trafficIt's a story.

What is the beginning of a system that can distribute new versions without interruption and receive a lot of traffic Nginx load balancing (*) and Scale out (**) It's. It starts by distributing user requests across multiple servers.

herewith Automating Jenkins deploymentsLet's try it up to. Your back-end work will become more resilient.


[๐Ÿ“š Wait! Explanation of terms!]

(*) Load balancing (load balancing) : Distributing the load received by a server across multiple servers

(**) Scale out (scale out) : If scaling up (scaling up) increases the performance of the connected servers themselves, scaling up horizontally by increasing the number of connected servers is scaling out!


3) How to use Git when you want to collaborate well in work

๐Ÿ“ How should a project involving many people be managed?

I've tried branching and committing to Git and pushing to Github. What should I do in a collaborative environment where multiple people develop the same project?

Learn about branching strategies in collaborative environments and frequently used Git features. If this is your first time using Git, don't worry. We'll explain the basics quickly and easily.


4) How to configure a system that can handle large-scale traffic

๐Ÿ“ Know-how to handle much more traffic!

If you load balance with Nginx, incoming requests are stored in RabbitMQ and processed as much as the resource allows.

This makes it possible to handle much more traffic than if the server and DB were simply connected 1:1. Also, the principle is that if you use the search engine Elasticsearch (ES), you can even search faster.

If you know how to configure a system to handle this kind of large-scale traffic, it will be an opportunity to get one step closer to being a backend developer for large enterprises and unicorn startups.



The end goal of the backend work class is clear.

๐Ÿ“ Building a system suitable for the service by selecting various infrastructure elements!

RabbitMQ, which I included in the class, can be replaced by other message queue implementations such as Kafka or Pulsar.

However, Among them There aren't many technologies where one has an absolute advantage. If one had an absolute advantage, the other technologies would have already been culled. In other words, there are options when it comes to dealing with technology.

Here are 2 things you'll get from this class:

  1. Which technology should be applied to what part of the service?
  2. Among the many options that have implemented this technology, which is the right choice for our service?

I hope you get the strength to think about the above two things.



There are precautions when taking the course.

Each of the various techniques I deal with in the class has extensive documentation, and has many more diverse functions in addition to the features I've introduced.

So the features I'm introducing are really related technologies Only a small portionIt's. Because of that, I took classes, Be careful not to have the following thoughts:

  • I've mastered Nginx!
  • If I only needed two databases and Elasticsearch, I would be able to cover all the storage I needed, right?
  • If I send a message to RabbitMQ, I don't have to worry about 'never' losing the message, right?

The most basic and ready-to-use content is covered in the class, so after learning this, I recommend that you apply it to practice, and then study more deeply to build up your skills.



Class lab environment

๐Ÿ“A Windows environment is required, and other additional programs are as follows.

  • Windows 10 x64 (There will be more Windows users among those taking this course. However, even if you use macOS, you won't have any trouble following the course. I'm just putting it on the server and working on it anyway.)
  • IntelliJ IDEA Community (Produced as a community version, which is a free version.)
  • JDK8 (I thought this was the most commonly used Java version by current standards. However, it doesn't matter if you practice in a language other than Java.)
  • Google Cloud Platform
  • Docker desktop
  • Jenkins
  • Nginx
  • Git, Github, SourceTree
  • database
  • RabbitMQ
  • Elasticsearch

A shortcut to real backend practice!

I'll see you in class:)

Curriculum

Creator

Foo

Foo

Nice to meet you, Kakao developer Fu.

๐Ÿ“šCreator Foo's history

  • 2017 Gyeonggi University, Department of Convergence Security
  • After serving in the military as ROTC Communications Officer in the South Korean Army in 2019
  • Vulnerability report related to the 2019 Company N session
  • 2019 ~ Development related Youtube channel operation
  • 2019 ~ Kakao Enterprise Spam Abusing Content Collection/Monitoring/Processing System Development


๐Ÿ“ I'm conveying a variety of knowledge under the nickname Foorogrammer.

Since I first created a web service before I got a job โ€œHow can large-scale services get so much traffic?โ€ I had a question like that.

I think all of you who want to take this course will have similar concerns as me. Of course, I don't know all the elements required for the service, and even if I did, I wouldn't be able to include them all in the course.

However, if you learn only the content included in the back-end practical course, you will be able to have the ability to construct a stable infrastructure suitable for the service!

A shortcut to real backend practice!

I'll see you in class:)

GitHub

GitHub

View similar classes you might also like

Introduction to C/C++ for 10th year developers [game development/app development/programming]Programming Languagesย ย |ย ย Developer LaLa
SupportOffice hours: M-F 10:00-16:00 (KST)
CLASS 101, LLC.
1201 North Market St. Suite 111, Wilmington, DE, 19801
support@101.inc