파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)

(4.8) 수강평 6

수강생 462

Thumbnail

초급자를 위해 준비한
[풀스택, Django] 강의입니다.

파이썬/장고 웹서비스 개발의 기초를 탄탄히 다져보세요. 장고 학습에는 시간도 걸리지만, 반복되는 개발 속에 여러분의 생산성을 극대화하실 수 있습니다. 여러분의 상상을 현실로 만들어보세요.

이런 걸
배워요!

  • 장고 4.2 기준으로 생산성 높은 웹서비스 개발

  • 장고를 활용한 데이터베이스 스키마 관리

  • 흔한 마이그레이션 실패 사례

  • 장고 ORM인 모델과 모델 필드에 대한 깊은 이해

  • 장고 중심의 웹 컴포넌트 개발 및 활용

  • 장고 Form을 활용한 생산성 높은 입력폼 처리

  • 장고 기본 인증에 대한 깊은 이해

  • django-rest-framework를 활용한 생산성 높은 웹 API 개발

  • 웹 API 에서의 세션 인증 활용 방법

  • 웹 프론트엔드 개발을 위한 최신 자바스크립트 문법

  • 리액트 v18 필수 이론

  • 장고/리액트 통합과 서비스 개발

  • 장고/Next.js 통합과 세션 쿠키를 활용한 인증

  • 리눅스 가상머신에서의 장고/리액트 서비스 배포

본 강의는 연재식 강의입니다. 2024년 5월 31일에 업로드 100% 완료했습니다. 🎉

🔥 기존 파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 강의는 장고 3.0 기반이며, 이 강의는 리뉴얼 강의로서 장고 4.2 LTS 기반입니다. 단순한 리뉴얼이 아니라, 장고의 강력함을 이해하고 실무에 적용하실 수 있도록, 전체 커리큘럼을 갈아엎고 재구성했습니다.

강의 중에 이해가 어려우신 부분이 있으시면 편히 질문 남겨주세요. 질문을 오래 고민하시면 오히려 학습에 방해가 됩니다. 여러분의 질문이 여러분의 학습을 완성시켜 줄 거예요.

강의 듣고 PyCharm Professional 쿠폰 받자 ! 🎫

장고 개발의 최적의 IDE는 PyCharm Professional (유료 툴) 입니다. 강의 중 개발환경 설정에서는 PyCharm Professional과 Visual Studio Code에 대해서 다루지만, 강의 진행은 PyCharm Professional로 진행합니다. PyCharm 개발사인 JetBrains로부터 6개월 쿠폰을 후원받았습니다. 본 강의를 수강하신 후에, 아래 방법으로 신청하실 수 있습니다.

  • 강의 수강 후에 구글폼을 작성해서 쿠폰을 신청해주세요. 쿠폰은 1인 1회 신청 가능합니다.

  • 매주 금요일 저녁에 선착순으로 신청하신 이메일로 쿠폰을 보내드리겠습니다. 다음 주 월요일까지 받지못하신 분은 이메일로 문의주시면, 회신으로 재전송해드리겠습니다. 요즘 이메일이 자주 누락되더라구요.

  • 학생/교사이신 분은 JetBrains의 학생 지원 프로그램을 통해, JetBrains의 모든 툴을 1년 단위로 지원받으실 수 있으니 꼭 신청해보세요.

  • 받은 쿠폰은 즉시 등록해주셔야만 합니다. 그렇지 않으면 JetBrains로부터 더 이상 쿠폰 지원을 받을 수 없게 됩니다. 쿠폰을 사용하실 분들만 신청해주세요.


장고는 풀스택 웹프레임워크

