강의

멘토링

로드맵

BEST
개발 · 프로그래밍

/

백엔드

파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)

파이썬에서 동시성 / 병렬성 프로그래밍을 사용하여 데이터를 수집하여 MongoDB에 적재하고 분석하여 모던 웹 프레임워크인 FastAPI를 사용해 수집한 데이터를 시각화한 웹 앱을 개발합니다. 이 과정에서 코루틴, 멀티 스레딩과 멀티 프로세싱을 사용한 파이썬 동시성 / 병렬성 프로그래밍을 배우고 이해하며, 이를 사용하여 파이썬의 성능을 높이는 방법을 이해합니다. 파이썬 동시성 / 병렬성 코드를 실무에 바로 적용할 수 있도록 도와드립니다. 개발만 하고 끝나는 것이 아니라 AWS 클라우드에 실제 앱을 배포하고 운영하는 방법에 대하여 알려드립니다.

(4.9) 수강평 77개

수강생 1,564명

  • 윤상석
Q&A의 달인
소통왕
Python동시성FastAPI

먼저 경험한 수강생들의 후기

이런 걸 배울 수 있어요

  • 동시성 / 병렬성 프로그래밍 코드 설계 원칙

  • 파이썬 코루틴, 비동기 프로그래밍

  • 파이썬 멀티 스레딩, 멀티 프로세싱 기법

  • 프로세스와 스레드 관련 OS 지식

  • MongoDB를 사용하여 비정형 빅데이터 적재하기

  • FastAPI를 사용하여 서버 개발, 비동기 게이트웨이 Uvicorn 사용

  • AWS 클라우드 서버 구축

  • 웹 데이터 크롤링, 시각화

느린 파이썬?
동시성·병렬성 프로그래밍으로 날개를 다세요!

강의를
시작하기 전에

이 강의 목적은 크게 두 가지입니다. 동시성·병렬성·비동기 프로그래밍의 개념을 정확히 이해하는 것과 어떤 상황에서 어느 코드를 사용하는지 알려드리는 것입니다.
강의 후반부에는 동시성 프로그래밍을 통해 실제 프로젝트를 진행하면서 해당 개념을 이론 숙지를 넘어 실제로 실무에서도 사용할 수 있도록 도와드립니다.

동시성·비동기·병렬성 프로그래밍을
파이썬 최신 문법으로

파이썬 버전 3.7 이후 동시성·비동기·병렬성 프로그래밍에 대한 지원이 대폭 늘어났습니다. 이에 대한 수요가 커지면서 동시성·비동기·병렬성 프로그래밍을 지원하는 프레임워크 및 라이브러리도 많이 등장하고 있습니다. 하지만 버전마다 바뀌는 파이썬 문법에 어려움을 겪는 분들이 많습니다. 또 이론으로는 배웠으나 실제로 언제 어떻게 문법을 적용해야 하는지 모르는 분도 많습니다.
이 강좌는 동시성·비동기·병렬성에 대한 개념을 파이썬 최신 문법에 맞추어 실습까지 진행해 바로 적용할 수 있도록 도와드립니다.

동시성과 병렬성을
동시(at the same time)에

이 강의에서는 동시성과 병렬성을 모두 다루고 실제로 적용할 수 있는 방법을 알려드리고 있습니다. 이 때문에 이 강의의 제목인 동시성 프로그래밍은 이중적인 의미가 있습니다. 동시성(Concurrency)과 병렬성(Parallelism)에서의 동시성과 동시에(at the same time)의 의미로서의 동시성입니다. 병렬성을 표현할 때 '동시에' 또는 '한순간에'라고 표현할 때가 많기 때문입니다.

이 강의를
이런 분들께 권하고 싶어요

동시성? 병렬성?
이게 다 뭐야?

동시성과 병렬성이
무엇인지, 왜 필요한지
이해하고 싶다면

최신 파이썬 문법으로
 동시성 프로그래밍

