Inflearn brand logo image
Inflearn brand logo image
채널톡 아이콘

배달앱은 어떻게 내 주변의 맛집을 찾을까?

제가 만약 배달앱을 처음부터 만든다면 이렇게 만들겠습니다. 실전 레벨의 fastapi, mongodb, 모델링과 인덱스 설계, redis 캐싱과 부하 테스트를 모두 이 강의에 담았습니다.

이런 걸 배울 수 있어요

  • Geo Spatial Search (공간 검색)

  • Mongodb

  • FastAPI

배달앱 개발자가 알려주는
Geospatial Search! 🧭

배달앱은 어떻게 우리 주변의 맛집을 찾아주는 걸까요? 🤔

답은 geospatial query에 있습니다. 지도 앱, 소개팅 앱, 배달 앱 등등 수많은 메이저 앱들의 요구사항을 구현하기 위한 기술이 바로 geospatial query입니다.

본 강의에서 FastAPI와 MongoDB를 사용해서 가장 모던하게 가게 검색을 담당하는 Micro Service를 만들어 봅니다. FastAPI Dependency Injection, MongoDB의 compound index와 query plan 등 깊이 있는 주제를 다룹니다. 피상적인 튜토리얼에 지치셨다면 이 강의에서 production ready 상태의 application을 만들면서 다시 코딩의 두근거림을 되찾아 보세요!

이 강의만의 특징을 확인하세요! ⭐

📌 배달앱에 특화된 가장 빠른 공간 검색 방법은 무엇일까? 2년간의 고민에 제가 내린 답을 제공합니다.

📌 스키마 설계, 캐싱 방법론 등 실전에 적용했을 때 큰 도움이 되는 insight를 제공합니다.

📌 이론 10% 실습 90%. 모든 코드는 직접 테스트하고 정말 예상대로 작동하는지 검증합니다.

📌 중급자를 위한 강의입니다. 꼭 python이 아니더라도 기본적인 CRUD는 하실 수 있어야 합니다 :)


이런 분들께 추천해요 🙆‍♀️

게시판 CRUD는 할 수 있는데 그 이후에는 뭘 해야 할지 모르겠는 백엔드 개발자 / 학생

배달앱은 어떻게 집 주변의 가게를 보여줄까? 공간 검색을 어떻게 하는지 궁금하신 분

(한 때) 국내 최대의 파이썬 조직에서는 어떻게 개발을 할까? 궁금하신 분

이 강의와 함께해요! 🙌

  • Mypy, black, pytest. CI를 사용해서 코드 퀄리티를 유지하는 방법을 알려드립니다.
  • mongodb와 내장된 google s2를 사용해서 야무지게 공간 검색 하는 방법을 알려 드립니다. 공간검색도 더 이상 두렵지 않게 됩니다.
  • 부하테스트 없이 production ready라고 할 수 없죠. 간단한 부하테스트는 어떻게 할까? 성능 향상이 되었는지 증명하는 방법을 알려 드립니다.
  • 데이터베이스 != RDBMS. 몽고디비를 사용해 진짜 어플리케이션을 만들어 봅니다.
  • 숨 쉬듯 자연스럽게 단위 테스트와 CI를 활용할 수 있게 됩니다.

학습 내용 📚

MongoDB: Query Plan, Compound index

몽고디비는 실전에 적합하지 않다? 느리다? 불안정하다? 아니요! NoSQL을 제대로 배워 봅시다. query plan, compound index, aggregation pipeline 등 단순 CRUD에서 벗어난 깊이 있는 주제를 다룹니다.

 

Google S2

지구를 사각형으로 무한히 쪼개면 어떻게 될까요? google의 s2가 어떤 원리로 공간 쿼리 속도를 향상시키는지 그 혁신적인 아이디어를 살펴봅니다.

 

FastAPI, Concurrent Programming

fastapi 와 asyncio.gather() 를 사용한 병렬 쿼리! 코루틴의 사용 방법을 배웁니다.

 

caption

Redis Cache without TTL

혹시 [캐시 == 시간이 지나면 없어지는 값]이라고만 생각하셨나요? TTL의 문제점을 짚어보고 캐시를 다시 생각해 보겠습니다.