유행은 돌고 돌지만, 웹 개발의 본질은 바뀌지 않습니다. 클라이언트 사이드 렌더링을 위한 리액트와 Vue 같은 기술이 인기를 끌었습니다. 이러한 기술들은 웹 애플리케이션의 사용자 인터페이스를 더욱 동적이고 반응형으로 만들었습니다. 그 후에 서버 사이드 렌더링을 위한 Next.js 같은 기술이 주목받기 시작했습니다. 이런 기술들이 완전히 새로운 기술이 아니라, 10~20년 전에 유행하던 기술들이 현대적인 방식으로 재해석되고 발전된 것입니다.

과거에는 PHP나 ASP 같은 기술로 서버 사이드 렌더링을 많이 사용했습니다. 이들은 웹페이지의 내용을 서버에서 미리 생성하여 사용자에게 전달하는 방식이었죠. 현재의 기술, 예를 들어 Next.js도 본질적으로는 서버에서 페이지를 렌더링하여 사용자에게 제공하는 동일한 원리를 따릅니다. 하지만 현대의 기술은 더 효율적이고, 사용자 경험을 개선하는 데 중점을 두고 있습니다.

유행보다는 본질에 집중하는 것이 중요합니다. 장고는 이런 원칙을 잘 따르는 예입니다. 2005년부터 지속적으로 발전하고 개선되어온 장고는 더 나은 웹 애플리케이션을 더 빠르고 적은 코드로 만들 수 있도록 도와줍니다. 장고는 풀스택 프레임워크로서, 효율적인 개발 프로세스와 강력한 기능을 제공하여, 웹 개발의 본질적인 요구사항을 충족시켜줍니다. 따라서, 웹 개발 트렌드가 변하더라도 장고의 가치는 계속될 것입니다.

이런 분들께 추천해요 🙋‍♀

웹서비스 개발의 기초부터 응용,
배포까지 탄탄히 쌓고 싶으신 분


간단한 HTML 코드 작성에서 시작해서, 웹페이지 개발, 웹 컴포넌트 개발, API 개발, 리눅스 서버 배포까지!

장고의 높은 생산성을
경험해보고 싶으신 분


영어를 한국문화가 아닌 영어문화로 이해해야하듯이, 장고도 장고 철학과 문화를 이해하고 활용해야만 높은 생산성을 경험할 수 있습니다.

장고 중심으로 다양한 웹
프론트엔드 통합이 궁금하신 분


최신 장고 트렌드에 맞춰 다양한 웹 프론트엔드를 통합하는 방법을 알려드립니다.

이 강의의 특징 🤩

장고를 깊게, 진심으로 다루는 강의

이 강의는 여러분이 장고를 올바르게 이해하고 효과적으로 활용할 수 있도록 설계되었습니다. 장고의 설계 철학을 깊이 있게 전달하고자 합니다. 장고의 중요한 설계 철학 중 몇 가지를 간추려 소개합니다.

  • 첫째, 장고는 가능한 한 적은 코드를 사용하여 간결함을 추구합니다. 불필요한 규정이나 고정된 코드 방식은 피합니다. 이는 개발자가 필요한 기능을 더 빠르고 쉽게 구현할 수 있도록 돕습니다.

  • 둘째, 현대의 웹 프레임워크는 개발 속도 향상에 중점을 둡니다. 장고는 이 목표를 달성하기 위해 설계되었으며, 빠른 웹 개발을 실현합니다. 이를 통해 개발자는 시간을 절약하고 생산성을 높일 수 있습니다.

  • 셋째, 중복성은 피하고 정규화는 추구합니다. "Don't Repeat Yourself (DRY)" 원칙에 따라 장고는 반복적인 작업을 줄이고, 최소한의 코드로 최대한의 기능을 구현하도록 권장합니다. 이를 통해 개발 과정이 보다 효율적이고 유지보수 관리가 쉬워집니다.

이러한 철학들은 장고가 웹개발을 더 효과적이고 간편하게 만드는 데 핵심적인 역할을 합니다. 이 강의를 통해 장고의 강력한 기능과 철학을 깊이 이해하시길 바랍니다.