동시성·비동기·병렬성
문법을 최신 버전으로
쓰고 싶다면

파이썬 동시성 문법을
실무에서도

실무에서도 적용할
수 있는 동시성
프로그래밍

백엔드 개발자도
궁금한 FastAPI

비동기 문법을 적극
사용하는 FastAPI을
써보고 싶다면

  • 파이썬 프로그램의 속도를 올리고 싶은 데이터 분석가, 개발자
  • 동시성·비동기·병렬성 문법을 최신 파이썬 문법에 맞추어 배우고 싶은 분
  • 파이썬 동시성·비동기·병렬성 프로그래밍을 실무에서 바로 적용하고 싶은 분
  • 비동기 문법을 적극적으로 사용하는 웹 프레임워크 FastAPI를 배우고 싶은 백엔드 개발자

이 강의는
이런 분들께도 도움 됩니다

  • 파이썬을 배우는 자바스크립트(비동기 프로그래밍 기반 언어) 개발자

파이썬 동시성 프로그래밍 :
데이터 수집부터 웹 개발까지

동시성 프로그래밍

  • 클라이언트와 서버 간 통신
  • 시스템 디스크 파일 읽기/쓰기
  • 데이터베이스 쿼리 작업
  • API 사용

병렬성 프로그래밍

  • 비디오, 오디오 또는 이미지 처리
  • 컴퓨터 비전
  • 머신러닝
  • 딥러닝

이 강의는
이렇게 진행됩니다

파이썬 코루틴과 비동기 함수

기본적인 용어 정리와 파이썬 코루틴에 대해 알아보기

  • 바운드, 블로킹, 동기, 비동기, 서브루틴, 코루틴 등 중요하지만 헷갈리는 용어를 마인드맵과 코드를 통해 설명하며 정리합니다.
  • 코루틴을 사용하여 파이썬에서 기본적인 비동기 프로그래밍을 하는 방법을 소개합니다. 그리고 특정 상황에서 속도 향상을 위해 반드시 비동기 프로그래밍을 사용해야만 하는 이유를 실무 예시(네트워크 I/O, CPU 연산 등)를 통해 코드로 증명합니다.

파이썬 멀티 스레딩과 멀티 프로세싱

멀티 스레드? 멀티 프로세스? 동시성? 병렬성?

  • 섹션 1에서 개발한 코루틴 기반의 프로그램을 멀티 스레드에서 동시성(병행성)을 사용하는 멀티 스레딩 기법을 사용하여 구현합니다. 이를 통해 동기 코드를 asyncio 모듈의 도움 없이 병행 처리하는 방법을 이해합니다. 또한 파이썬 GIL(Global Interpreter Lock)을 통해 파이썬에서 멀티 스레드로 병렬 프로그래밍을 할 수 없는 이유를 사례를 들어 설명합니다.
  • 멀티 프로세싱 기법을 사용하여 병렬 처리를 하는 프로그램을 구현합니다. 이를 통해 파이썬에서 멀티 프로세스를 사용하는 방법에 대해 익히고 파이썬으로 분산 처리를 할 때 어떤 상황에서 어떤 방식으로 코드를 설계하는지 알려드립니다.

동시성 프로그래밍으로 데이터 수집

동시성·비동기 실제로 프로젝트에 응용하기

  • 지금까지 배운 이론을 기반으로 웹 크롤러와 오픈 API를 사용한 데이터 수집기를 개발합니다. 실제 프로그램을 개발하면서 동시성 프로그래밍에 익숙해지는 시간을 가집니다.

실전 프로젝트 : "데이터 수집기 웹 앱" with FastAPI

