개발 · 프로그래밍

/

백엔드

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

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

(5.0) 수강평 4개

수강생 128명

Thumbnail

중급자를 위해 준비한
[백엔드, 웹 개발] 강의입니다.

이런 걸
배워요!

  • 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

  • 기본 백엔드 지식

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

  • 2022: S 코딩 클럽 python 튜터

 

이력서 페이지:

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

커리큘럼

전체

45개 ∙ (6시간 29분)

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

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!