하나의 강의에서 백엔드와 프론트엔드를 깊이 있게 다룹니다.

리액트와 Next.js 기술이 인기있다고 해서 서비스의 모든 페이지를 리액트와 Next.js 기술로 개발할 필요는 없습니다. 리액트와 Next.js 기술이 효용있는 페이지에 집중해서 개발하고, 그 외의 페이지에서는 장고 기술로 생산성높게 시간을 아끼며 웹서비스를 빠르게 개발하실 수 있습니다. 선택과 집중이죠.

장고 중심으로 빠르게 웹서비스 개발을 개발하는 방법을 익히고, 장고 중심으로 다양한 웹 프론트엔드 기술을 통합하는 방법을 익힙니다. 이렇게 하면, 여러분은 다양한 웹 개발 요구에 대응할 수 있는 유연하고 효율적인 접근 방식을 갖출 수 있습니다. 이 강의를 통해 백엔드와 프론트엔드 모두에서 강력한 기술적 기반을 구축하는 데 필요한 지식과 경험을 얻을 수 있을 것입니다.


슬라이드 기반의 이론 강의, 그리고 PDF 제공

모든 이론 챕터에서 사용하는 슬라이드는 다년간 강의를 진행하면서 다듬어지고 정제된 슬라이드입니다. PDF 파일로도 제공해드리기에 필기하시면서 강의를 수강하시기 좋습니다.

참고하시면 좋을 공식 문서 링크도 꼼꼼하게 PDF 문서 내에 추가해두었습니다. 관련 공식문서는 틈날 때마다 읽어보세요. 본 강의에서 장고의 모든 내용을 다 다룰 수는 없구요. 장고는 공식 문서가 정말 잘 갖춰져있습니다. 공식문서에 답이 있습니다. 공식 문서를 읽는 습관을 기르셔야 합니다. 그래야 실력이 빠르게 늡니다.


10분 내외로 편집된 짧은 호흡의 강의 영상

각 강의는 10분 내외의 짧은 길이로 구성되어 있어, 여러분이 집중력을 유지하며 학습할 수 있습니다.

미리 작성된 스크립트를 바탕으로 녹화를 진행했으며, 강의 중 불필요한 부분은 모두 편집 과정에서 제거했습니다. 이러한 짧은 형식의 강의는 여러분이 시간을 효율적으로 사용하도록 돕습니다. 준비와 편집에 상당한 시간과 노력이 소요되었지만, 이는 한 사람의 투자가 수천, 수만 명의 학습 시간을 절약하고, 학습 효율을 높이는 결과를 가져올 것입니다.


선 코드 설명, 후 코드 실습으로 코드에 대한 이해 UP UP !!!

코드 실습에서는 해당 코드를 먼저 쭈욱 설명드린 뒤에 실습을 이어갑니다. 실습하면서 코드를 설명드리는 것보다, 먼저 설명을 듣고 실습을 진행하기에 코드에 대한 이해도 상승에 큰 도움이 되실 것입니다.


복&붙 하실 수 있도록 실습코드 링크 제공

개발 강의의 특성상 실습 코드를 타이핑하는 데 많은 시간이 소요되고, 오타가 발생할 수 있습니다. 직접 타이핑하고 오류를 겪으며 학습하는 것이 이상적일 수 있지만, 이 과정은 때때로 매우 힘들 수 있습니다. 그래서 여러분이 보다 쉽게 실습을 따라할 수 있도록, 각 강의 영상 아래 수업노트에 실습 코드 링크를 제공합니다. 이를 통해 코드를 복사하고 붙여넣을 수 있어, 시간을 절약하고 오타를 줄일 수 있습니다.

또한, 각 강의마다 커밋 단위로 코드 링크를 제공합니다. 이를 통해 강의 내용과 다르게 동작하는 코드가 있을 경우, 빠르게 확인하고 수정할 수 있습니다. 이러한 자원들은 여러분이 강의를 보다 효과적으로 따라하고, 원활하게 학습하는 데 도움이 될 것입니다.

