Thumbnail
개발 · 프로그래밍 백엔드

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

(5)
4개의 수강평 ∙  101명의 수강생
77,000원

월 15,400원

5개월 할부 시
지식공유자: 정승원
총 45개 수업 (6시간 29분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변: 미제공
폴더에 추가 공유

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

제가 만약 배달앱을 처음부터 만든다면 이렇게 만들겠습니다. 실전 레벨의 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
기본 백엔드 지식

안녕하세요
정승원 입니다.
정승원의 썸네일
  • 2021 ~ 현재: 배달 W사 파이썬 백엔드 개발자

  • 2022: S 코딩 클럽 python 튜터

 

이력서 페이지:

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

커리큘럼 총 45 개 ˙ 6시간 29분의 수업
이 강의는 영상, 수업 노트가 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. 강의 소개
인트로 & 본 강의의 대상 03:50
요구사항 분석 미리보기 07:43
학습자료 노션 링크
섹션 1. 프로젝트 셋업
poetry 설치 & yorigin_start 클론 & 디렉터리 구조 설명 11:45
black connect 플러그인 설치 02:11
몽고디비 설치하기 & compass 설치하기 02:45
python 으로 mongodb 접속하기 02:20
섹션 2. category code
enum CategoryCode 만들기 & enum 의 장점 07:15
섹션 4. 공간검색 (geospatial query)
섹션 5. 서울 테스트 데이터 생성
서울 랜덤 폴리곤 생성. 미리보기 04:44
로컬에 테스트 데이터 삽입 & explain 03:23
섹션 6. 인덱스
인덱스란 무엇인가 11:38
index 생성 07:44
google s2 와 GEOSPHERE 인덱스 17:02
섹션 7. 파트 2 시작!
위도, 경도의 제한 07:18
섹션 8. 부하 테스트를 위한 준비
service 와 home_category_router 만들기 12:04
router 설명. validation 이냐 parsing 이냐. 09:55
fastapi의 Dependency Injection 13:47
Apache Benchmark 사용해보기 04:25
첫 성능 테스트 action 만들기 07:27
섹션 9. one by one 의 구현
distinct 는 왜 느릴까 09:13
one by one 의 구현 21:03
compound index 07:16
Controller 추가. 액션 실행 & 성능 평가 04:10
섹션 10. 카테고리 메타 데이터
카테고리 메타 데이터는 어떻게 관리할까 13:28
섹션 11. one by one 의 캐싱
캐싱의 필요성 08:43
CategoryPointDocument, Collection 만들기 06:55
redis 설치 16:56
CategoryPointCache entity 만들기 11:51
Cache 의 위력 검증 02:43
섹션 12. 가게 추가와 제거
TTL 과 캐시에 관한 지론 13:09
가게 추가 서비스와 테스트 17:51
가게 추가 컨트롤러 02:25
가게 삭제 서비스 13:33
가게 삭제 컨트롤러 04:37
강의 게시일 : 2023년 11월 08일 (마지막 업데이트일 : 2024년 03월 03일)
수강평 총 4개
수강생분들이 직접 작성하신 수강평입니다.
5
4개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
예컨데 thumbnail
5
굉장히 유익한 강의 감사드립니다. mongodb 의 활용, 지도 좌표의 활용, 파이썬의 활용에 대해서 배울 수 있는 좋은 시간이었습니다.
2024-01-22
지식공유자 정승원
따뜻한 리뷰 감사합니다! 제게 큰 힘이 되네요 ㅠㅠ
2024-01-23
hweejin_cha thumbnail
5
탁월한 강의! 응원합니다 (•̀ᴗ•́)و
2023-12-13
지식공유자 정승원
감사합니다!
2024-02-16
xzt______ thumbnail
5
강의 잘 들었습니다.
2024-02-27
지식공유자 정승원
리뷰 감사합니다! 혹시 몇강인지 알려주실 수 있으실까요? 업로드 중에 누락됬을 수도 있을 것 같아요~
2024-02-27
xzt______
아이고 수강평에 적을 내용은 아닌 것 같아 수정했는데 보여지나보네요 ㅠ 죄송합니다. 마지막 강의 부분이고, 노트상으론 - 가게 삭제 서비스 remove_shop() - api_delete_shop() 라우터와 테스트 이 부분입니다. 라우터와 테스트 부분은 강의 영상이 존재하는데 삭제 서비스가 누락이 된 것 같네요. 제 PC에서 확인해봤을 때, - 가게 삭제 컨트롤러 - 가게 삭제 서비스 두 영상이 같은 영상으로 나옵니다. 별개로 강의 내용이 제가 지금까지 현업으로 해봤던 것과 달리 정말 알차고 배울 점이 많았습니다. 감사합니다.
2024-02-27
지식공유자 정승원
ㅎㅎㅎ 감사합니다! 내용은 확인후에 수정할게요!!
2024-02-27
지식공유자 정승원
xzt______ 님 안녕하세요! 말씀대로 정말 서비스 영상이 업로드 중에 누락되었습니다 ㅎㅎ.. 기존 4분짜리 중복 영상 -> 길이 13분의 진짜 영상 으로 교체 완료했습니다 :) 감사해요!!
2024-03-03
김진우 thumbnail
5
내용은 어렵지만 자세하게 잘 알려주셔서 도움이 많이 되었습니다!!
2024-04-04
지식공유자 정승원
ㅎㅎ 리뷰 감사합니다! 이해 안되는게 있다면 편하게 질문 주셔요~
2024-04-18