동시성 프로그래밍으로 MongoDB CRUD, 데이터 시각화 및 웹 개발

  • 지금까지 배운 이론을 기반으로 “데이터 수집기 웹 앱”을 개발합니다. 해당 프로젝트는 동시성 프로그래밍을 사용하여 웹에서 크롤링하고 수집한 데이터를 MongoDB에 저장합니다. MongoDB를 FastAPI와 연결하여 저장된 데이터를 적절하게 분석하여 시각화한 웹 앱을 개발합니다. 이 프로젝트를 통해 비동기·동시성 프로그래밍이 실무에서 사용되는 경우를 이해하고 적용할 수 있습니다.

AWS 클라우드 컴퓨팅으로 프로젝트 배포하기

프로젝트는 단순 개발에서 끝나지 않습니다. AWS 클라우드 컴퓨팅 기술을 사용하여 서버에 웹 앱을 배포하는 방법도 알려드립니다.

보너스 강의

질문을 통해 업데이트되는 강의

  • 이 강의에서 필요한 파이썬 문법 강의가 지속적으로 업로드됩니다.
  • 중요한 질문은 보너스 강의에 지속적으로 답변하여 업로드합니다.

강의 예상 질문
Q&A

Q. 파이썬 선수 지식은 어느 정도로 필요한가요?

이 강의를 수강하기 위해 필요한 파이썬 선수지식은 기본적인 변수, 조건문, 반복문, 함수, 클래스 문법입니다. 강의를 진행하면서 만나게 되는 난이도 있는 문법들은 따로 상시 업로드되는 보충 강의를 통해 배울 수 있습니다.

Q. 수강 관련 참고 사항(갖춰야 할 환경, 기타 유의사항 등)이 있나요?

파이썬 버전은 3.7 이상인 환경에서 진행됩니다


지식공유자가
전하고 싶은 말

강의는 앞으로도
계속 업데이트됩니다

기술은 계속 변화합니다. 과거에 작성했던 코드를 현재에서도 고칠 것이 없다면, 그동안 배운 것이 없다는 말이 있습니다. Python 버전이 업그레이드되면 더 좋은 기술을 익히실 수 있도록 업그레이드된 버전에 맞추어 강의를 업데이트하겠습니다.

질문은
언제나 환영입니다

강의를 수강하시면서 이해가 안 되거나 추가적인 설명이 필요한 부분은 언제든지 논리적으로 사례와 함께 답변을 드립니다. 수강생분들의 질문을 기다립니다!

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 동시성 프로그래밍으로 파이썬 프로그램의 속도를 올리고 싶은 분

  • 파이썬 동시성 프로그래밍을 실무에서 바로 사용하고 싶은 분

  • MongoDB에 데이터를 적재하고 관리하고 싶은 분

  • FastAPI를 도입하고 싶은 스타트업 백엔드 개발자

  • 동시성 프로그래밍으로 효율적으로 크롤링하고 싶은 분

  • 개발을 넘어 실제로 웹 앱을 배포하고 운영하고 싶은 분

선수 지식,
필요할까요?

  • Python 기본 지식 (변수, 조건문, 반복문, 함수 등)

안녕하세요
입니다.

5,723

수강생

292

수강평

345

답변

4.7

강의 평점

4

강의

안녕하세요. 더 유익하고 본질적인 지식 콘텐츠로 많은 가치를 드릴 수 있도록 노력하겠습니다.

  • AI DT 전문 개발사 (주)하이퍼이지 대표이사

  • M사 금융 AI 모델 개발 및 총괄

  • (사)한국정보통신네트워크협회 AI분과기술위원

  • P사 DT Simulation SW 개발 총괄

  • 前 시리즈 A 스타트업 기술 팀장

     

  • 前 대기업 소프트웨어 엔지니어링 기술 용역 다수

  • 前 소프트웨어 공학 온/오프라인 교육 다수 (스타트업, GS리테일, 삼성 등)

문의사항, 추가질문, 집필, 강의제안 ==> endupfree@gmail.com

커리큘럼

전체

32개 ∙ (5시간 40분)

강의 게시일: 
마지막 업데이트일: 

수강평

전체