이런 내용을 배워요

섹션 (0) 개발환경 구축

파이썬/장고 웹 개발을 시작하기 전에, 윈도우와 맥에서 개발환경을 구축하는 방법에 대해 안내합니다.

섹션 (1) 정적 웹문서에서 장고로 동적 웹문서까지 빠르게 맛보기

장고 웹개발을 익히기 전에 몸풀기 섹션입니다. 다음의 웹 기초 내용들을 얕게 실습하며 워밍업을 합니다.

  • 워드 문서로부터 생성된 HTML 문서에서부터 시작해서, 문서 상호작용을 위한 자바스크립트 추가, 웹서버를 통한 HTML 서빙, 파일 1개로 시작하는 장고 서비스, 외부 데이터를 로딩하여 HTML 응답하기, 검색 지원, 데이터베이스에 저장된 데이터로 HTML 응답하기, SQL Injection 공격 대응, Bootstrap5 스타일링, Tailwind CSS 스타일링

  • 서버 사이드 렌더링과 클라이언트 사이드 렌더링 비교

섹션 (2) 장고 핵심 기능 리뷰

장고의 생산성을 높여주는 기본앱 15개에 대해서 살펴보고, 장고의 핵심 기능 14개에 대해서 예제코드와 함께 자세히 살펴봅니다.

섹션 (3) 멜론 데이터로 장고 핵심 기능 맛보기 서비스 만들기

장고 웹 개발의 핵심 기능을 실습하는 두 번째 '워밍업' 단계입니다.

멜론 TOP100 음악 데이터를 활용하여 데이터 조회 페이지를 개발합니다. 커스텀 명령을 사용하여 데이터베이스에 데이터를 로드하는 방법, 모델을 활용하여 데이터를 조회하는 방법, 그리고 장고의 admin 기능을 통해 데이터를 관리하는 방법을 실습할 것입니다.

두 번의 워밍업을 통해, 장고에 대한 초기의 막연한 두려움을 극복하고, 장고를 사용한 웹 개발이라는 장기적인 학습 여정을 시작할 준비를 갖추게 됩니다. 여러분이 자신감을 가지고 본격적인 개발 과정에 돌입할 수 있는 발판을 마련해줄 것입니다.

섹션 (4) View 함수를 통한 요청 처리

View는 HTTP 요청을 처리하고 HTML/이미지/CSV/엑셀 등의 다양한 포맷의 응답을 할 수 있습니다. 함수와 클래스로 View를 다양한 포맷으로 응답하는 방법 및 클래스 기반 뷰를 통해 설정에 가까운 짧은 코드로 조회 페이지를 개발하는 방법을 살펴봅니다.

섹션 (5) 모델을 통한 데이터베이스 조회

하나의 모델 코드로 다양한 종류의 데이터베이스 (SQLite, PostgreSQL, MySQL/MariaDB, Oracle)를 다룰 수 있으며, 각 데이터베이스와 연결하는 설정을 코드로 다룹니다.

  • 도커 명령으로 PostgreSQL / MySQL 데이터베이스 생성 및 장고 프로젝트 연동을 실습합니다.

  • 장고 기본에서 지원하는 다양한 모델 필드에 대해서도 예시코드와 함께 설명하여 이해도를 높입니다.

  • 모델 매니저를 통한 쿼리셋 객체가 생성되고, 데이터베이스 조회가 발생되는 과정에 대해서 django-extensions 라이브러리와 함께 SQL 레벨에서 살펴봅니다.

섹션 (6) 마이그레이션을 통한 데이터베이스 스키마 관리

장고 마이그레이션의 개념과 관련 명령에 대해서 살펴봅니다.

  • 파이썬 코드로 데이터 마이그레이션을 수행하는 방법

  • 우편번호 CSV 데이터 마이그레이션 예시

  • 효율적으로 대량의 데이터 마이그레이션 수행하는 방법

  • 흔한 마이그레이션 실패 사례 3가지