수강 전 참고 사항 📢

실습 환경

  • 강의는 MacOS 기준으로 설명합니다. 윈도우 머신이라면 docker가 설치되어 있다면 대부분 따라오실 수 있습니다.
  • 강의에서는 pycharm professional을 사용합니다. educational 버전도 무리없이 따라오실 수 있다고 생각합니다.

학습 자료

  • 노션 링크로 제공해 드립니다!

선수 지식 및 유의사항

  • 기본적인 파이썬 문법
    • generator, decorater의 기본 동작 원리
  • async await을 한 번이라도 사용해 본 적이 있으면 좋습니다.
  • 기본 sql 지식

지식공유자 소개 ✒️

  • 2021 ~ 현재: 배달 W사 파이썬 백엔드 개발자
  • 2022: S 코딩 클럽 python 튜터

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 맛집앱, 배달앱을 만들어보고 싶은데 공간 검색이 막막한 개발자

  • 기본적인 CRUD에서 벗어나 레벨업 하고 싶은 개발자

  • mongodb를 제대로 사용해보고 싶은 개발자

선수 지식,
필요할까요?

  • python

  • 기본 백엔드 지식

안녕하세요
정승원입니다.

173

수강생

7

수강평

16

답변

4.9

강의 평점

1

강의

  • 2021 ~ 현재: 배달 W사 파이썬 백엔드 개발자

  • 2022: S 코딩 클럽 python 튜터

 

이력서 페이지:

https://9gagger.gitlab.io/sw/

더보기

커리큘럼

전체

45개 ∙ (6시간 29분)

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

수강평

전체

7개

4.9

7개의 수강평

  • ckh04160978님의 프로필 이미지
    ckh04160978

    수강평 5

    평균 평점 5.0

    5

    100% 수강 후 작성

    • soso123123님의 프로필 이미지
      soso123123

      수강평 6

      평균 평점 4.2

      4

      60% 수강 후 작성

      • xzt9228님의 프로필 이미지
        xzt9228

        수강평 2

        평균 평점 5.0

        5

        100% 수강 후 작성

        I listened to the lecture well.

        • recordable07111249
          지식공유자

          Thanks for the review! Could you please tell me which class it is? I think it might have been missed during the upload~

        • Oh, I edited it because it didn't seem to be something to write in the course review, but it seems to be showing up. ㅠ Sorry. It's the last lecture part, and in the notes, - Store deletion service remove_shop() - api_delete_shop() Router and test This is the part. There is a lecture video for the router and test part, but it seems that the deletion service is missing. When I checked it on my PC, - Store deletion controller - Store deletion service The two videos are the same. Separately, the lecture content was really rich and I learned a lot, unlike what I've done in the field. Thank you.

        • recordable07111249
          지식공유자

          Hahaha thank you! I will check the contents and edit them!!

        • recordable07111249
          지식공유자

          Hello xzt______! As you said, the service video was really missing during the upload. Hehe.. The existing 4-minute duplicate video -> has been replaced with the real video, which is 13 minutes long :) Thank you!!

      • sungchan2548001님의 프로필 이미지
        sungchan2548001

        수강평 1

        평균 평점 5.0

        5

        40% 수강 후 작성

        Recommended for: Those with backend experience and Intermediate or higher Python skills (asynchronous, decorators, generators, comprehensions, type hints) Advantages: 1. The code provided as lecture materials is very Pythonic, so it is helpful to just look at it and see the coding style. 2. The target audience of the lecture is clearly intermediate, so it proceeds without interruption. 3. What's lacking. 1. I don't know if it's a Poetry version difference, but it didn't set up right away with poetry install, so I had to modify pyproject.toml and proceed. [project] requires-python = "^3.11" [tool.mypy] python_version = "^3.11" [tool.poetry.dependencies] python = "^3.11"

        • sds76293243님의 프로필 이미지
          sds76293243

          수강평 2

          평균 평점 5.0

          5

          100% 수강 후 작성

          The content is difficult, but it was very helpful because you explained it in detail!!

          • recordable07111249
            지식공유자

            Haha thank you for the review! If there's anything you don't understand, feel free to ask questions~

        비슷한 강의

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

        ₩42

        29%

        ₩77,000