Python Concurrent Programming: From Data Collection to Web Development (feat. FastAPI, async, await)
We will develop a web app that collects data using concurrent/parallel programming in Python, loads it into MongoDB, analyzes it, and visualizes the collected data using FastAPI, a modern web framework. In the process, you will learn and understand Python concurrent/parallel programming using coroutines, multi-threading, and multi-processing, and understand how to use them to improve Python's performance. We will help you apply Python concurrent/parallel codes directly to your work. We will not only teach you how to develop and end, but also how to deploy and operate an actual app on the AWS cloud.
Developing a server using FastAPI, using the asynchronous gateway Uvicorn
Building an AWS Cloud Server
Web data crawling and visualization
Slow Python? Soar with concurrent and parallel programming!
The lecture Before you start
This lecture has two main goals: to help you understand the concepts of concurrency, parallelism, and asynchronous programming, and to teach you which code to use in which situations . In the latter half of the course, we will work on a real-world project using concurrent programming to help you move beyond theoretical understanding to practical application of the concepts.
Concurrent, asynchronous, and parallel programming With the latest Python syntax
Since Python version 3.7, support for concurrent, asynchronous, and parallel programming has expanded significantly. As demand for these features grows, many frameworks and libraries supporting concurrent, asynchronous, and parallel programming have emerged. However, many people struggle with Python's ever-changing syntax. Furthermore, many who have learned the theory are unsure of how and when to apply the syntax in practice. This course will help you immediately apply the concepts of concurrency, asynchrony, and parallelism by providing practical training in accordance with the latest Python syntax .
Concurrency and parallelism at the same time
This lecture covers both concurrency and parallelism, demonstrating practical applications. Therefore, the title, "Concurrent Programming," has a dual meaning: concurrency in the context of concurrency and parallelism, and concurrency in the sense of "at the same time ." This is because parallelism is often expressed as "simultaneously" or "at the same time."
This lecture I would like to recommend this to these people
Concurrency? Parallelism? What is all this?
Concurrency and parallelism What it is and why it is needed If you want to understand
With the latest Python syntax Concurrent programming
Concurrency, asynchrony, and parallelism Grammar up to date If you want to write
Python concurrency syntax In practice too
It can also be applied in practice Concurrency that can be Programming
Backend developers too Curious FastAPI
Actively use asynchronous grammar FastAPI used If you want to try it
Data analysts and developers who want to speed up their Python programs
Those who want to learn concurrency, asynchrony, and parallelism grammar in line with the latest Python grammar
Those who want to immediately apply Python concurrent, asynchronous, and parallel programming in practice.
Backend developers who want to learn FastAPI, a web framework that actively uses asynchronous syntax.
This lecture This will also help people like this.
Concurrency Programming in Python: From data collection to web development
Concurrent programming
Communication between client and server
Read/write system disk files
Database query operations
Using API
Parallel programming
Video, audio or image processing
computer vision
machine learning
Deep learning
This lecture It goes like this
Python Coroutines and Asynchronous Functions
Learn about basic terminology and Python coroutines.
We will explain and organize important but confusing terms such as bound, blocking, synchronous, asynchronous, subroutine, and coroutine using mind maps and code.
This book introduces basic asynchronous programming in Python using coroutines. It also demonstrates, through practical examples (such as network I/O and CPU operations), why asynchronous programming is essential for speeding up specific situations.
We will implement the coroutine-based program developed in Section 1 using multithreading techniques that utilize concurrency (parallelism) across multiple threads. This will help you understand how to process synchronous code in parallel without the help of the asyncio module. We will also explain, using examples, why multithreaded parallel programming in Python is impossible due to the Python Global Interpreter Lock (GIL).
We'll implement a program that uses multiprocessing techniques for parallel processing. This will teach you how to use multiprocessing in Python and explain how to design code for distributed processing in Python, under what circumstances.
Collecting data with concurrent programming
Applying Concurrency and Asynchrony to Real Projects
Based on the theories learned so far, we'll develop a web crawler and a data collector using open APIs. We'll also spend time developing actual programs and becoming familiar with concurrent programming.
Real-World Project: "Data Collector Web App" with FastAPI
MongoDB CRUD, data visualization, and web development with concurrent programming
Based on the theory learned so far, we will develop a "data collector web app." This project uses concurrent programming to crawl the web and store the collected data in MongoDB. We will connect MongoDB with FastAPI to develop a web app that analyzes and visualizes the stored data. This project will help you understand and apply asynchronous and concurrent programming in real-world situations.
Deploying Projects with AWS Cloud Computing
The project doesn't end with simple development. We'll also teach you how to deploy a web app to a server using AWS cloud computing technology.
Bonus lecture
Lectures updated through questions
The Python grammar lectures required for this course will be continuously uploaded.
Important questions will be answered and uploaded continuously in bonus lectures.
Expected Lecture Questions Q&A
Q. How much Python knowledge is required?
To take this course, you need basic Python knowledge of variables, conditional statements, loops, functions, and class syntax. More challenging syntax that you encounter during the course can be covered through supplementary lectures, which are regularly uploaded.
Q. Are there any notes regarding the course (environment requirements, other precautions, etc.)?
The process is performed in an environment where Python version is 3.7 or higher.
Knowledge sharer What I want to say
The lecture will continue in the future It will be continuously updated
Technology is constantly changing. It's said that if you can't fix the code you wrote in the past, you haven't learned anything. As Python versions are upgraded, we'll update our courses to reflect the new versions so you can learn even better techniques.
The question is You are always welcome
If you encounter any questions or need further explanation during the course, we'll provide logical, case-based answers. We look forward to hearing your questions!
Recommended for these people
Who is this course right for?
Anyone who wants to speed up their Python programs with concurrent programming
For those who want to use Python concurrent programming in practice right away
Anyone who wants to load and manage data in MongoDB
Startup backend developer who wants to adopt FastAPI
For those who want to crawl efficiently with concurrent programming
Anyone who wants to go beyond development and actually deploy and operate web apps
Need to know before starting?
Basic knowledge of Python (variables, conditional statements, loops, functions, etc.)
Hello This is
6,067
Learners
331
Reviews
367
Answers
4.8
Rating
4
Courses
안녕하세요. 더 유익하고 본질적인 지식 콘텐츠로 많은 가치를 드릴 수 있도록 노력하겠습니다.
I would like to recommend this to those who are familiar with Python grammar and have some experience using Python. I only roughly understood the asynchronous method with my eyes, but I have never properly understood it and used it. It was refreshing and fun to actually implement some actions using the asynchronous method. The lecture did not just teach the core parts, but it was good that it explained the necessary contents first before explaining the core contents of the lecture in a way that felt like a beginning, development, turn, and conclusion(?). (Before explaining concurrency and parallelism, it explained basic concepts such as CPU, process, and thread.) Although this seems basic, there are many lectures that do not follow it well. If you upload lectures on Python or Python frameworks in the future, I would like to listen to them all. Thank you for the great lecture.
This is one of the best lectures among the best lectures.
First of all, I came here because I wanted to use fast API, but while learning asynchronous programming, I realized that I am still a person who is lacking in many ways.
However, the instructor explained it in detail and in an easy-to-understand manner, so it was a very satisfying lecture.
I would pay and listen even if it cost more than 100,000 won, adding a little exaggeration...
This lecture covers everything from back-end to front-end and server deployment.
After listening to this lecture, you will be able to expand your horizons by gaining similar experience before doing something difficult like Spring framework, and it will be a good specification for those who have never done server deployment before.
I will diligently review the contents that the instructor taught me and develop them into projects to make them my knowledge.
Thank you again ㅎㅎㅎ
Can I ask you to teach Spring Framework next time.. ㅠㅠ You really teach so well, thank you!!
Thank you for the good review. I am proud :) I don't have any plans for Spring right now, but I will definitely remember it! Reviews like this give me the strength to prepare for the next lecture.
It seems like a really informative and well-made lecture. I've taken a variety of lectures, but this lecture was really refreshing in many ways.
I came to know about this lecture because I was interested in FastAPI and was looking for it... After taking this lecture, I realized that the important thing was not to learn the framework uniformly, but the async concept underlying the framework. I was moved three times in total: once because I could quickly taste FastAPI, once because I learned the important concepts underlying it, and once again because I got a sense of how to study on my own in the future...ㅠㅠ
I'm currently taking the instructor's OOP lecture, and the common elements are:
1. Choosing concepts and frameworks that are trendy and important in the industry,
2. Breaking the concept (topic) into one lecture unit (+ each lecture is independent of each other),
3. A method that allows you to quickly understand and apply only the key points (is this true microlearning?),
4. A moderately fast pace that is not boring,
5. Friendly explanations in between so that no one gets lost,
6. Appropriate lecture length (I think the shorter the time it takes to convey the same knowledge, the better)
7. Structure of interesting practical content
These are some of the elements that I really liked.
I was very satisfied with the lecture, and please continue to make good lectures (faster) (more) in the future! :D Thank you! You worked hard~
Thank you so much for the detailed course review!! Congratulations on completing the course! :) We are working on a follow-up lecture. We will repay you with a better lecture. ✨
It's the best!!! After crawling while crying and eating mustard, the speed was too slow, so I was thinking of a solution and wanted to improve my understanding of Python, and then I happened to find Inflearn and this lecture.
Although it's an appendix, it was a curriculum that I really needed because I could see AWS being used in practice. (I'm studying Python, backend, and AWS intensively.)
You also explained the basic principles concisely, so I gained a lot of knowledge. I also purchased the lectures on classes and object orientation!! I will keep watching the lectures and diligently make them mine. Please continue to provide great content in the future!!