섹션 (7) 커스텀 모델 필드와 데이터베이스 제약 조건

실무의 다양한 상황을 장고 모델로 녹여낼 수 있는 장고 모델 기술을 살펴봅니다.

  • 기본 모델 필드

  • 커스텀 모델 필드를 개발하는 방법

    • 숫자로 저장하는 아이피 필드

    • Y/N 문자열로 저장하는 참거짓 필드

  • 다양한 Meta 옵션 : 인덱스, 유일성 제약조건, 프록시 모델 등

섹션 (8) 장고 Form을 활용한 생산성 높은 입력폼 처리

HTML Form으로부터의 요청을 장고 Form을 통해 효율적으로 처리하는 방법에 대해서 살펴봅니다.

  • 요청 객체와 응답 객체

  • CSRF 사이트 간 요청위조 공격 방어

  • Form 유효성 검사

  • 장고 Form과 ModelForm

  • 폼 필드를 살펴보고 커스텀 폼 필드/위젯 개발

  • 파이썬 코드로 폼 레이아웃 구성하기

  • 여러 Form 요청을 한 번에 처리하기

섹션 (9) 장고 기본 인증 깊게 구현해보기

웹서비스 인증의 기본이 되는 쿠키와 세션을 이해하고, 밑바닥부터 장고 인증 기능을 하나 하나 구현해봅니다.

  • 쿠키와 세션에 대한 이해

  • 밑바닥부터 구현하는 장고 인증 기능 : 로그인, 회원가입, 로그아웃, 암호변경, 암호 재설정 요청, 암호 재설정 확인

  • 장고 기본 권한 정책 살펴보기

섹션 (10) 장고 주도의 웹 프론트엔드 기술과 웹 컴포넌트

장고 중심으로 웹 프론트엔드 기술을 사용하는 방법과 장고 템플릿 단에서 재사용성 높게 웹 컴포넌트를 개발하고 사용하는 방법에 대해서 살펴봅니다.

  • JS 없는 HTMX 웹 프론트엔드 개발

  • 장고 템플릿를 활용한 컴포넌트 개발

  • django-components 라이브러리를 활용한 컴포넌트 개발


섹션 (11) (포토로그 프로젝트) 장고 중심의 웹 서비스 개발하기

장고가 단순히 API 서버에 그쳐서는 안 됩니다. 장고는 웹서비스 개발을 위한 풀스택 웹프레임워크 입니다. 프로젝트 생성 및 초기 구성부터 바닥부터 장고 중심의 웹 서비스를 차근차근 개발해봅니다.

  • 장고와 django-crispy-forms, htmx와의 궁극의 시너지 !!!

  • 이미지 다중 업로드 구현


  • Pillow 라이브러리로 이미지 직접 크기 조정 및 JPEG 변환 저장하여, 이미지 용량 98% 줄이기

  • django-taggit 라이브러리로 태그 지원

  • 다양한 컴포넌트 개발 : modal-form, image-overlay, carousel

  • HTMX와 모달을 적극 활용한 댓글 구현

  • 유저 팔로잉 구현

섹션 (12) 리눅스 가상 머신에 장고 서비스 배포하기

AWS (아마존 웹 서비스)의 Lightsail 인프라 내에서 장고 서비스를 배포하는 방법에 대해서 살펴봅니다.

  • 로컬 네트워크에 따라, 휴대폰에서 로컬 개발 서버에 접속하는 방법

  • 서비스 아키텍처

  • 우분투 리눅스 가상 머신에 장고 서비스 배포

    • 파이썬 최신버전 3.12 설치

    • nginx를 통한 리버스 프록시 및 정적 파일 서빙

    • 에러 로그와 관리자 이메일 발송

    • 에러 로깅 서비스 Sentry


  • Amazon Lightsail 가상머신과 데이터베이스를 활용한 배포