77개

4.9

77개의 수강평

  • wkdrmfmt님의 프로필 이미지
    wkdrmfmt

    수강평 7

    평균 평점 5.0

    5

    97% 수강 후 작성

    Tôi muốn giới thiệu nó cho những người đã quen với cú pháp Python và đã sử dụng Python ở một mức độ nào đó. Tôi chỉ hiểu sơ bộ về các phương pháp không đồng bộ, nhưng tôi chưa bao giờ thực sự hiểu và sử dụng chúng bằng đầu. Trên thực tế, thật thú vị và sảng khoái khi thực hiện một số hành động nhất định bằng phương pháp không đồng bộ. Điều tốt là bài giảng không chỉ dạy những phần cốt lõi mà còn giải thích những nội dung cần thiết trước khi giải thích những nội dung cốt lõi của bài giảng với tinh thần tiên tri (?). như CPU, quy trình và luồng đã được giải thích. Giải thích) Mặc dù điều này có vẻ cơ bản nhưng có nhiều bài giảng không tuân thủ tốt. Nếu bạn tải lên bất kỳ bài giảng Python hoặc khung Python nào trong tương lai, tôi muốn nghe tất cả. Cảm ơn bạn vì bài giảng tuyệt vời.

    • amamov
      지식공유자

      Tôi rất tự hào haha ​​​​cảm ơn bạn! Chúng tôi sẽ lên kế hoạch bài giảng tốt hơn và chắc chắn hơn.

  • kukaeden님의 프로필 이미지
    kukaeden

    수강평 484

    평균 평점 5.0

    5

    88% 수강 후 작성

    Cảm ơn bạn đã cho chúng tôi biết về FastAPI và các chương trình đồng thời!

    • iambyunghyun님의 프로필 이미지
      iambyunghyun

      수강평 8

      평균 평점 4.9

      5

      100% 수강 후 작성

      Đây là một trong những bài giảng hay nhất. Trước hết, tôi đến vì muốn sử dụng API nhanh, nhưng khi học lập trình bất đồng bộ, tôi nhận ra rằng mình vẫn còn thiếu sót rất nhiều. Tuy nhiên, tôi rất hài lòng với bài giảng vì người hướng dẫn giải thích mọi thứ một cách chi tiết và dễ hiểu. Tôi nghĩ tôi sẽ trả tiền và lắng nghe ngay cả khi nó có hơn 100.000 won với một chút cường điệu... Bài giảng này bao gồm mọi thứ từ back-end đến front-end và triển khai máy chủ. Sau khi nghe bài giảng này, bạn sẽ có thể mở rộng tầm nhìn của mình bằng cách tích lũy kinh nghiệm tương tự trước khi thực hiện một việc khó như Spring framework. Đây sẽ là một thông số kỹ thuật tốt cho những người chưa bao giờ thử triển khai máy chủ. Tôi sẽ chăm chỉ xem lại những gì người hướng dẫn đã dạy và phát triển nó thành một dự án để biến nó thành kiến ​​thức của mình. Cảm ơn bạn một lần nữa haha Lần tới, tôi có thể yêu cầu một bài giảng về Spring Framework nữa không? ㅠㅠ Bạn dạy rất hay. Cảm ơn bạn!!

      • amamov
        지식공유자

        Cảm ơn bạn đã đánh giá tốt. Tôi tự hào :) Về mùa xuân, hiện tại tôi chưa có kế hoạch gì, nhưng tôi chắc chắn sẽ nhớ nó! Nhờ những bài ôn lại bài giảng này, tôi có thêm sức mạnh để chuẩn bị cho bài giảng tiếp theo.

    • insightp님의 프로필 이미지
      insightp

      수강평 3

      평균 평점 5.0

      5

      100% 수강 후 작성

      Tôi nghĩ đó là một bài giảng thực sự giàu thông tin và chất lượng cao. Tôi đã tham gia nhiều bài giảng trực tuyến khác nhau, nhưng bài giảng này thực sự mới mẻ về nhiều mặt. Tôi biết đến bài giảng này vì tôi quan tâm đến FastAPI và bắt đầu tìm kiếm nó. Sau khi nghe bài giảng này, tôi nhận ra rằng điều quan trọng không phải là học framework một cách thống nhất mà là khái niệm không đồng bộ làm nền tảng cho framework. Tôi đã bị ấn tượng tổng cộng ba lần: một lần vì tôi có thể nhanh chóng nếm thử FastAPI, một lần nữa vì tôi đã học được các khái niệm cơ bản quan trọng và một lần nữa vì tôi hiểu được phương hướng học tập của riêng mình trong tương lai ㅠㅠ Tôi hiện đang tham gia bài giảng OOP của người hướng dẫn và họ có điểm chung: 1. Lựa chọn các khái niệm và khuôn khổ hợp thời và quan trọng trong ngành; 2. Phương pháp chia nhỏ khái niệm (chủ đề) thành một đơn vị bài giảng (+mỗi bài giảng độc lập với nhau), 3. Một phương pháp cho phép bạn nhanh chóng hiểu và chỉ áp dụng những điểm chính (đây có phải là microlearning thực sự không?), 4. Thở nhanh vừa phải, không nhàm chán, 5. Thỉnh thoảng giải thích một cách thân thiện để không ai bị lạc. 6. Độ dài bài giảng phù hợp (tôi nghĩ thời gian truyền đạt cùng một kiến ​​thức càng ngắn thì càng tốt) 7. Bố cục nội dung luyện tập vui nhộn Tôi thực sự thích những yếu tố như thế này. Đó là một bài giảng rất hài lòng, và hãy tiếp tục tạo ra những bài giảng hay (nhanh chóng) (và nhiều) trong tương lai nhé! :D Cảm ơn bạn! Cảm ơn bạn đã làm việc chăm chỉ ~

      • amamov
        지식공유자

        Cảm ơn bạn rất nhiều vì đã xem xét chi tiết!! Chúc mừng bạn đã hoàn thành nó! :) Một bài giảng tiếp theo đang được thực hiện. Tôi sẽ thưởng cho bạn những bài giảng tốt hơn. ✨

    • bw1208112727님의 프로필 이미지
      bw1208112727

      수강평 1

      평균 평점 5.0

      5

      100% 수강 후 작성

      Đó là điều tốt nhất!!! Sau khi cố gắng vừa bò vừa khóc, tốc độ kém đến mức tôi nghĩ ra giải pháp và muốn nâng cao hiểu biết của mình về Python, và tình cờ tôi biết đến Infrun và khóa học này. Mặc dù đây là một phụ lục nhưng đây là một chương trình giảng dạy rất cần thiết đối với tôi vì tôi có thể thấy AWS được sử dụng thực tế. (Tôi đang nghiên cứu chuyên sâu về Python, chương trình phụ trợ và AWS.) Tôi đã thu được rất nhiều kiến ​​thức bằng cách giải thích các nguyên tắc cơ bản một cách ngắn gọn. Tôi cũng đã mua một khóa học về các lớp học và định hướng đối tượng!! Tôi sẽ tiếp tục xem các bài giảng và làm việc chăm chỉ để biến chúng thành của riêng mình. Chúng tôi mong muốn được thấy nhiều nội dung tuyệt vời hơn trong tương lai!!

      • amamov
        지식공유자

        Tôi rất vui vì bạn thấy nó hữu ích! Cảm ơn!

    지식공유자의 깜짝할인 중 (3일 남음)

    월 ₩149,304

    5개월 할부 시

    24%

    ₩46,200

    ₩746,520

    윤상석님의 다른 강의

    지식공유자님의 다른 강의를 만나보세요!

    비슷한 강의

    같은 분야의 다른 강의를 만나보세요!