섹션 (13) django-rest-framework를 활용한 생산성 높은 웹 API 만들기

장고 기본에서는 웹 페이지 개발을 위한 다양한 기능을 제공하고, django-rest-framework에서는 웹 API 개발을 위한 다양한 기능을 제공합니다. django-rest-framework를 통해 생산성 높은 웹 API 개발 방법을 익혀봅니다.

  • APIView, 믹스인, ModelVieSet, 직렬화, 렌더러, 시리얼라이저, 인증/권한, pytest 테스트, 페이징

섹션 (14) 웹 API를 위한 세션 인증

웹 API 에서는 당연히 JWT 인증을 써야한다고 생각하시는 분들이 많습니다. JWT는 득보다 실이 많은 인증방법입니다. 장고 기본에서 안정적으로 제공해주는 세션 인증을 웹 API 개발에서 사용하는 방법을 살펴봅니다.

  • 세션 인증과 JWT 인증 비교


  • 웹 API 요청에서 세션 인증을 활용할 수 있는 설계

  • 장고/Next.js 통합과 세션 쿠키 활용한 인증

섹션 (15) 리액트를 익히고, 리액트로 장고 템플릿 컴포넌트 만들기 (리액트 v18 기준)

리액트 핵심을 익히고, 리액트로 장고 템플릿에서 활용할 수 있는 "장고 템플릿 컴포넌트"를 구현해봅니다.

  • CRA 및 Parcel 번들러를 활용한 리액트 프로젝트 생성

  • 순수 함수

  • JSX와 선언적 UI

  • 상탯값, 속성값, 이벤트 처리

  • 컴포넌트 CSS 작성 방법 (Feat. Module, Sass)

  • immer를 활용한 손쉬운 불변값 객체 다루기


  • Fold 패턴과 리듀서, 그리고 전역 상태 관리

  • Axios를 활용한 웹 API 요청

  • 라우터로 SPA 만들기

  • 리액트로 장고 템플릿 컴포넌트 만들기

섹션 (16) 장고/리액트 하이브리드 서비스 만들기

앞서 개발했던 장고 프로젝트와 연계하여, 장고/리액트 하이브리드 서비스를 개발해봅니다.

  • API와 함께 할일 목록 CRA 애플리케이션

  • 장고/리액트 하이브리드 방식으로 할일 모달폼 구현하기 (리액트에서는 장고 폼페이지 주소 지정만으로 폼 구현 끝!)

섹션 (17) 캐시 API

장고의 뷰와 템플릿에서 사용할 수 있는 캐시 API를 통해, 데이터베이스의 부하를 줄이고 보다 효율적으로 서비스를 운영할 수 있는 방법에 대해서 살펴보겠습니다.

  • 캐싱 Low 레벨 API 활용

  • 다양한 캐싱 백엔드 (메모리, memcached, redis)

  • 캐싱 키를 구성하는 로직 분석

  • django-debug-toolbar를 통한 캐시 확인

  • 같은 값, 다른 순서의 Query Parameters를 정렬하여, 캐시 Hit율 높이는 방법

  • 레디스와 django-redis 캐시 백엔드를 활용한 캐시 일괄 삭제 방법

  • 템플릿 캐시를 삭제하는 방법

섹션 (18) 리눅스 가상 머신에 장고/리액트 서비스 배포하기

AWS (아마존 웹 서비스)의 Lightsail 인프라 내에서 장고 서비스와 함께 리액트 SPA 서비스를 배포하는 방법에 대해서 살펴봅니다.

  • 개발용/배포용 환경변수 분리하기

  • 배포 스크립트를 통한 손쉽고 간편한 서버 배포

  • nginx에서 CRA 배포파일 설정 방법j

  • 학습용 서브 도메인 지원

  • HTTPS 인증서와 도메인 연동

궁금한 점이 있나요?

Q. 비전공자도 들을 수 있는 강의인가요?

함수/클래스/장식자/제너레이터 등의 파이썬 문법을 이해하고 계시고, 수십줄의 파이썬 코드를 작성해보셨다면 충분히 따라가실 수 있는 강의입니다. 물론 한 번 듣고 실습하고 이해가 되지 않으실 것입니다. 처음 접하는 분야를 한 번에 이해하는 그런 사람은 없습니다. 너무 상심마세요. 낯선 분야를 학습하니는 것이니까 당연합니다. 정확한 방향성을 가진 노력은 배신하지 않습니다. 학습하시며 파이썬/장고 관련하여 궁금한 점들이 생기시면 언제든 질문 남겨주세요. 저도 같이 고민해보겠습니다. 같이 성장해요. ;-)

Q. 파이썬은 입문자용 언어가 아닌가요?

파이썬은 다른 언어에 비해 가독성이 높고, 짧은 코드로 많은 작업을 효율적으로 수행할 수 있습니다. 국내에서 파이썬이 인기를 얻게 된 것은 그리 길지 않지만, 해외에서는 십수년 전부터 이미 메이저 언어였으며, 웹을 포함한 다양한 분야에서 활발하게 사용되고 있습니다.

그리고 파이썬은 느리지 않습니다. 영어를 제대로 모르고 사용하면 콩글리쉬가 되듯이, 파이썬을 제대로 이해하지 못하고 사용된 파이썬 코드를 효율적이지 않습니다. 파이썬을 잘 이해하고 사용하면 빠르게 동작하는 코드를 빠르게 개발하실 수 있습니다. C 언어로 개발한 코드가 모든 경우에 빠르게 동작한다고 할 수 있을까요? 느리게 동작하도록 개발하면 느리게 동작하게 됩니다. 그리고 파이썬이 CPU 연산에서는 느리지만, 빠른 CPU 연산이 필요한 부분은 C/C++/Rust 등으로 개발한 파이썬 라이브러리가 해결해줍니다. numpy와 같은 라이브러리 말이죠. 그러니 파이썬을 활용해 데이터분석과 머신러닝을 하는 것이겠죠. :-) 실제로 카카오의 수많은 머신러닝 API들은 파이썬으로 개발되고 있습니다. (참고: [유튜브 - PyCon Korea] 추천 시스템을 위한 어플리케이션 서버 개발 후기 @kakao)

게다가 파이썬 3.11, 3.12, 3.13 버전이 올라가면서, 파이썬은 눈에 띄게 빨라지고 있습니다.

Q. 장고는 학습 비용이 높고 느리고 제약이 많지 않나요?

장고는 2005년에 공개된 이후에 약 20년의 시간 동안 충분히 성숙한 프레임워크입니다. (스프링은 2003년에 공개되었죠.) 장고는 백엔드 풀스택 프레임워크로서 백엔드 개발에 필요한 거의 모든 기능들이 장고 안에서 개발되고 개발되고 있습니다.

장고는 장고 하나에서 제공해주는 기능이 많은 것 뿐입니다. 기능이 많음이 느리다는 의미는 절대 아닙니다. 각 기능들은 하나의 관리 주체에서 유기적으로 관리하며, 최고의 시너지를 가집니다. FastAPI는 강력하지만 기능이 제한적이며 FastAPI 하나 만으로 웹서비스의 모든 기능을 구현할 수 없습니다. 관리 주체가 다른 수많은 라이브러리 설치가 필요합니다. 이것저것 설치하다보면, 장고 이상으로 덩치가 커지는 경우가 비일비재합니다.

장고의 설계철학 중에 그 첫번째가 "느슨한 결합" 입니다. 장고는 편의성을 위해 풀스택으로 다양한 기능을 제공해주지만, 각 기능들은 독립성을 가집니다. 필요한 기능만 뽑아서 사용하실 수 있고, 다양한 파이썬 라이브러리와 조합하실 수 있습니다.

토스는 1000여명의 토스 팀원들을 대상으로 서비스를 만드는 "토스 인터널"이라는 조직이 있습니다. 이 조직에서는 장고와 리액트로 서비스를 개발하고 있습니다. (토스의 관련 채용공고: Server Developer (Internal Product)) 토스 인터널 팀은 왜 장고와 리액트를 선택했을까요?

파이썬/장고는 시간과 비용이 제한적인 팀에서 더욱 시간을 아끼고 최고의 생산성을 통해, 여러분들이 비즈니스에 집중할 수 있도록 도움을 드릴 것입니다.

수강 전 참고 사항

실습 환경

  • 운영 체제 및 버전(OS)

    • 강의에서는 윈도우와 맥 환경의 개발환경 세팅에 대해서 다룹니다.

    • 파이썬과 노드가 설치 가능한 환경이라면 모두 가능합니다.


  • 사용 도구: 파이참 프로페셔널 (6개월 쿠폰 제공), 도커

    • PostgreSQL과 MySQL 데이터베이스의 빠른 생성을 위해 도커를 사용합니다. 도커 설치에 대해서는 다루지 않으며, 도커 컨테이너 생성에 필요한 명령 및 docker-compose.yml 파일을 제공합니다. 도커 설치가 불가능한 컴퓨터에서는 SQLite 데이터베이스를 사용 (추천)하시거나, PostgreSQL/MySQL 설치파일을 다운받아서 설치하셔도 됩니다.

  • 배포는 AWS (아마존 웹 서비스) Lightsail 가상머신에 배포합니다.

    • AWS 가입을 위해서는 해외결제가 가능한 신용카드가 필요합니다.

    • 배포 실습하시고 나서, 리소스를 즉시 삭제하시면 AWS 비용은 몇 백원 정도로 예상됩니다.

    • AWS 가입이 어려우신 분은 로컬에 VirtualBox나 Parallels를 통해 우분투 리눅스 가상머신을 생성해서 실습을 진행하실 수도 있겠지만, 강의 중 일부 내용이 동작하지 않을 수도 있습니다. 동작하지 않거나 막히시는 부분은 질문 남겨주시면 가이드해드리겠습니다.

학습 자료

  • 각 강의 영상마다 PDF 수업자료를 제공합니다.

  • 실습코드가 긴 경우, 강의 영상 아래 수업노트에 소스코드를 복사할 수 있는 링크를 제공합니다.

  • 각 실습의 커밋 링크를 강의 영상 아래 수업노트에 제공합니다.

유의사항

  • 본 강의 컨텐츠는 지식 공유자에게 저작권이 있습니다. 학습 목적으로 블로그에 학습하신 내용을 일부 공유하시는 것은 괜찮으나 (출처를 꼭 밝혀주세요.), 전문을 공유하시거나 상업적인 목적으로 활용하시는 것은 불가합니다.


이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 파이썬 웹서비스 개발을 기초부터 탄탄하게 시작하고 싶으신 분

  • 장고 웹 개발의 진수를 느끼고 싶으신 분

  • 백엔드/프론트엔드/배포까지 한 강의에서 모두 경험해보고 싶으신 분

선수 지식,
필요할까요?

  • 파이썬 기본 문법에 대한 이해 (함수, 클래스, 장식자, 타입힌팅, 제너레이터)

  • 자바스크립트 기본 문법에 대한 이해 (함수, Prototype, this 등)

  • 도커로 컨테이너 구동하기

파이썬과 장고에 진심인 소프트웨어 개발자

여러분의 파이썬/장고/리액트 페이스메이커가 되겠습니다. 😉

커리큘럼

전체

295 ∙ 35시간 56분

강의 게시일: 2024년 02월 06일
마지막 업데이트일: 2024년 05월 31일

수강평

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